Award Travel Finder Agent API

The Agent API from Award Travel Finder — 1 operation(s) for agent.

Operations 1

POST /api/v1/agent/register Self-register an agent account and receive an API key #

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/awardtravelfinder-com:awardtravelfinder-com-agent-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

awardtravelfinder-com-agent-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Award Travel Finder API V1 Agent API
  version: v1
  description: 'API for searching award flight availability and pricing across multiple airlines, plus hotel search (city list and property detail with cash rates and major-chain award pricing). Availability searches that are still running return 202 Accepted with status pending, retry_after, and a Retry-After header (previously 503). A request scoped only to an open-breaker source stays 503, names that source, and includes Retry-After. A multi-airline search returns 200 with partial true and a per-source status list when other sources answered. Optional cached_only=1 is opt-in for every tier: a hit is 200, a miss is 202 pending and enqueues one background search. Per-key rate and concurrency limits return 429 with Retry-After. 202, 429, and 503 do not consume the monthly quota. Each hotel list or detail request counts as one call against the monthly quota.'
  contact:
    name: Award Travel Finder
    url: https://awardtravelfinder.com
servers:
- url: https://awardtravelfinder.com
  description: Production server
- url: http://localhost:3000
  description: Development server
security:
- ApiKeyAuth: []
tags:
- name: Agent
paths:
  /api/v1/agent/register:
    post:
      summary: Self-register an agent account and receive an API key
      tags:
      - Agent
      description: 'The one credential-less endpoint in the API. Provisions a free-tier account and returns an X-API-Key for the REST API plus the MCP OAuth discovery URLs, in a single response. No browser or human consent step. Rate limited per IP.


        Send a registration_key (or Idempotency-Key header) that you store once: the api_key is the only way back into the account, because its password is generated server-side and discarded. A repeat call presenting the same key returns the original account with 200 instead of minting a new one. Without a key, every call creates a separate account.'
      security: []
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                operator_email:
                  type: string
                  description: Contact address for the human or org operating the agent.
                agent_name:
                  type: string
                  description: Human-readable name for the agent.
                registration_key:
                  type: string
                  minLength: 16
                  description: 'Caller-generated secret, at least 16 characters, stored once by the caller. Presenting it again returns the same account and api_key. Must be your own secret: agent_name and operator_email are never used as the key, so a label cannot claim another operator''s account.'
      responses:
        '201':
          description: Account created; store the api_key securely.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  account:
                    type: object
                    properties:
                      user_id:
                        type: integer
                      plan:
                        type: string
                        example: free
                      reused:
                        type: boolean
                        description: True when an existing account was returned for a known registration_key.
                  api_key:
                    type: string
                    description: Send as the X-API-Key header. Shown once.
                  rest_api:
                    type: object
                    properties:
                      base_url:
                        type: string
                      auth_header:
                        type: string
                        example: X-API-Key
                      docs:
                        type: string
                  mcp:
                    type: object
                    description: OAuth-only MCP server. The api_key does not authenticate it.
                    properties:
                      endpoint:
                        type: string
                      auth:
                        type: string
                        example: oauth2
                      scope:
                        type: string
                        example: mcp:read
                      protected_resource_metadata:
                        type: string
                      authorization_server_metadata:
                        type: string
                      setup_docs:
                        type: string
                  usage:
                    type: object
                    properties:
                      tier:
                        type: string
                      monthly_limit:
                        type: integer
                      remaining_calls:
                        type: integer
                      reset_at:
                        type:
                        - string
                        - 'null'
                      upgrade_url:
                        type: string
        '200':
          description: Existing account returned for a known registration_key. No new account was created.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  account:
                    type: object
                    properties:
                      user_id:
                        type: integer
                      plan:
                        type: string
                        example: free
                      reused:
                        type: boolean
                        description: True when an existing account was returned for a known registration_key.
                  api_key:
                    type: string
                    description: Send as the X-API-Key header. Shown once.
                  rest_api:
                    type: object
                    properties:
                      base_url:
                        type: string
                      auth_header:
                        type: string
                        example: X-API-Key
                      docs:
                        type: string
                  mcp:
                    type: object
                    description: OAuth-only MCP server. The api_key does not authenticate it.
                    properties:
                      endpoint:
                        type: string
                      auth:
                        type: string
                        example: oauth2
                      scope:
                        type: string
                        example: mcp:read
                      protected_resource_metadata:
                        type: string
                      authorization_server_metadata:
                        type: string
                      setup_docs:
                        type: string
                  usage:
                    type: object
                    properties:
                      tier:
                        type: string
                      monthly_limit:
                        type: integer
                      remaining_calls:
                        type: integer
                      reset_at:
                        type:
                        - string
                        - 'null'
                      upgrade_url:
                        type: string
        '422':
          description: registration_key was shorter than 16 characters.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '429':
          description: Per-IP registration throttle exceeded.
      parameters:
      - name: Idempotency-Key
        in: header
        required: false
        description: Alternative to registration_key in the body. Takes precedence when both are sent.
        schema:
          type: string
          minLength: 16
      operationId: postApiV1AgentRegister
      x-operation-id-source: derived
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      name: X-API-Key
      in: header
      description: 'API key for the REST API and CLI, sent as the X-API-Key header. Autonomous agents can self-register for a free-tier key in one unauthenticated call: POST /api/v1/agent/register. The MCP server at https://mcp.awardtravelfinder.com/mcp does NOT accept this key - it is OAuth 2.1 only (scope mcp:read), with Dynamic Client Registration at POST /oauth/register.'
x-service-info:
  name: Award Travel Finder
  description: 'Award seat availability, award chart pricing and points valuations. Current airline coverage: https://awardtravelfinder.com/coverage.json.'
  categories:
  - travel
  - flight-search
  - loyalty-programs
  documentation: https://awardtravelfinder.com/developers
  pricing_url: https://awardtravelfinder.com/pricing