Planning

Read a quote by token

The same body POST /v1/quote returned (lines, why, alternatives, expires_at) plus target_url and expired, with no customer data (funding, quote_token and view_url are stripped). Public and token-gated, for approval links. A wrong id or token is a 404. Ordering still needs the key or a card.

get/v1/quotes/{quote_id}

Request

  • Base URL: https://api.placementapi.com
  • URL: https://api.placementapi.com/v1/quotes/{quote_id}
  • Auth: none required

Path parameters

quote_idstring required

Query parameters

tokenstring required

quote_token from the quote.

Response

OK

quote_idstring
quote_tokenstring

Bearer for GET /v1/quotes/{quote_id}?token=… so an approval link can show the plan without a key. Dies with the quote.

view_urlstring uri
target_urlstring nullable
expires_atstring date-time
ttl_seconds14400
bindingtrue

These prices are ours to honour until they lapse, even if the catalogue moves.

strategy'cheapest' | 'fastest' | 'safest' | 'recommended'

The strategy the basket was assembled with, echoed. Every strategy honours the same filters, quality gates, footprint cap and budget. cheapest, fastest and safest change ordering only; recommended in a deployment whose semantic layer runs in rank mode can also reorder placements by a rank-usable judgment, within the explicit demand/leader priorities. No strategy and no judgment removes a placement or an alternative.

requestedinteger
filledinteger
eligibleinteger

Distinct options this brief can buy, before the cap: collapsed domain+placement slots the sourcing read could quote after the filters and, when budgeted, individual affordability. A semantic annotation never removes a slot, so this is the count the deterministic engine would have produced; candidate_coverage holds the pre-semantic counts.

excludedobject

Candidate offers each quality gate removed, keyed by reason (e.g. suspect, restricted, already_linking, bought_for_target). Pre-collapse counts; do not sum with eligible. Every key is a SQL gate: a semantic annotation adds none, because it removes no placement, and the evidence behind a below-threshold judgment is a sampled publisher page rather than the placement actually on offer.

total_creditsinteger

Credits. 1 credit = 1 US cent.

at_median_supplier_creditsinteger

The same basket priced at the median supplier for each domain.

saving_vs_median_creditsinteger
expiredboolean
notestring

Example response

{
  "lines": [
    {
      "plausibility": {
        "band": "guest_post named DR 50-59"
      }
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.