{
  "openapi": "3.0.3",
  "info": {
    "title": "RapidoReach publisher Offers V2 API",
    "version": "1.0.0",
    "description": "This reference covers **Offers V2 only**. Existing survey applications, survey placements and survey APIs retain their own reference.\n\nPublisher console operations use an authenticated publisher dashboard **Bearer** token and enforce resource ownership. User-bound SDK endpoints use their own opaque session bearer. Static inventory uses a **slot-bound Static API key**. These credentials are not interchangeable. Placement approval/release are administrator operations and are excluded. Foundation and delivery must be enabled; disabled surfaces return 404. Creating a placement does not authorize production delivery.\n\nCreate a draft placement and offer ad slot, configure a HTTPS signed reward callback, request review, and obtain administrator release. Then create a user-bound SDK session, list offers, record an impression and launch using its receipt. A response or launch never proves a conversion. Credit only authenticated, deduplicated reward confirmation callbacks, and handle linked reversals. See [Offers V2 setup guides](/docs/v2/publisher/offers/overview).\n\nThe server issues SDK sessions from placement identity, external user ID, SDK version, environment and consent. Creation has no dashboard token; subsequent SDK requests require the returned session token. Production requires a released VERIFIED placement. Tokens expire after fifteen minutes; refresh or revoke with an Idempotency-Key. SDK reads are limited to 120/minute/token and writes to 60/minute/token; session creation is limited to 60/minute/placement/source IP. Static feed: 120/minute/slot/key/source IP. Honor Retry-After on 429.\n\nReward callbacks POST to **your configured HTTPS receiver**. Headers: X-RapidReach-Key-Id, X-RapidReach-Timestamp (ISO datetime), X-RapidReach-Nonce, X-RapidReach-Signature and Idempotency-Key. Verify HMAC-SHA256 over `timestamp.nonce.canonicalJsonBody`, sorting object keys recursively and preserving array order. Enforce freshness, prevent nonce replay, and atomically deduplicate transaction IDs with your reward ledger. Respond 2xx only after durable acceptance. The test endpoint produces payload and headers without external delivery or accounting.\n"
  },
  "servers": [
    {
      "url": "https://www.rapidoreach.com",
      "description": "Production — use HTTPS; creation does not fund or launch a campaign."
    }
  ],
  "security": [
    {
      "consoleSession": []
    }
  ],
  "tags": [
    {
      "name": "Publisher operations"
    },
    {
      "name": "Placements"
    },
    {
      "name": "User sessions"
    },
    {
      "name": "User offer delivery"
    }
  ],
  "paths": {
    "/publisher/v2/ad-slots/{adSlotId}/static-offers": {
      "get": {
        "operationId": "get_publisher_v2_ad_slots__adSlotId__static_offers",
        "tags": [
          "Publisher operations"
        ],
        "summary": "Fetch static offer inventory",
        "description": "Server-side STATIC_API slot inventory. Requires active/unexpired slot-bound key, READY/ACTIVE slot and VERIFIED placement. ETag/Cache-Control are returned; unchanged inventory returns 304. Refresh within 60 seconds. Inventory is not user eligibility or reward proof.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Offer"
                      },
                      "description": ""
                    },
                    "generatedAt": {
                      "type": "string",
                      "description": "",
                      "format": "date-time"
                    },
                    "expiresAt": {
                      "type": "string",
                      "description": "",
                      "format": "date-time"
                    },
                    "etag": {
                      "type": "string",
                      "description": ""
                    },
                    "cache": {
                      "type": "object",
                      "properties": {
                        "maxAgeSeconds": {
                          "type": "integer",
                          "description": ""
                        }
                      }
                    },
                    "contractVersion": {
                      "type": "string",
                      "description": ""
                    }
                  }
                },
                "example": {
                  "items": [],
                  "etag": "\"HASH\"",
                  "cache": {
                    "maxAgeSeconds": 60
                  },
                  "contractVersion": "2.0.0"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "304": {
            "description": "Not modified; no response body."
          }
        },
        "parameters": [
          {
            "name": "adSlotId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": "",
              "pattern": "^[A-Z]{2}$"
            }
          },
          {
            "name": "platform",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": "",
              "enum": [
                "web",
                "android",
                "ios"
              ]
            }
          },
          {
            "name": "If-None-Match",
            "in": "header",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "staticKey": []
          }
        ]
      }
    },
    "/publisher/v2/placements": {
      "get": {
        "operationId": "get_publisher_v2_placements",
        "tags": [
          "Placements"
        ],
        "summary": "List placements",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Placement"
                      },
                      "description": ""
                    },
                    "count": {
                      "type": "integer",
                      "description": ""
                    }
                  }
                },
                "example": {
                  "items": [
                    {
                      "placementId": "PLACEMENT_ID",
                      "type": "WEBSITE",
                      "name": "Example site",
                      "platformIdentity": "publisher.example",
                      "status": "DRAFT",
                      "released": false
                    }
                  ],
                  "count": 1
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "consoleSession": []
          }
        ]
      },
      "post": {
        "operationId": "post_publisher_v2_placements",
        "tags": [
          "Placements"
        ],
        "summary": "Create a draft placement",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled.",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Placement"
                },
                "example": {
                  "placementId": "PLACEMENT_ID",
                  "type": "WEBSITE",
                  "name": "Example site",
                  "platformIdentity": "publisher.example",
                  "status": "DRAFT",
                  "released": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlacementInput"
              },
              "example": {
                "type": "WEBSITE",
                "name": "Example site",
                "platformIdentity": "publisher.example"
              }
            }
          }
        },
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/placements/{placementId}": {
      "get": {
        "operationId": "get_publisher_v2_placements__placementId_",
        "tags": [
          "Placements"
        ],
        "summary": "Read a placement",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Placement"
                },
                "example": {
                  "placementId": "PLACEMENT_ID",
                  "type": "WEBSITE",
                  "name": "Example site",
                  "platformIdentity": "publisher.example",
                  "status": "DRAFT",
                  "released": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "placementId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "consoleSession": []
          }
        ]
      },
      "patch": {
        "operationId": "patch_publisher_v2_placements__placementId_",
        "tags": [
          "Placements"
        ],
        "summary": "Update a placement",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Placement"
                },
                "example": {
                  "placementId": "PLACEMENT_ID",
                  "type": "WEBSITE",
                  "name": "Example site",
                  "platformIdentity": "publisher.example",
                  "status": "DRAFT",
                  "released": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "placementId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": ""
                  },
                  "storeUrl": {
                    "type": "string",
                    "description": "Public HTTPS store URL required for mobile.",
                    "nullable": true
                  },
                  "minimumSdkVersion": {
                    "type": "string",
                    "description": "",
                    "default": "2.0.0"
                  },
                  "recommendedSdkVersion": {
                    "type": "string",
                    "description": ""
                  },
                  "requireConsent": {
                    "type": "boolean",
                    "description": ""
                  }
                }
              },
              "example": {
                "name": "Renamed site"
              }
            }
          }
        },
        "security": [
          {
            "consoleSession": []
          }
        ]
      },
      "delete": {
        "operationId": "delete_publisher_v2_placements__placementId_",
        "tags": [
          "Placements"
        ],
        "summary": "Archive a placement",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled. Archive fails while live or historical obligations exist.",
        "responses": {
          "204": {
            "description": "Operation completed; no response body."
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "placementId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/placements/{placementId}/request-review": {
      "post": {
        "operationId": "post_publisher_v2_placements__placementId__request_review",
        "tags": [
          "Placements"
        ],
        "summary": "Request placement review",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled. Moves DRAFT/REJECTED to PENDING_REVIEW; approval and release require an administrator.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Placement"
                },
                "example": {
                  "placementId": "PLACEMENT_ID",
                  "type": "WEBSITE",
                  "name": "Example site",
                  "platformIdentity": "publisher.example",
                  "status": "DRAFT",
                  "released": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "placementId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/placements/{placementId}/ad-slots": {
      "post": {
        "operationId": "post_publisher_v2_placements__placementId__ad_slots",
        "tags": [
          "Placements"
        ],
        "summary": "Create an offer ad slot",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled. Supply currency configuration and callback prerequisites before readiness.",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Slot"
                },
                "example": {
                  "adSlotId": "SLOT_ID",
                  "name": "Earn coins",
                  "type": "OFFER_API",
                  "state": "DRAFT",
                  "readiness": {
                    "ready": false,
                    "reasons": []
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "placementId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SlotInput"
              },
              "example": {
                "name": "Earn coins",
                "type": "OFFER_API"
              }
            }
          }
        },
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/placements/{placementId}/ad-slots/{adSlotId}": {
      "patch": {
        "operationId": "patch_publisher_v2_placements__placementId__ad_slots__adSlotId_",
        "tags": [
          "Placements"
        ],
        "summary": "Update an offer ad slot",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled. Supply currency configuration and callback prerequisites before readiness.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Slot"
                },
                "example": {
                  "adSlotId": "SLOT_ID",
                  "name": "Earn coins",
                  "type": "OFFER_API",
                  "state": "DRAFT",
                  "readiness": {
                    "ready": false,
                    "reasons": []
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "placementId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "adSlotId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": ""
                  },
                  "type": {
                    "type": "string",
                    "description": "",
                    "enum": [
                      "OFFERWALL",
                      "OFFER_API",
                      "STATIC_API"
                    ]
                  },
                  "currency": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": ""
                      },
                      "icon": {
                        "type": "string",
                        "description": ""
                      },
                      "decimals": {
                        "type": "integer",
                        "description": ""
                      },
                      "rateNumeratorMinorUnits": {
                        "type": "integer",
                        "description": ""
                      },
                      "rateDenominatorUsdMicros": {
                        "type": "integer",
                        "description": ""
                      },
                      "minimumPayoutMinorUnits": {
                        "type": "integer",
                        "description": ""
                      },
                      "rounding": {
                        "type": "string",
                        "description": "",
                        "enum": [
                          "DOWN",
                          "NEAREST",
                          "UP"
                        ]
                      }
                    },
                    "additionalProperties": true
                  },
                  "design": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                  },
                  "exposure": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true
                  },
                  "policy": {
                    "type": "object",
                    "properties": {
                      "allowedCountries": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": ""
                        },
                        "description": ""
                      },
                      "blockedCountries": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": ""
                        },
                        "description": ""
                      },
                      "blockedCampaignIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": ""
                        },
                        "description": ""
                      },
                      "excludedCampaignTaskTypes": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": ""
                        },
                        "description": ""
                      },
                      "excludedCampaignCategories": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": ""
                        },
                        "description": ""
                      }
                    }
                  },
                  "offerDelivery": {
                    "type": "object",
                    "properties": {
                      "sort": {
                        "type": "string",
                        "description": "",
                        "enum": [
                          "PAYOUT",
                          "CONVERSION_RATE",
                          "EPC",
                          "ECPM"
                        ]
                      },
                      "minimumPayoutMicros": {
                        "type": "integer",
                        "description": "",
                        "minimum": 0
                      }
                    }
                  }
                }
              },
              "example": {
                "name": "Renamed slot"
              }
            }
          }
        },
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/placements/{placementId}/ad-slots/{adSlotId}/reward-preview": {
      "post": {
        "operationId": "post_publisher_v2_placements__placementId__ad_slots__adSlotId__reward_preview",
        "tags": [
          "Placements"
        ],
        "summary": "Preview currency conversion",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled. Integer millionths of USD are converted to slot currency using server rules; no reward is credited.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "placementId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "adSlotId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "usdMicros": {
                    "type": "integer",
                    "description": "",
                    "minimum": 0
                  }
                },
                "required": [
                  "usdMicros"
                ]
              },
              "example": {
                "usdMicros": 1000000
              }
            }
          }
        },
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/placements/{placementId}/callback": {
      "put": {
        "operationId": "put_publisher_v2_placements__placementId__callback",
        "tags": [
          "Placements"
        ],
        "summary": "Configure signed reward callback",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Placement"
                },
                "example": {
                  "placementId": "PLACEMENT_ID",
                  "type": "WEBSITE",
                  "name": "Example site",
                  "platformIdentity": "publisher.example",
                  "status": "DRAFT",
                  "released": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "placementId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "endpoint": {
                    "type": "string",
                    "description": ""
                  },
                  "enabledFamilies": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "description": "",
                      "enum": [
                        "REWARD_PENDING",
                        "REWARD_CONFIRMED",
                        "REWARD_REVERSED"
                      ]
                    },
                    "description": ""
                  },
                  "ipAllowlist": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "description": ""
                    },
                    "description": ""
                  },
                  "failedRedirectUrl": {
                    "type": "string",
                    "description": "",
                    "nullable": true
                  }
                }
              },
              "example": {
                "endpoint": "https://publisher.example/rewards",
                "enabledFamilies": [
                  "REWARD_CONFIRMED",
                  "REWARD_REVERSED"
                ],
                "ipAllowlist": []
              }
            }
          }
        },
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/placements/{placementId}/callback/rotate": {
      "post": {
        "operationId": "post_publisher_v2_placements__placementId__callback_rotate",
        "tags": [
          "Placements"
        ],
        "summary": "Rotate callback secret",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled. Secrets are returned once on rotation. Promotion waits for validFrom. Test returns signed payload/headers, deliveredExternally=false, and no accounting writes.",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "keyId": {
                      "type": "string",
                      "description": ""
                    },
                    "secret": {
                      "type": "string",
                      "description": ""
                    },
                    "validFrom": {
                      "type": "string",
                      "description": "",
                      "format": "date-time"
                    }
                  },
                  "additionalProperties": true
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "placementId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/placements/{placementId}/callback/promote": {
      "post": {
        "operationId": "post_publisher_v2_placements__placementId__callback_promote",
        "tags": [
          "Placements"
        ],
        "summary": "Promote staged callback secret",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled. Secrets are returned once on rotation. Promotion waits for validFrom. Test returns signed payload/headers, deliveredExternally=false, and no accounting writes.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "placementId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/placements/{placementId}/callback/test": {
      "post": {
        "operationId": "post_publisher_v2_placements__placementId__callback_test",
        "tags": [
          "Placements"
        ],
        "summary": "Preview a signed callback",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled. Secrets are returned once on rotation. Promotion waits for validFrom. Test returns signed payload/headers, deliveredExternally=false, and no accounting writes.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "payload": {
                      "type": "object",
                      "properties": {},
                      "additionalProperties": true
                    },
                    "headers": {
                      "type": "object",
                      "properties": {},
                      "additionalProperties": true
                    },
                    "deliveredExternally": {
                      "type": "boolean",
                      "description": ""
                    }
                  },
                  "additionalProperties": true
                },
                "example": {
                  "payload": {},
                  "headers": {},
                  "deliveredExternally": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "placementId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/placements/{placementId}/ad-slots/{adSlotId}/snippets": {
      "get": {
        "operationId": "get_publisher_v2_placements__placementId__ad_slots__adSlotId__snippets",
        "tags": [
          "Placements"
        ],
        "summary": "Read integration snippets",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled. Use the placement/slot IDs in the returned snippets.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "placementId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "adSlotId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/placements/{placementId}/ad-slots/{adSlotId}/static-key": {
      "post": {
        "operationId": "post_publisher_v2_placements__placementId__ad_slots__adSlotId__static_key",
        "tags": [
          "Placements"
        ],
        "summary": "Issue a slot static key",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled. STATIC_API slot only. Expiry is future and at most one year away; a new active key deactivates previous keys for this slot.",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "staticKeyId": {
                      "type": "string",
                      "description": ""
                    },
                    "token": {
                      "type": "string",
                      "description": ""
                    },
                    "expiresAt": {
                      "type": "string",
                      "description": "",
                      "format": "date-time"
                    },
                    "displayedOnce": {
                      "type": "boolean",
                      "description": ""
                    }
                  }
                },
                "example": {
                  "staticKeyId": "KEY_ID",
                  "token": "ONE_TIME_TOKEN",
                  "expiresAt": "2027-01-01T00:00:00.000Z",
                  "displayedOnce": true
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "placementId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "adSlotId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "expiresAt": {
                    "type": "string",
                    "description": "",
                    "format": "date-time"
                  },
                  "reason": {
                    "type": "string",
                    "description": ""
                  }
                },
                "required": [
                  "expiresAt",
                  "reason"
                ]
              },
              "example": {
                "expiresAt": "2027-01-01T00:00:00.000Z",
                "reason": "Scheduled key rotation"
              }
            }
          }
        },
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/blacklists": {
      "get": {
        "operationId": "get_publisher_v2_blacklists",
        "tags": [
          "Publisher operations"
        ],
        "summary": "List offer blacklists",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": true
                      },
                      "description": ""
                    },
                    "count": {
                      "type": "integer",
                      "description": ""
                    }
                  }
                },
                "example": {
                  "items": [],
                  "count": 0
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": [
          {
            "consoleSession": []
          }
        ]
      },
      "post": {
        "operationId": "post_publisher_v2_blacklists",
        "tags": [
          "Publisher operations"
        ],
        "summary": "Create an offer blacklist",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled.",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "description": "",
                    "enum": [
                      "CAMPAIGN",
                      "PROVIDER"
                    ]
                  },
                  "value": {
                    "type": "string",
                    "description": ""
                  },
                  "reason": {
                    "type": "string",
                    "description": "",
                    "minLength": 3,
                    "maxLength": 240
                  },
                  "placementId": {
                    "type": "string",
                    "description": ""
                  },
                  "adSlotId": {
                    "type": "string",
                    "description": ""
                  }
                },
                "required": [
                  "kind",
                  "value",
                  "reason"
                ]
              },
              "example": {
                "kind": "CAMPAIGN",
                "value": "CAMPAIGN_ID",
                "reason": "Unsuitable inventory"
              }
            }
          }
        },
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/blacklists/{blacklistId}": {
      "delete": {
        "operationId": "delete_publisher_v2_blacklists__blacklistId_",
        "tags": [
          "Publisher operations"
        ],
        "summary": "Deactivate a blacklist",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled.",
        "responses": {
          "204": {
            "description": "Operation completed; no response body."
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "blacklistId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "reason",
            "in": "query",
            "required": true,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/user-bans": {
      "get": {
        "operationId": "get_publisher_v2_user_bans",
        "tags": [
          "Publisher operations"
        ],
        "summary": "List user bans",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": true
                      },
                      "description": ""
                    },
                    "count": {
                      "type": "integer",
                      "description": ""
                    }
                  }
                },
                "example": {
                  "items": [],
                  "count": 0
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": [
          {
            "consoleSession": []
          }
        ]
      },
      "post": {
        "operationId": "post_publisher_v2_user_bans",
        "tags": [
          "Publisher operations"
        ],
        "summary": "Ban an external user",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled.",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "externalUserId": {
                    "type": "string",
                    "description": ""
                  },
                  "placementId": {
                    "type": "string",
                    "description": ""
                  },
                  "reason": {
                    "type": "string",
                    "description": "",
                    "minLength": 3,
                    "maxLength": 240
                  },
                  "expiresAt": {
                    "type": "string",
                    "description": "",
                    "format": "date-time",
                    "nullable": true
                  },
                  "active": {
                    "type": "boolean",
                    "description": ""
                  }
                }
              },
              "example": {
                "externalUserId": "test-user-123",
                "reason": "Confirmed abuse"
              }
            }
          }
        },
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/user-bans/{banId}": {
      "patch": {
        "operationId": "patch_publisher_v2_user_bans__banId_",
        "tags": [
          "Publisher operations"
        ],
        "summary": "Update a user ban",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "banId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "externalUserId": {
                    "type": "string",
                    "description": ""
                  },
                  "placementId": {
                    "type": "string",
                    "description": ""
                  },
                  "reason": {
                    "type": "string",
                    "description": "",
                    "minLength": 3,
                    "maxLength": 240
                  },
                  "expiresAt": {
                    "type": "string",
                    "description": "",
                    "format": "date-time",
                    "nullable": true
                  },
                  "active": {
                    "type": "boolean",
                    "description": ""
                  }
                }
              },
              "example": {
                "active": false,
                "reason": "Issue resolved"
              }
            }
          }
        },
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/callback-deliveries": {
      "get": {
        "operationId": "get_publisher_v2_callback_deliveries",
        "tags": [
          "Publisher operations"
        ],
        "summary": "List callback deliveries",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled. Resource-scoped and redacted. DELIVERED acknowledges HTTP reception, not receiver ledger correctness.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": true
                      },
                      "description": ""
                    },
                    "count": {
                      "type": "integer",
                      "description": ""
                    }
                  }
                },
                "example": {
                  "items": [],
                  "count": 0
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/callback-deliveries/{deliveryId}": {
      "get": {
        "operationId": "get_publisher_v2_callback_deliveries__deliveryId_",
        "tags": [
          "Publisher operations"
        ],
        "summary": "Read a callback delivery",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled. Resource-scoped and redacted. DELIVERED acknowledges HTTP reception, not receiver ledger correctness.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/callback-deliveries/{deliveryId}/replay": {
      "post": {
        "operationId": "post_publisher_v2_callback_deliveries__deliveryId__replay",
        "tags": [
          "Publisher operations"
        ],
        "summary": "Replay a callback delivery",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled. Receiver must deduplicate; a replay can resend an already delivered event.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "duplicate": {
                      "type": "boolean",
                      "description": ""
                    }
                  },
                  "additionalProperties": true
                },
                "example": {
                  "duplicate": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Reuse for the same logical operation; different operations use different keys.",
            "schema": {
              "type": "string",
              "description": "",
              "minLength": 8,
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "description": "",
                    "minLength": 3,
                    "maxLength": 240
                  }
                },
                "required": [
                  "reason"
                ]
              },
              "example": {
                "reason": "Receiver recovered after outage"
              }
            }
          }
        },
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/support-cases": {
      "get": {
        "operationId": "get_publisher_v2_support_cases",
        "tags": [
          "Publisher operations"
        ],
        "summary": "List publisher support cases",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": true
                      },
                      "description": ""
                    },
                    "count": {
                      "type": "integer",
                      "description": ""
                    }
                  }
                },
                "example": {
                  "items": [],
                  "count": 0
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/support-cases/{supportCaseId}": {
      "patch": {
        "operationId": "patch_publisher_v2_support_cases__supportCaseId_",
        "tags": [
          "Publisher operations"
        ],
        "summary": "Update publisher support case",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "supportCaseId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "description": "",
                    "enum": [
                      "IN_REVIEW",
                      "RESOLVED",
                      "CLOSED"
                    ]
                  },
                  "reason": {
                    "type": "string",
                    "description": "",
                    "minLength": 3,
                    "maxLength": 240
                  }
                },
                "required": [
                  "status",
                  "reason"
                ]
              },
              "example": {
                "status": "RESOLVED",
                "reason": "Reward checked and resolved"
              }
            }
          }
        },
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/reports/offers": {
      "get": {
        "operationId": "get_publisher_v2_reports_offers",
        "tags": [
          "Publisher operations"
        ],
        "summary": "Get publisher reward reconciliation",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "metrics": {
                      "type": "object",
                      "properties": {},
                      "additionalProperties": {
                        "type": "integer",
                        "description": ""
                      }
                    },
                    "rewards": {
                      "type": "object",
                      "properties": {
                        "count": {
                          "type": "integer",
                          "description": ""
                        },
                        "payoutMicros": {
                          "type": "integer",
                          "description": ""
                        }
                      }
                    },
                    "freshnessWatermark": {
                      "type": "string",
                      "description": "",
                      "nullable": true
                    },
                    "reconciliation": {
                      "type": "object",
                      "properties": {
                        "ledgerPayoutMicros": {
                          "type": "integer",
                          "description": ""
                        },
                        "rewardPayoutMicros": {
                          "type": "integer",
                          "description": ""
                        },
                        "differenceMicros": {
                          "type": "integer",
                          "description": ""
                        },
                        "exact": {
                          "type": "boolean",
                          "description": ""
                        }
                      }
                    }
                  }
                },
                "example": {
                  "metrics": {},
                  "rewards": {
                    "count": 0,
                    "payoutMicros": 0
                  },
                  "reconciliation": {
                    "ledgerPayoutMicros": 0,
                    "rewardPayoutMicros": 0,
                    "differenceMicros": 0,
                    "exact": true
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": "",
              "enum": [
                "json",
                "csv"
              ]
            }
          }
        ],
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/publisher/v2/offer-gallery": {
      "get": {
        "operationId": "get_publisher_v2_offer_gallery",
        "tags": [
          "Publisher operations"
        ],
        "summary": "Preview owned slot inventory",
        "description": "Publisher-owned Offers V2 operation. Requires foundation enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Offer"
                      },
                      "description": ""
                    }
                  },
                  "additionalProperties": true
                },
                "example": {
                  "items": []
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "placementId",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "adSlotId",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "platform",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "consoleSession": []
          }
        ]
      }
    },
    "/sdk/v2/sessions": {
      "post": {
        "operationId": "post_sdk_v2_sessions",
        "tags": [
          "User sessions"
        ],
        "summary": "Create a user-bound SDK session",
        "description": "Bound to the authenticated SDK session user and placement. Requires foundation enabled; offer operations also require delivery enabled.",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SdkSession"
                },
                "example": {
                  "sessionId": "SESSION_ID",
                  "token": "OPAQUE_SESSION_TOKEN",
                  "expiresAt": "2026-10-03T08:15:00.000Z",
                  "contractVersion": "2.0.0"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SdkSessionInput"
              },
              "example": {
                "placementId": "PLACEMENT_ID",
                "adSlotId": "SLOT_ID",
                "externalUserId": "test-user-123",
                "platform": "web",
                "sdkVersion": "2.0.0",
                "packageBundleOrDomain": "publisher.example",
                "environment": "development",
                "consent": "GRANTED"
              }
            }
          }
        },
        "security": []
      }
    },
    "/sdk/v2/sessions/{sessionId}/configuration": {
      "get": {
        "operationId": "get_sdk_v2_sessions__sessionId__configuration",
        "tags": [
          "User sessions"
        ],
        "summary": "Read session configuration",
        "description": "Bound to the authenticated SDK session user and placement. Requires foundation enabled; offer operations also require delivery enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SdkSession"
                },
                "example": {
                  "sessionId": "SESSION_ID",
                  "token": "OPAQUE_SESSION_TOKEN"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "sdkSession": []
          }
        ]
      }
    },
    "/sdk/v2/sessions/{sessionId}/refresh": {
      "post": {
        "operationId": "post_sdk_v2_sessions__sessionId__refresh",
        "tags": [
          "User sessions"
        ],
        "summary": "Refresh session",
        "description": "Bound to the authenticated SDK session user and placement. Requires foundation enabled; offer operations also require delivery enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SdkSession"
                },
                "example": {
                  "sessionId": "SESSION_ID",
                  "token": "OPAQUE_SESSION_TOKEN"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Reuse for the same logical operation; different operations use different keys.",
            "schema": {
              "type": "string",
              "description": "",
              "minLength": 8,
              "maxLength": 120
            }
          }
        ],
        "security": [
          {
            "sdkSession": []
          }
        ]
      }
    },
    "/sdk/v2/sessions/{sessionId}/revoke": {
      "post": {
        "operationId": "post_sdk_v2_sessions__sessionId__revoke",
        "tags": [
          "User sessions"
        ],
        "summary": "Revoke session",
        "description": "Bound to the authenticated SDK session user and placement. Requires foundation enabled; offer operations also require delivery enabled.",
        "responses": {
          "204": {
            "description": "Operation completed; no response body."
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Reuse for the same logical operation; different operations use different keys.",
            "schema": {
              "type": "string",
              "description": "",
              "minLength": 8,
              "maxLength": 120
            }
          }
        ],
        "security": [
          {
            "sdkSession": []
          }
        ]
      }
    },
    "/sdk/v2/ad-slots/{adSlotId}/offers": {
      "get": {
        "operationId": "get_sdk_v2_ad_slots__adSlotId__offers",
        "tags": [
          "User offer delivery"
        ],
        "summary": "List eligible offers",
        "description": "Bound to the authenticated SDK session user and placement. Requires foundation enabled; offer operations also require delivery enabled. Supply deviceType (phone or tablet), osVersion and manufacturer for mobile targeting. Missing targeting data can result in an empty inventory.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Offer"
                      },
                      "description": ""
                    },
                    "page": {
                      "type": "object",
                      "properties": {
                        "nextCursor": {
                          "type": "string",
                          "description": "",
                          "nullable": true
                        },
                        "limit": {
                          "type": "integer",
                          "description": ""
                        }
                      }
                    },
                    "cache": {
                      "type": "object",
                      "properties": {
                        "maxAgeSeconds": {
                          "type": "integer",
                          "description": ""
                        }
                      }
                    },
                    "contractVersion": {
                      "type": "string",
                      "description": ""
                    },
                    "context": {
                      "type": "object",
                      "properties": {},
                      "additionalProperties": true
                    }
                  }
                },
                "example": {
                  "items": [],
                  "page": {
                    "nextCursor": null,
                    "limit": 20
                  },
                  "cache": {
                    "maxAgeSeconds": 60
                  },
                  "contractVersion": "2.0.0"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "adSlotId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "stateCode",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "deviceType",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "deviceManufacturer",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "osVersion",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "browser",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "browserVersion",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "integer",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "sdkSession": []
          }
        ]
      }
    },
    "/sdk/v2/offers/{offerId}": {
      "get": {
        "operationId": "get_sdk_v2_offers__offerId_",
        "tags": [
          "User offer delivery"
        ],
        "summary": "Read offer detail",
        "description": "Bound to the authenticated SDK session user and placement. Requires foundation enabled; offer operations also require delivery enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Offer"
                },
                "example": {
                  "campaignId": "CAMPAIGN_ID",
                  "title": "Verified signup",
                  "totalReward": 50,
                  "goals": [
                    {
                      "id": "signup_verified",
                      "name": "Verified signup",
                      "reward": 50
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "offerId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "deviceType",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "deviceManufacturer",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "osVersion",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "browser",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "browserVersion",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "sdkSession": []
          }
        ]
      }
    },
    "/sdk/v2/offers/{offerId}/impressions": {
      "post": {
        "operationId": "post_sdk_v2_offers__offerId__impressions",
        "tags": [
          "User offer delivery"
        ],
        "summary": "Record a displayed impression",
        "description": "Bound to the authenticated SDK session user and placement. Requires foundation enabled; offer operations also require delivery enabled. Keep mobile targeting fields consistent across listing, detail, impression and launch. deviceType is phone or tablet. Receipt expires after ten minutes.",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "impressionId": {
                      "type": "string",
                      "description": ""
                    },
                    "recordedAt": {
                      "type": "string",
                      "description": ""
                    },
                    "expiresAt": {
                      "type": "string",
                      "description": ""
                    },
                    "duplicate": {
                      "type": "boolean",
                      "description": ""
                    }
                  }
                },
                "example": {
                  "impressionId": "IMPRESSION_ID",
                  "duplicate": false
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "offerId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Reuse for the same logical operation; different operations use different keys.",
            "schema": {
              "type": "string",
              "description": "",
              "minLength": 8,
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "stateCode": {
                    "type": "string",
                    "description": ""
                  },
                  "deviceType": {
                    "type": "string",
                    "description": ""
                  },
                  "deviceManufacturer": {
                    "type": "string",
                    "description": ""
                  },
                  "osVersion": {
                    "type": "string",
                    "description": ""
                  },
                  "browser": {
                    "type": "string",
                    "description": ""
                  },
                  "browserVersion": {
                    "type": "string",
                    "description": ""
                  }
                }
              },
              "example": {
                "deviceType": "phone",
                "osVersion": "15"
              }
            }
          }
        },
        "security": [
          {
            "sdkSession": []
          }
        ]
      }
    },
    "/sdk/v2/offers/{offerId}/launch": {
      "post": {
        "operationId": "post_sdk_v2_offers__offerId__launch",
        "tags": [
          "User offer delivery"
        ],
        "summary": "Create an authorized offer launch",
        "description": "Bound to the authenticated SDK session user and placement. Requires foundation enabled; offer operations also require delivery enabled. Keep mobile targeting fields consistent across listing, detail, impression and launch. deviceType is phone or tablet. Supply the owned impression receipt. Launch URL is relative to the API origin. Expiry is Unix milliseconds; launch expires after five minutes and reserves eligibility/cap/budget. Retry with the same Idempotency-Key.",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "sessionId": {
                      "type": "string",
                      "description": ""
                    },
                    "traceId": {
                      "type": "string",
                      "description": ""
                    },
                    "launchUrl": {
                      "type": "string",
                      "description": ""
                    },
                    "expiresAt": {
                      "type": "integer",
                      "description": "Expiry as Unix milliseconds. Unlike session/impression expiry, this is a number."
                    }
                  }
                },
                "example": {
                  "sessionId": "OFFER_SESSION_ID",
                  "traceId": "TRACE_ID",
                  "launchUrl": "/performance-marketing/v2/offerwall/launch/SIGNED_SESSION?expires=1791014700000&signature=SIGNATURE",
                  "expiresAt": 1791014700000
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "offerId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Reuse for the same logical operation; different operations use different keys.",
            "schema": {
              "type": "string",
              "description": "",
              "minLength": 8,
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "impressionId": {
                    "type": "string",
                    "description": ""
                  },
                  "stateCode": {
                    "type": "string",
                    "description": ""
                  },
                  "deviceType": {
                    "type": "string",
                    "description": ""
                  },
                  "deviceManufacturer": {
                    "type": "string",
                    "description": ""
                  },
                  "osVersion": {
                    "type": "string",
                    "description": ""
                  },
                  "browser": {
                    "type": "string",
                    "description": ""
                  },
                  "browserVersion": {
                    "type": "string",
                    "description": ""
                  }
                },
                "required": [
                  "impressionId"
                ]
              },
              "example": {
                "impressionId": "IMPRESSION_ID"
              }
            }
          }
        },
        "security": [
          {
            "sdkSession": []
          }
        ]
      }
    },
    "/sdk/v2/reward-status": {
      "get": {
        "operationId": "get_sdk_v2_reward_status",
        "tags": [
          "User offer delivery"
        ],
        "summary": "Read user reward progress",
        "description": "Bound to the authenticated SDK session user and placement. Requires foundation enabled; offer operations also require delivery enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": true
                      },
                      "description": ""
                    },
                    "totals": {
                      "type": "object",
                      "properties": {
                        "pendingMinorUnits": {
                          "type": "integer",
                          "description": ""
                        },
                        "earnedMinorUnits": {
                          "type": "integer",
                          "description": ""
                        },
                        "reversedMinorUnits": {
                          "type": "integer",
                          "description": ""
                        }
                      }
                    },
                    "generatedAt": {
                      "type": "string",
                      "description": ""
                    },
                    "contractVersion": {
                      "type": "string",
                      "description": ""
                    }
                  }
                },
                "example": {
                  "items": [],
                  "totals": {
                    "pendingMinorUnits": 0,
                    "earnedMinorUnits": 50,
                    "reversedMinorUnits": 0
                  },
                  "contractVersion": "2.0.0"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": [
          {
            "sdkSession": []
          }
        ]
      }
    },
    "/sdk/v2/reward-status/{offerId}": {
      "get": {
        "operationId": "get_sdk_v2_reward_status__offerId_",
        "tags": [
          "User offer delivery"
        ],
        "summary": "Read user reward progress",
        "description": "Bound to the authenticated SDK session user and placement. Requires foundation enabled; offer operations also require delivery enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": true
                      },
                      "description": ""
                    },
                    "totals": {
                      "type": "object",
                      "properties": {
                        "pendingMinorUnits": {
                          "type": "integer",
                          "description": ""
                        },
                        "earnedMinorUnits": {
                          "type": "integer",
                          "description": ""
                        },
                        "reversedMinorUnits": {
                          "type": "integer",
                          "description": ""
                        }
                      }
                    },
                    "generatedAt": {
                      "type": "string",
                      "description": ""
                    },
                    "contractVersion": {
                      "type": "string",
                      "description": ""
                    }
                  }
                },
                "example": {
                  "items": [],
                  "totals": {
                    "pendingMinorUnits": 0,
                    "earnedMinorUnits": 50,
                    "reversedMinorUnits": 0
                  },
                  "contractVersion": "2.0.0"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "offerId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          }
        ],
        "security": [
          {
            "sdkSession": []
          }
        ]
      }
    },
    "/sdk/v2/support": {
      "get": {
        "operationId": "get_sdk_v2_support",
        "tags": [
          "User offer delivery"
        ],
        "summary": "List user support cases",
        "description": "Bound to the authenticated SDK session user and placement. Requires foundation enabled; offer operations also require delivery enabled.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": true
                      },
                      "description": ""
                    },
                    "count": {
                      "type": "integer",
                      "description": ""
                    }
                  }
                },
                "example": {
                  "items": [],
                  "count": 0
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": [
          {
            "sdkSession": []
          }
        ]
      },
      "post": {
        "operationId": "post_sdk_v2_support",
        "tags": [
          "User offer delivery"
        ],
        "summary": "Create a user support case",
        "description": "Bound to the authenticated SDK session user and placement. Requires foundation enabled; offer operations also require delivery enabled.",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true
                },
                "example": {
                  "supportCaseId": "CASE_ID"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Reuse for the same logical operation; different operations use different keys.",
            "schema": {
              "type": "string",
              "description": "",
              "minLength": 8,
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sessionId": {
                    "type": "string",
                    "description": ""
                  },
                  "reasonCode": {
                    "type": "string",
                    "description": "",
                    "minLength": 3,
                    "maxLength": 64
                  },
                  "message": {
                    "type": "string",
                    "description": "",
                    "minLength": 10,
                    "maxLength": 2000
                  }
                },
                "required": [
                  "sessionId",
                  "reasonCode",
                  "message"
                ]
              },
              "example": {
                "sessionId": "OFFER_SESSION_ID",
                "reasonCode": "MISSING_REWARD",
                "message": "I completed the verified signup but have no reward."
              }
            }
          }
        },
        "security": [
          {
            "sdkSession": []
          }
        ]
      }
    },
    "/sdk/v2/support/{supportCaseId}/evidence": {
      "post": {
        "operationId": "post_sdk_v2_support__supportCaseId__evidence",
        "tags": [
          "User offer delivery"
        ],
        "summary": "Upload support evidence (development only)",
        "description": "Bound to the authenticated SDK session user and placement. Requires foundation enabled; offer operations also require delivery enabled. Production uploads are disabled. Multipart evidence file, maximum 5 MiB. The support case must be owned.",
        "responses": {
          "201": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Invalid input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account or ownership denied",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found or feature unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict; inspect state before retrying",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit; honor Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "supportCaseId",
            "in": "path",
            "required": true,
            "description": "Opaque identifier returned by the API; owned by the authenticated advertiser.",
            "schema": {
              "type": "string",
              "description": ""
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Reuse for the same logical operation; different operations use different keys.",
            "schema": {
              "type": "string",
              "description": "",
              "minLength": 8,
              "maxLength": 120
            }
          }
        ],
        "security": [
          {
            "sdkSession": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "evidence": {
                    "type": "string",
                    "description": "",
                    "format": "binary"
                  }
                },
                "required": [
                  "evidence"
                ]
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "consoleSession": {
        "type": "http",
        "scheme": "bearer",
        "description": "Publisher dashboard session."
      },
      "sdkSession": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "opaque-session"
      },
      "staticKey": {
        "type": "apiKey",
        "in": "header",
        "name": "X-RapidReach-Static-Key",
        "description": "Exact spelling: RapidReach, without o. Slot-bound server credential."
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Stable error code."
          },
          "message": {
            "type": "string",
            "description": ""
          },
          "fieldErrors": {
            "type": "object",
            "properties": {},
            "additionalProperties": {
              "type": "string",
              "description": ""
            }
          },
          "traceId": {
            "type": "string",
            "description": "Support correlation ID."
          },
          "retryable": {
            "type": "boolean",
            "description": ""
          },
          "retryAfterSeconds": {
            "type": "integer",
            "description": ""
          }
        },
        "required": [
          "code",
          "message",
          "fieldErrors",
          "traceId",
          "retryable"
        ]
      },
      "PlacementInput": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "",
            "enum": [
              "ANDROID_APP",
              "IOS_APP",
              "WEBSITE",
              "API_NETWORK"
            ]
          },
          "name": {
            "type": "string",
            "description": ""
          },
          "platformIdentity": {
            "type": "string",
            "description": "Android package, iOS bundle, web domain or network identity."
          },
          "storeUrl": {
            "type": "string",
            "description": "Public HTTPS store URL required for mobile.",
            "nullable": true
          },
          "minimumSdkVersion": {
            "type": "string",
            "description": "",
            "default": "2.0.0"
          },
          "recommendedSdkVersion": {
            "type": "string",
            "description": ""
          },
          "requireConsent": {
            "type": "boolean",
            "description": ""
          }
        },
        "required": [
          "type",
          "name",
          "platformIdentity"
        ]
      },
      "Placement": {
        "type": "object",
        "properties": {
          "placementId": {
            "type": "string",
            "description": ""
          },
          "type": {
            "type": "string",
            "description": ""
          },
          "name": {
            "type": "string",
            "description": ""
          },
          "platformIdentity": {
            "type": "string",
            "description": ""
          },
          "status": {
            "type": "string",
            "description": ""
          },
          "platform": {
            "type": "string",
            "description": ""
          },
          "released": {
            "type": "boolean",
            "description": ""
          },
          "adSlots": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            },
            "description": ""
          },
          "callback": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "privacy": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          }
        },
        "additionalProperties": true
      },
      "SlotInput": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": ""
          },
          "type": {
            "type": "string",
            "description": "",
            "enum": [
              "OFFERWALL",
              "OFFER_API",
              "STATIC_API"
            ]
          },
          "currency": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": ""
              },
              "icon": {
                "type": "string",
                "description": ""
              },
              "decimals": {
                "type": "integer",
                "description": ""
              },
              "rateNumeratorMinorUnits": {
                "type": "integer",
                "description": ""
              },
              "rateDenominatorUsdMicros": {
                "type": "integer",
                "description": ""
              },
              "minimumPayoutMinorUnits": {
                "type": "integer",
                "description": ""
              },
              "rounding": {
                "type": "string",
                "description": "",
                "enum": [
                  "DOWN",
                  "NEAREST",
                  "UP"
                ]
              }
            },
            "additionalProperties": true
          },
          "design": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "exposure": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "policy": {
            "type": "object",
            "properties": {
              "allowedCountries": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": ""
                },
                "description": ""
              },
              "blockedCountries": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": ""
                },
                "description": ""
              },
              "blockedCampaignIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": ""
                },
                "description": ""
              },
              "excludedCampaignTaskTypes": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": ""
                },
                "description": ""
              },
              "excludedCampaignCategories": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": ""
                },
                "description": ""
              }
            }
          },
          "offerDelivery": {
            "type": "object",
            "properties": {
              "sort": {
                "type": "string",
                "description": "",
                "enum": [
                  "PAYOUT",
                  "CONVERSION_RATE",
                  "EPC",
                  "ECPM"
                ]
              },
              "minimumPayoutMicros": {
                "type": "integer",
                "description": "",
                "minimum": 0
              }
            }
          }
        },
        "required": [
          "name",
          "type"
        ]
      },
      "Slot": {
        "type": "object",
        "properties": {
          "adSlotId": {
            "type": "string",
            "description": ""
          },
          "name": {
            "type": "string",
            "description": ""
          },
          "type": {
            "type": "string",
            "description": ""
          },
          "state": {
            "type": "string",
            "description": ""
          },
          "currency": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "readiness": {
            "type": "object",
            "properties": {
              "ready": {
                "type": "boolean",
                "description": ""
              },
              "reasons": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": ""
                },
                "description": ""
              }
            }
          }
        },
        "additionalProperties": true
      },
      "Offer": {
        "type": "object",
        "properties": {
          "campaignId": {
            "type": "string",
            "description": ""
          },
          "title": {
            "type": "string",
            "description": ""
          },
          "headline": {
            "type": "string",
            "description": ""
          },
          "description": {
            "type": "string",
            "description": ""
          },
          "requirements": {
            "type": "string",
            "description": ""
          },
          "disclaimer": {
            "type": "string",
            "description": ""
          },
          "goals": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": ""
                },
                "name": {
                  "type": "string",
                  "description": ""
                },
                "reward": {
                  "type": "number",
                  "description": ""
                },
                "pendingMinutes": {
                  "type": "number",
                  "description": ""
                }
              },
              "additionalProperties": true
            },
            "description": ""
          },
          "totalReward": {
            "type": "number",
            "description": ""
          },
          "currency": {
            "type": "string",
            "description": ""
          },
          "creativeRevisionId": {
            "type": "string",
            "description": ""
          },
          "availability": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          }
        },
        "additionalProperties": true
      },
      "SdkSessionInput": {
        "type": "object",
        "properties": {
          "placementId": {
            "type": "string",
            "description": ""
          },
          "adSlotId": {
            "type": "string",
            "description": ""
          },
          "externalUserId": {
            "type": "string",
            "description": "Your stable user ID; 1–128 characters."
          },
          "platform": {
            "type": "string",
            "description": "",
            "enum": [
              "android",
              "ios",
              "web"
            ]
          },
          "sdkVersion": {
            "type": "string",
            "description": ""
          },
          "packageBundleOrDomain": {
            "type": "string",
            "description": "Must match placement identity."
          },
          "environment": {
            "type": "string",
            "description": "",
            "enum": [
              "sandbox",
              "development",
              "production"
            ]
          },
          "consent": {
            "type": "string",
            "description": "",
            "enum": [
              "GRANTED",
              "DENIED",
              "UNKNOWN",
              "NOT_REQUIRED"
            ]
          },
          "attStatus": {
            "type": "string",
            "description": ""
          }
        },
        "required": [
          "placementId",
          "externalUserId",
          "platform",
          "sdkVersion",
          "packageBundleOrDomain",
          "environment",
          "consent"
        ]
      },
      "SdkSession": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "description": ""
          },
          "token": {
            "type": "string",
            "description": "Opaque session bearer; keep protected."
          },
          "expiresAt": {
            "type": "string",
            "description": "",
            "format": "date-time"
          },
          "configuration": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "capabilities": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
          },
          "contractVersion": {
            "type": "string",
            "description": ""
          }
        },
        "additionalProperties": true
      }
    }
  }
}
