ezoic · Authentication Profile

Ezoic Authentication

Authentication

ezoic secures its APIs with apiKey and oauth2 across 6 declared security schemes, as derived from its OpenAPI definitions.

CompanyAdvertisingAdTechPublisher MonetizationAnalyticsReportingSubscriptionPaywallsIdentityCDNCachingMCPAuthenticationAgents
Methods: apiKey, oauth2 Schemes: 6 OAuth flows: API key in: query, header

Security Schemes

developerKey apiKey
· in: query (developerKey)
domain scoping-parameter
· in: query (domain)
X-Ezoic-Reader-Email apiKey
· in: header (X-Ezoic-Reader-Email)
X-Ezoic-Reader-Token apiKey
· in: header (X-Ezoic-Reader-Token)
Ezoic OAuth 2.0 oauth2
· flows: , ,
anonymous none

Source

Authentication Profile

Raw ↑
generated: '2026-08-13'
method: searched
source: >-
  https://docs.ezoic.com/docs/api/ , https://docs.ezoic.com/docs/subscriptions/rest-api/ ,
  https://docs.ezoic.com/docs/analytics-mcp/ , and live probes of
  https://token.ezoic.com/.well-known/oauth-authorization-server and
  https://analytics-mcp.ezoic.com/.well-known/oauth-protected-resource
docs: https://docs.ezoic.com/docs/api/
summary:
  types: [apiKey, oauth2]
  api_key_in: [query, header]
  note: >-
    Ezoic runs two authentication regimes with nothing in common. The REST gateway uses one
    long-lived API key in the QUERY STRING for all three services. The agent surface uses a
    modern OAuth 2.0 authorization server with PKCE, DPoP, dynamic client registration and
    RFC 9728 resource metadata. The newer surface is materially better secured than the
    older one.
regimes:
- name: API gateway (REST)
  applies_to: [Big Data Analytics, CDN, Subscriptions]
  host: https://api-gateway.ezoic.com
  enablement: >-
    Each service is off until enabled under Settings -> API Access in the Ezoic dashboard.
    The key is shared across every enabled service and is rotatable from that page.
  authorization: >-
    The gateway authenticates the key, confirms it is enabled for the requested service,
    and confirms any `domain` passed belongs to the account, before the request reaches the
    service. A key can only ever act on its own domains.
  unauthenticated_response: 503 "Developer key is empty."
- name: Agent surface (OAuth)
  applies_to: [Analytics MCP]
  authorization_server: https://token.ezoic.com
  enablement: The connecting Ezoic role must include the Analytics permission.
  see_also: scopes/ezoic-scopes.yml
schemes:
- name: developerKey
  type: apiKey
  in: query
  parameter: developerKey
  regime: API gateway (REST)
  description: >-
    Your Ezoic API key, copied from Settings -> API Access. One key for every enabled
    gateway service; regenerate it from the same page.
  sources:
  - https://docs.ezoic.com/docs/api/
  - openapi/ezoic-big-data-analytics-api-openapi.yml
  - openapi/ezoic-cdn-api-openapi.yml
  - openapi/ezoic-access-api-openapi.yml
  risk: >-
    A long-lived bearer credential in the query string is logged by proxies, CDNs, browser
    history and server access logs by default. Ezoic keeps reader identity out of the URL
    for exactly this reason, but places the account credential there.
- name: domain
  type: scoping-parameter
  in: query
  parameter: domain
  regime: API gateway (REST)
  description: >-
    The domain being queried. Not a credential, but authorization-bearing — the gateway
    rejects any domain not on the key's account.
  sources: [https://docs.ezoic.com/docs/subscriptions/rest-api/]
- name: X-Ezoic-Reader-Email
  type: apiKey
  in: header
  parameter: X-Ezoic-Reader-Email
  regime: API gateway (REST)
  applies_to: [Subscriptions]
  description: >-
    Reader identity — the reader's email address. The common case, including sites that
    bring their own login. Supply exactly one reader identity header; neither or both is
    rejected.
  sources: [https://docs.ezoic.com/docs/subscriptions/rest-api/]
- name: X-Ezoic-Reader-Token
  type: apiKey
  in: header
  parameter: X-Ezoic-Reader-Token
  regime: API gateway (REST)
  applies_to: [Subscriptions]
  description: >-
    Reader identity — the reader's Ezoic Subscriptions session JWT, for Ezoic
    visitor-account sites where the server never sees the reader's email. Read it in the
    browser with getSessionToken() and relay it. Short-lived and scoped to the current
    domain; the API validates it against the requested domain, so a token from one site
    cannot be replayed against another. Read per request rather than storing it —
    getSessionToken() returns null for a signed-out visitor.
  sources: [https://docs.ezoic.com/docs/subscriptions/rest-api/]
- name: Ezoic OAuth 2.0
  type: oauth2
  regime: Agent surface (OAuth)
  applies_to: [Analytics MCP]
  issuer: https://token.ezoic.com
  metadata: https://token.ezoic.com/.well-known/oauth-authorization-server
  flows:
    authorization_code:
      authorization_url: https://token.ezoic.com/authorize
      token_url: https://token.ezoic.com/token
      pkce: required (S256 only)
      scopes: {}
    client_credentials:
      token_url: https://token.ezoic.com/token
    device_code:
      device_authorization_url: https://token.ezoic.com/device_authorization
      token_url: https://token.ezoic.com/token
  bearer_methods_supported: [header]
  dpop: supported (ES256)
  dynamic_client_registration: https://token.ezoic.com/register
  revocation: https://token.ezoic.com/token/revoke
  jwks_uri: https://token.ezoic.com/.well-known/jwks.json
  token_endpoint_auth_methods: [none, private_key_jwt]
  description: >-
    The assistant redirects the user to Ezoic login, the user authorizes, and the assistant
    receives a scoped access token. Read-only — no MCP tool can modify, create or delete
    anything on the account.
  sources:
  - https://docs.ezoic.com/docs/analytics-mcp/
  - https://token.ezoic.com/.well-known/oauth-authorization-server
- name: anonymous
  type: none
  regime: Agent surface
  applies_to: [Setup Assistant MCP]
  endpoint: https://setup-agent.ezoic.com/mcp
  description: >-
    No account and no key. Verified by a successful unauthenticated initialize +
    tools/list on 2026-08-13.
  sources: [https://github.com/ezoic/ezoic-setup-mcp]
mfa_or_signing:
  request_signing: false
  mutual_tls: false
  note: No request signing or mTLS is published for the REST gateway.

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/ezoic-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 email required.

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