APIs.io · Authentication Profile

Apis Io Authentication

Authentication

APIs.io secures its APIs with apiKey and oauth2 across 2 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode and clientCredentials flow(s).

API AggregationAPI DirectoryAPI DiscoveryAPI IndexingAPI RatingAPI SearchAPIs.jsonSearch EnginesAPI CatalogAgent DiscoveryMCPAgent SkillsOpenAPIAPI GovernanceA2A
Methods: apiKey, oauth2 Schemes: 2 OAuth flows: authorizationCode, clientCredentials API key in: header

Security Schemes

ApiKeyAuth apiKey
· in: header (X-API-Key)
api_key apiKey
· in: header (x-api-key)

Source

Authentication Profile

Raw ↑
generated: '2026-09-11'
method: searched
source: https://apis.io/developer/authentication
docs: https://apis.io/developer/authentication
plans_docs: https://apis.io/developer/plans
derived_from: openapi/*.yml + openapi/_original/apis-io-v1-openapi.yml
summary:
  types:
  - apiKey
  - oauth2
  api_key_in:
  - header
  oauth2_flows:
  - authorizationCode
  - clientCredentials
  required: false
  read_only: false
  read_only_note: >-
    Corrected 2026-09-11. The catalog-read surface is still GET-only, but the v1 contract now
    carries 32 POST and 7 DELETE operations across Provider Control (/providers/{slug}/claim,
    /facts, /submit, /visibility, /dispute, /correction, /checks, /gaps/report) and Saved
    Workspace (/me/searches, /me/lists, /me/watch). This file previously asserted read_only: true
    and oauth2: false; both were true on 2026-08-10 and are not true now.
model: >-
  v1 is open and read-only — every endpoint is a GET, no endpoint mutates the catalog, and
  anonymous requests succeed on the Free tier. The OpenAPI declares an `ApiKeyAuth` apiKey scheme
  that the docs describe as "API-key-ready": declared so metering and higher rate tiers can be
  introduced without a breaking change. In practice a key IS already honoured — GitHub login
  issues a free Starter key, and Pro/Business keys unlock the Industries, Regions, Ratings,
  Insights-depth, Saved Workspace and Synthesis operations.
schemes:
- name: ApiKeyAuth
  type: apiKey
  in: header
  parameter: X-API-Key
  required: false
  sources:
  - openapi/_original/apis-io-v1-openapi.yml
- name: api_key
  type: apiKey
  in: header
  parameter: x-api-key
  required: false
  sources:
  - openapi/apis-io-apis-api-openapi.yml
  - openapi/apis-io-areas-api-openapi.yml
  - openapi/apis-io-artifact-types-api-openapi.yml
  - openapi/apis-io-industries-api-openapi.yml
  - openapi/apis-io-insights-api-openapi.yml
  - openapi/apis-io-providers-api-openapi.yml
  - openapi/apis-io-ratings-api-openapi.yml
  - openapi/apis-io-regions-api-openapi.yml
  - openapi/apis-io-search-api-openapi.yml
  - openapi/apis-io-synthesis-api-openapi.yml
  - openapi/apis-io-tags-api-openapi.yml
  note: >-
    The refined per-tag specs spell the header lowercase (`x-api-key`); the v1 contract spells it
    `X-API-Key`. HTTP header names are case-insensitive, so both work.
issuance:
  method: github-oauth
  url: https://apis.io/developer/plans
  note: Log in with GitHub to be issued a free Starter key instantly; upgrade via Stripe Checkout.
tiers:
- tier: Free
  auth: none (anonymous)
  price: $0
  rate_limit: 5 req/s
  daily_quota: 1000
- tier: Starter
  auth: GitHub login
  price: $0
  rate_limit: 20 req/s
  daily_quota: 10000
- tier: Pro
  auth: GitHub login
  price: $49/mo
  rate_limit: 100 req/s
  daily_quota: 100000
- tier: Business
  auth: GitHub login
  price: $199/mo
  rate_limit: 400 req/s
  daily_quota: 1000000
oauth2: true
openid_connect: true
mutual_tls: false
oauth2_server:
  issuer: https://apis.io
  metadata_rfc8414: https://apis.io/.well-known/oauth-authorization-server
  metadata_openid: https://apis.io/.well-known/openid-configuration
  protected_resource_rfc9728: https://apis.io/.well-known/oauth-protected-resource
  jwks_uri: https://apis.io/.well-known/jwks.json
  authorization_endpoint: https://apis.io/api/v1/auth/authorize
  token_endpoint: https://apis.io/api/v1/auth/token
  registration_endpoint: https://apis.io/api/v1/auth/register
  grant_types: [authorization_code, refresh_token, client_credentials]
  code_challenge_methods: [S256]
  token_endpoint_auth_methods: [none, client_secret_basic, client_secret_post]
  dynamic_client_registration: true
  client_id_metadata_document_supported: true
  resource_indicators_supported: true
  protected_resource: https://apis.io/mcp
  note: >-
    RFC 7591 dynamic client registration plus a client_credentials grant means an agent can
    register itself and take a token with no human in the loop. The protected resource named by
    the RFC 9728 document is the MCP server, not the REST API — a key is optional on /api/v1 and
    raises the tier rather than granting access.
aauth:
  document: https://apis.io/.well-known/aauth-resource.json
  issuer: https://apis.io
  jwks_uri: https://apis.io/.well-known/jwks.json
  r3_vocabularies:
    urn:aauth:vocabulary:openapi: https://apis.io/openapi.json
    urn:aauth:vocabulary:mcp: https://apis.io/mcp
  defect: >-
    The r3_vocabularies OpenAPI pointer https://apis.io/openapi.json returned HTTP 404 when
    probed on 2026-09-11 (the served document is an HTML shell, 26,159 bytes). The MCP pointer
    resolves. An AAuth client following the OpenAPI vocabulary URI finds nothing. Recorded here
    rather than quietly dropped — this is our own document making a claim the host does not honour.
scopes:
  present: true
  artifact: scopes/apis-io-scopes.yml
  scopes: [apis:read, apis:pro, offline_access]
cors:
  allow_origin: '*'
  allow_headers: [content-type, x-api-key]
  allow_methods: [GET, OPTIONS]
mcp_authentication:
  url: https://apis.io/mcp
  anonymous_tools_list: true
  gate: >-
    Pro-tier tools are listed anonymously but return HTTP 402 `upgrade_required` when called
    without a paid key.
  oauth_discovery:
    /.well-known/oauth-authorization-server: 200
    /.well-known/oauth-protected-resource: 200
    /.well-known/openid-configuration: 200
    /.well-known/aauth-resource.json: 200
    checked: '2026-09-11'
    note: All four 404'd on 2026-08-10 and are served now.
x-evidence:
  fetched: '2026-09-11'
  probes:
  - url: https://apis.io/.well-known/oauth-authorization-server
    http_status: 200
    note: RFC 8414, saved to well-known/apis-io-oauth-authorization-server.json
  - url: https://apis.io/.well-known/openid-configuration
    http_status: 200
    note: saved to well-known/apis-io-openid-configuration.json
  - url: https://apis.io/.well-known/oauth-protected-resource
    http_status: 200
    note: RFC 9728, resource https://apis.io/mcp
  - url: https://apis.io/.well-known/aauth-resource.json
    http_status: 200
    note: AAuth resource, issuer + jwks_uri present
  - url: https://apis.io/.well-known/jwks.json
    http_status: 200
  - url: https://apis.io/openapi.json
    http_status: 404
    note: named by aauth r3_vocabularies; not served
  - url: https://apis.io/api/v1/
    http_status: 401
    note: anonymous call to an undefined endpoint — unauthorized envelope
  - url: https://apis.io/api/v1/search?q=weather&limit=1
    http_status: 200
    note: anonymous, no key (first observed 2026-08-10, re-confirmed 2026-09-11)
  - url: https://apis.io/api/v1/ratings
    http_status: 402
    note: anonymous — tier gate
  - url: https://apis.io/developer/authentication
    http_status: 200
  - url: https://apis.io/developer/plans
    http_status: 200

Work with this as data

Every security artifact 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 security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact in the catalog.
  • 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 security artifact
curl "https://apis.io/api/v1/security/apis-io-authentication"
All security posture
curl "https://apis.io/api/v1/security?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.