AON

AON API

AON API as documented publicly: 15 operations. Contract generated from the documentation by API Evangelist (2026-11-01); not the provider's own document.

Operations 15

POST /api/page-contexts/resolve Resolves page context to retrieve suggested questions and prompt. #
GET /page GET /page #
POST /v1/auth/login Login with email and password #
GET /v1/auth/me Get current user profile #
POST /v1/auth/register Register account #
POST /v1/auth/send-code Send verification code #
POST /v1/developer/reports/offers/batch POST /v1/developer/reports/offers/batch remains the compatibility endpoint. #
POST /v1/mcp POST /v1/mcp #
POST /v1/offers/info Read current stored details and the lifecycle status of up to 1000 Offers per call by canonical Offer ID. #
POST /v1/offers/instances Look up as many as 100 Offer cards your application has already served, by offer_instance_id. #
POST /v1/offers/query POST /v1/offers/query #
GET /v1/postback/{partnerId} Postbacks & attribution #
GET /v1/public/placements/{placementId}/setup Fetches the placement setup including styles and configuration. #
GET /v1/track/click/{aonId} Redirect tracked click #
POST /v2/developer/reports/offers/batch POST /v2/developer/reports/offers/batch #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/aon-pro:aon-pro-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

aon-pro-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: AON API
  version: '2026-11-01'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-01: 15 operation(s) read from 32 public documentation page(s) (each
    operation names its page in x-source). This is not the provider''s published contract; AON has published no machine-readable contract that
    the pipeline could find. Engine: oss.'
  x-evidence-tiers:
    code-example: 7
    documentation: 8
    pages-with-code: 24
    pages-read: 32
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-01'
  x-generator: generate-contract-from-docs.py
  x-engine: oss
  x-sources:
  - https://docs.aon.pro/api
  - https://docs.aon.pro/api/reporting
  - https://docs.aon.pro/api/offer-info
  - https://docs.aon.pro/api/web-plugin
  - https://docs.aon.pro/api/offer-query
  - https://docs.aon.pro/api/reporting.md
  - https://docs.aon.pro/api/offer-info.md
  - https://docs.aon.pro/api/web-plugin.md
  - https://docs.aon.pro/api/offer-query.md
  - https://docs.aon.pro/api/location-search
  - https://docs.aon.pro/api/offer-instances
  - https://docs.aon.pro/api/errors-rate-limits
  - https://docs.aon.pro/api/location-search.md
  - https://docs.aon.pro/api/offer-instances.md
  - https://docs.aon.pro/sdk
  - https://docs.aon.pro/quickstart/first-api-call
  - https://docs.aon.pro/api.md
  - https://docs.aon.pro/sdk.md
  - https://docs.aon.pro/mcp/quickstart
  - https://docs.aon.pro/mcp/quickstart.md
  - https://docs.aon.pro/sdk/typescript.md
  - https://docs.aon.pro/quickstart/first-api-call.md
  - https://docs.aon.pro/quickstart/public-test-sandbox
  - https://docs.aon.pro/quickstart/public-test-sandbox.md
  - https://docs.aon.pro/sdk/typescript
  - https://docs.aon.pro/guides/offer-wall
  - https://docs.aon.pro/mcp/faq
  - https://docs.aon.pro/protocol/location-targeting
  - https://docs.aon.pro/partner/postbacks
  - https://docs.aon.pro/api/tracking
  - https://docs.aon.pro/api/authentication
  - https://docs.aon.pro/guides/sdk-typescript
servers:
- url: https://api.aon.pro
paths:
  /api/page-contexts/resolve:
    post:
      operationId: post_api_page_contexts_resolve
      tags:
      - Api
      summary: Resolves page context to retrieve suggested questions and prompt.
      description: Sent on HTTPS pages to read the page. Returns READY with suggested questions and prompt text.
      x-source: https://docs.aon.pro/api/web-plugin
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiPageContextsResolveRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiPageContextsResolveResponse'
      x-evidence:
        kind: documentation
  /page:
    get:
      operationId: get_page
      tags:
      - Page
      summary: GET /page
      x-source: https://docs.aon.pro/api/web-plugin
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -s https://your-site/page | grep -c ''data-placement-id="plc_…"'' returns 1 , and the same for data-aon-slot="end-of-content"
          . '
  /v1/auth/login:
    post:
      operationId: post_v1_auth_login
      tags:
      - Auth
      summary: Login with email and password
      description: Authenticate a user and issue access and refresh tokens.
      x-source: https://docs.aon.pro/api/authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1AuthLoginRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/auth/me:
    get:
      operationId: get_v1_auth_me
      tags:
      - Auth
      summary: Get current user profile
      description: Return the currently authenticated user's profile and identity metadata.
      x-source: https://docs.aon.pro/api/authentication
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/auth/register:
    post:
      operationId: post_v1_auth_register
      tags:
      - Auth
      summary: Register account
      description: Register a new user with email, verification code, password, and display name.
      x-source: https://docs.aon.pro/api/authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1AuthRegisterRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/auth/send-code:
    post:
      operationId: post_v1_auth_send_code
      tags:
      - Auth
      summary: Send verification code
      description: Send a verification code to the provided email address.
      x-source: https://docs.aon.pro/api/authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1AuthSendCodeRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/developer/reports/offers/batch:
    post:
      operationId: post_v1_developer_reports_offers_batch
      tags:
      - Developer
      summary: POST /v1/developer/reports/offers/batch remains the compatibility endpoint.
      description: Compatibility endpoint for v1 consumers; groups earnings by original settlement currency and returns the legacy coverage object.
      x-source: https://docs.aon.pro/api/reporting
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: Bearer token containing the application‑owned Live Key.
      - name: Content-Type
        in: header
        required: true
        schema:
          type: string
        description: Must be application/json.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1DeveloperReportsOffersBatchRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1DeveloperReportsOffersBatchResponse'
      x-evidence:
        kind: documentation
  /v1/mcp:
    post:
      operationId: post_v1_mcp
      tags:
      - Mcp
      summary: POST /v1/mcp
      x-source: https://docs.aon.pro/mcp/quickstart
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1McpRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s -X POST https://api.aon.pro/v1/mcp  -H \"Content-Type: application/json\"  -H \"X-AON-Placement-Id: <YOUR_PLACEMENT_ID>\"\
          \  -d '{\n \"jsonrpc\": \"2.0\",\n \"method\": \"tools/call\",\n \"params\": {\n \"name\": \"aon_search_offers\",\n \"arguments\": {\n\
          \ \"intent\": {\n \"content\": [\n { \"type\": \"input_text\", \"text\": \"credit card with cashback\" }\n ]\n }\n }\n },\n \"id\":\
          \ 1\n }' | python3 -m json.tool \n The result's content[0]"
  /v1/offers/info:
    post:
      operationId: post_v1_offers_info
      tags:
      - Offers
      summary: Read current stored details and the lifecycle status of up to 1000 Offers per call by canonical Offer ID.
      description: OfferInfo API reads current stored details and the lifecycle status of up to 1000 Offers per call by canonical Offer ID using
        a Live API Key.
      x-source: https://docs.aon.pro/api
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/offers/instances:
    post:
      operationId: post_v1_offers_instances
      tags:
      - Offers
      summary: Look up as many as 100 Offer cards your application has already served, by offer_instance_id.
      description: Offer Instance API looks up up to 100 Offer cards your application has already served, by offer_instance_id, using a Live API
        Key.
      x-source: https://docs.aon.pro/api
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/offers/query:
    post:
      operationId: post_v1_offers_query
      tags:
      - Offers
      summary: POST /v1/offers/query
      x-source: https://docs.aon.pro/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1OffersQueryRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1OffersQueryResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl -X POST https://api.aon.pro/v1/offers/query  -H \"Content-Type: application/json\"  -H \"AON-Protocol-Version: 1.0\"\
          \  -H \"X-AON-Placement-Id: plc_A1b2C3d4E5f6G7h8\"  -d '{\n \"intent\": {\n \"content\": [\n { \"type\": \"input_text\", \"text\": \"\
          noise cancelling headphones under $200\" }\n ],\n \"provenance\": \"user_expressed\",\n \"signals\": {\n \"budget\": { \"max\": 200,\
          \ \"currency\": \"USD\" }\n }\n },\n \"context\": {\n \"p"
  /v1/postback/{partnerId}:
    get:
      operationId: get_v1_postback_partnerId
      tags:
      - Postback
      summary: Postbacks & attribution
      description: Partner postbacks use a single HTTP GET binding with all parameters in the query string; no request body or signature headers
        are required.
      x-source: https://docs.aon.pro/partner/postbacks
      parameters:
      - name: partnerId
        in: path
        required: true
        schema:
          type: string
      - name: aon_click_id
        in: query
        required: true
        schema:
          type: string
        description: The click id AON passed to your landing page (typically aci_…).
      - name: event_name
        in: query
        required: true
        schema:
          type: string
        description: Exact, case‑sensitive Goal event declared on the Offer.
      - name: order_id
        in: query
        required: false
        schema:
          type: string
        description: Stable business identity; one of order_id, event_id, or partner_txn_id.
      - name: event_id
        in: query
        required: false
        schema:
          type: string
        description: Stable business identity; one of order_id, event_id, or partner_txn_id.
      - name: partner_txn_id
        in: query
        required: false
        schema:
          type: string
        description: Stable business identity; one of order_id, event_id, or partner_txn_id.
      - name: amount
        in: query
        required: false
        schema:
          type: string
        description: Decimal string amount; required for CPS Goals and must be sent together with currency.
      - name: currency
        in: query
        required: false
        schema:
          type: string
        description: ISO 4217 currency code; required together with amount for CPS Goals.
      - name: action
        in: query
        required: false
        schema:
          type: string
        description: Optional action for reversal (reversal) or confirmation (confirm).
      - name: reason
        in: query
        required: false
        schema:
          type: string
        description: Reason for reversal; one of refunded, chargeback, merchant_cancelled, invalid_order, fraud, or duplicate.
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1PostbackPartneridResponse'
      x-evidence:
        kind: documentation
  /v1/public/placements/{placementId}/setup:
    get:
      operationId: get_v1_public_placements_placementId_setup
      tags:
      - Public
      summary: Fetches the placement setup including styles and configuration.
      description: Retrieves the placement's type, status, and content_assistant_setup (styles, with_prompt, with_ask_box). No credentials required.
      x-source: https://docs.aon.pro/api/web-plugin
      parameters:
      - name: placementId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1PublicPlacementsPlacementidSetupResponse'
      x-evidence:
        kind: documentation
  /v1/track/click/{aonId}:
    get:
      operationId: get_v1_track_click_aonId
      tags:
      - Track
      summary: Redirect tracked click
      description: Resolve a tracked click and redirect to the final destination while recording attribution.
      x-source: https://docs.aon.pro/api/tracking
      parameters:
      - name: aonId
        in: path
        required: true
        schema:
          type: string
      responses:
        '302':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1TrackClickAonidResponse'
      x-evidence:
        kind: documentation
  /v2/developer/reports/offers/batch:
    post:
      operationId: post_v2_developer_reports_offers_batch
      tags:
      - Developer
      summary: POST /v2/developer/reports/offers/batch
      x-source: https://docs.aon.pro/api/reporting
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV2DeveloperReportsOffersBatchRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV2DeveloperReportsOffersBatchResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl --request POST  \"https://api.aon.pro/v2/developer/reports/offers/batch\"  --header \"Authorization: Bearer $AON_API_KEY\"\
          \  --header \"Content-Type: application/json\"  --data '{\n \"items\": [\n {\n \"placement_id\": \"plc_7c2e0dR9kL4mN8pQ\",\n \"offer_id\"\
          : \"7d45b8ac-27bb-4d8f-9d32-68a9ac01a012\"\n },\n {\n \"offer_link\": \"https://aon.link/static/st_8pK4vQ7mN2xR5cT9wY3zD6hJ1sL0bF4\"\
          \n }\n ],\n \"from\": \"2026-08-01T00:"
components:
  schemas:
    PostApiPageContextsResolveRequest:
      type: object
      properties:
        submitted_url:
          type: string
          description: Origin plus pathname of the page.
        semantic_context.locale:
          type: string
          description: Locale language tag when valid.
      required:
      - submitted_url
    PostApiPageContextsResolveResponse:
      type: object
      properties:
        status:
          type: string
          description: Result status, e.g., READY.
        suggestions:
          type: array
          description: One to five suggested questions.
        prompt:
          type: string
          description: Prompt text displayed to the user.
    PostV1AuthLoginRequest:
      type: object
      properties:
        email:
          type: string
          description: User email address.
        password:
          type: string
          description: User password.
      required:
      - email
      - password
    PostV1AuthRegisterRequest:
      type: object
      properties:
        email:
          type: string
          description: User email address.
        verification_code:
          type: string
          description: Code sent to the email for verification.
        password:
          type: string
          description: Password for the new account.
        display_name:
          type: string
          description: Display name for the user profile.
      required:
      - email
      - verification_code
      - password
      - display_name
    PostV1AuthSendCodeRequest:
      type: object
      properties:
        email:
          type: string
          description: Email address to receive the verification code.
      required:
      - email
    PostV1DeveloperReportsOffersBatchRequest:
      type: object
      properties:
        items:
          type: array
          description: Array of offer identifiers; each item may contain placement_id and offer_id, or an offer_link.
        from:
          type: string
          description: Inclusive UTC timestamp (ISO‑8601) marking the start of the reporting window.
        to:
          type: string
          description: Exclusive UTC timestamp (ISO‑8601) marking the end of the reporting window.
      required:
      - items
      - from
      - to
    PostV1DeveloperReportsOffersBatchResponse:
      type: object
      properties:
        code:
          type: string
          description: Response status code.
        message:
          type: string
          description: Human‑readable message.
        data.results:
          type: array
          description: Array of per‑item results.
        data.results[].input_index:
          type: integer
          description: Zero‑based index of the input item.
        data.results[].status:
          type: string
          description: Result status.
        data.results[].data:
          type: object
          description: Performance data for the item, including currency‑specific earnings.
        data.results[].data.estimated_earnings:
          type: array
          description: Array of earnings objects grouped by original settlement currency.
        data.results[].data.estimated_earnings[].currency:
          type: string
          description: Currency code of the earnings bucket.
        data.results[].data.estimated_earnings[].amount:
          type: string
          description: Earnings amount for the currency.
        data.coverage:
          type: object
          description: Legacy coverage object (always present in v1).
        data.succeeded_count:
          type: integer
          description: Number of successfully processed items.
        data.failed_count:
          type: integer
          description: Number of items that failed.
        extra.timezone:
          type: string
          description: Timezone of the response.
    PostV1McpRequest:
      type: object
      properties:
        jsonrpc:
          type: string
        method:
          type: string
        params:
          type: object
          properties:
            name:
              type: string
            arguments:
              type: object
              properties:
                intent:
                  type: object
                  properties:
                    content:
                      type: array
                      items:
                        type: object
                        properties:
                          type:
                            type: string
                          text:
                            type: string
        id:
          type: integer
    PostV1OffersQueryRequest:
      type: object
      properties:
        intent:
          type: object
          properties:
            content:
              type: array
              items:
                type: object
                properties:
                  type:
                    type: string
                  text:
                    type: string
            provenance:
              type: string
            signals:
              type: object
              properties:
                budget:
                  type: object
                  properties:
                    max:
                      type: integer
                    currency:
                      type: string
        context:
          type: object
          properties:
            platform:
              type: object
              properties:
                name:
                  type: string
                channel:
                  type: string
            user_profile:
              type: object
              properties:
                country:
                  type: string
            session:
              type: object
              properties:
                recent_topics:
                  type: array
                  items:
                    type: string
        constraints:
          type: object
          properties:
            category_ids:
              type: array
              items:
                type: string
        force_offer:
          type: boolean
        response_options:
          type: object
          properties:
            thinking_mode:
              type: boolean
        pagination:
          type: object
          properties:
            limit:
              type: integer
            offset:
              type: integer
    PostV1OffersQueryResponse:
      type: object
      properties:
        platform:
          type: object
          properties:
            name:
              type: string
            channel:
              type: string
        user_profile:
          type: object
          properties:
            country:
              type: string
        session:
          type: object
          properties:
            recent_topics:
              type: array
              items:
                type: string
    GetV1PostbackPartneridResponse:
      type: object
      properties:
        code:
          type: string
          description: Top‑level response code.
        message:
          type: string
          description: Top‑level response message.
        data:
          type: object
          description: Payload containing result details.
        data.result:
          type: string
          description: Result of the operation (e.g., accepted, rejected, reversed, already_reversed, disputed, etc.).
        data.event_logged:
          type: boolean
          description: Indicates whether the event was logged.
        data.reason:
          type: string
          description: Machine‑readable reason for the result.
        data.correlation_id:
          type: string
          description: Identifier you can quote for support.
        data.retryable:
          type: boolean
          description: Whether the request can be retried.
        extra:
          type: object
          description: Additional diagnostics.
    GetV1PublicPlacementsPlacementidSetupResponse:
      type: object
      properties:
        type:
          type: string
          description: Type of the placement.
        status:
          type: string
          description: Current status of the placement.
        content_assistant_setup:
          type: object
          description: Setup details for the content assistant.
        content_assistant_setup.styles:
          type: array
          description: List of style definitions.
        content_assistant_setup.with_prompt:
          type: boolean
          description: Whether the prompt bubble is shown.
        content_assistant_setup.with_ask_box:
          type: boolean
          description: Whether the ask box is shown.
    GetV1TrackClickAonidResponse:
      type: object
      properties:
        Location:
          type: string
          description: Redirect target resolved for the tracked click.
    PostV2DeveloperReportsOffersBatchRequest:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              placement_id:
                type: string
              offer_id:
                type: string
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
    PostV2DeveloperReportsOffersBatchResponse:
      type: object
      properties:
        input_index:
          type: integer
        offer_link:
          type:
          - string
          - 'null'
        status:
          type: string
        data:
          type: object
          properties:
            placement_id:
              type: string
            offer_id:
              type: string
            clicks:
              type: integer
            conversions:
              type: integer
            estimated_earnings:
              type: array
              items:
                type: object
                properties:
                  currency:
                    type: string
                  amount:
                    type: string
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: Api
- name: Auth
- name: Developer
- name: Mcp
- name: Offers
- name: Page
- name: Postback
- name: Public
- name: Track