---
title: "Outbound Interstitial"
method: GET
path: "/api/out/{offer_id}"
tags: ["outbound"]
---

# Outbound Interstitial

`GET /api/out/{offer_id}`

## Request

- Base URL: `https://api.getcheapgames.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getcheapgames.com/api/out/{offer_id}`
- Auth: none declared

The branded page a buyer sees on the way to a store.

It deliberately does NOT log the click and does NOT know the destination.
Both belong to `/go` below, and splitting them is what makes the page safe
to show:

* The tagged URL stays server-side. Putting it in this document would undo
  the reason the redirect exists at all — `build_affiliate_url` runs on the
  server so the affiliate id is never somewhere it can be read off the page
  or stripped by an extension.
* A click means a buyer who actually left. Anything that merely FETCHES
  this page — a crawler, a link preview, a browser prefetching on hover —
  gets HTML and stops there. Under the old single-endpoint design every one
  of those wrote an `outbound_clicks` row indistinguishable from a sale.

Set `GCG_INTERSTITIAL_DELAY_MS=0` to bypass it entirely and go straight to
the store. This sits between a buyer and a purchase, so it needs a kill
switch that does not require a deploy.

## Path parameters

- `offer_id` integer, required

## Query parameters

- `src` string, nullable

## Response `200`

Successful Response

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/getcheapgames/apis/getcheapgames-api.md) · [All operations](https://skmtc.dev/getcheapgames/apis/getcheapgames-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getcheapgames/apis/getcheapgames-api/revisions/962824bb76da?raw)
