---
title: "Get one Papa John's offer's composition (international)"
method: GET
path: "/papajohns/intl/offer"
tags: ["Papa John's"]
---

# Get one Papa John's offer's composition (international)

`GET /papajohns/intl/offer`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/papajohns/intl/offer`
- Auth: API key in header `x-api-key`

Returns one promotional offer's full composition in one of six international markets: Chile, Costa Rica, Guatemala, Panama, Portugal, and Spain. This is what a promotion banner from GET /papajohns/intl/deals actually contains: the offer's own price, each choice step a customer works through in order (e.g. "pick your family pizza", "pick a side"), and every product eligible at that step with the surcharge picking it adds. It also carries the offer's ingredient rules -- how many extras are free, the minimum and maximum that may be chosen, and which ingredient families are allowed. Offer ids come from the offer_id field on a deal.

## Query parameters

- `market` 'chile' | 'costa-rica' | 'guatemala' | 'panama' | 'portugal' | 'spain', required
- `offer_id` string, required

## Headers

- `x-api-key` string, required

## Response `200`

OK

- PapajohnsIntlOfferResponseDoc
  - `code` integer: Code is the HTTP status code or a custom code used to indicate the result of the request @example 200
  - `data` PapajohnsIntlOfferResponse
    - `availability` string[]: Availability lists the weekdays the offer runs on.
    - `currency` string
    - `customizable` boolean
    - `description` string
    - `discount` number
    - `dispatch_method` string: DispatchMethod is the fulfillment this offer applies to, e.g. both.
    - `end_date` string
    - `fetched_at` string
    - `free_extras` integer: FreeExtras is how many extra ingredients are included at no charge, and MinIngredients/MaxIngredients bound how many may be chosen.
    - `id` integer
    - `image_url` string
    - `ingredient_categories` string[]: IngredientCategories lists the ingredient families this offer allows.
    - `market` string
    - `max_ingredients` integer
    - `min_ingredients` integer
    - `name` string
    - `offer_type` string: OfferType is the platform's own classification, e.g. Combo.
    - `price` number
    - `promoted` boolean
    - `source_url` string
    - `start_date` string
    - `steps` PapajohnsIntlOfferStep[]
      - `choice_count` integer
      - `choices` PapajohnsIntlOfferChoice[]
        - `crust` string
        - `crust_label` string
        - `description` string
        - `name` string
        - `product_id` integer: ProductID is the underlying product, usable with GET /papajohns/intl/product.
        - `size` string
        - `size_label` string: SizeLabel and CrustLabel are the market's own display names.
        - `surcharge` number: Surcharge is what picking this choice adds to the offer price. Absent when the choice costs nothing extra.
        - `variant_id` integer
      - `id` integer
      - `name` string
      - `optional` boolean: Optional reports whether the step may be skipped.
  - `msg` unknown

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `429`: Too Many Requests
- `503`: Service Unavailable

---

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