Metadata · Authentication Profile
Metadata Authentication
Authentication
Metadata declares 2 security scheme(s) across its OpenAPI definitions.
CompanyMarketingMarketing AutomationDemand GenerationAdvertisingB2BArtificial IntelligenceMCPModel Context ProtocolAI AgentsPaid MediaAccount Based Marketing
Methods:
Schemes: 2
OAuth flows:
API key in:
Security Schemes
Authorization http
scheme: bearer
· in: header ()
oauth2
Source
Authentication Profile
generated: '2026-08-12'
method: searched
source: https://metadata.io/developers/authentication.html
docs: https://metadata.io/developers/authentication.html
summary: All Metadata MCP requests are authenticated with a bearer API key scoped to a single account.
Keys are minted in the app, stored server-side only, shown exactly once, and can be rotated or revoked.
The MCP endpoint additionally advertises full OAuth 2.0 authorization-server and protected-resource
metadata for clients that negotiate rather than carry a static key.
schemes:
- id: api_key_bearer
type: http
scheme: bearer
in: header
name: Authorization
key_prefix: md1_live_
env_var: METADATA_API_KEY
minted_at: Settings > API Keys > Create Key
display_policy: shown exactly once
storage: server-side only
scoped_to: a single Metadata account
source: https://metadata.io/developers/authentication.html
- id: oauth2
type: oauth2
flow: authorization_code
pkce:
- S256
issuer: https://mcp-server.metadata.io/
authorization_endpoint: https://mcp-server.metadata.io/authorize
token_endpoint: https://mcp-server.metadata.io/token
registration_endpoint: https://mcp-server.metadata.io/register
revocation_endpoint: https://mcp-server.metadata.io/revoke
grant_types:
- authorization_code
- refresh_token
token_endpoint_auth_methods:
- client_secret_post
- client_secret_basic
- private_key_jwt
- none
scopes_supported:
- openid
- offline_access
dynamic_client_registration: true
client_id_metadata_document_supported: true
method: probed
source: https://mcp-server.metadata.io/.well-known/oauth-authorization-server
note: RFC 8414 authorization-server metadata and RFC 9728 protected-resource metadata are both served
anonymously. The OAuth scopes_supported (openid, offline_access) are the transport-level scopes and
are DISTINCT from the seven product permission scopes documented for API keys — see scopes/metadata-scopes.yml.
headers:
- name: Authorization
value: Bearer <METADATA_API_KEY>
required: true
- name: X-Account-ID
required: conditional
note: Required on every call for users with access to multiple Metadata accounts (agencies, holding
companies). Call list_user_accounts first to enumerate them.
rotation:
cadence_recommended: quarterly
triggers:
- employee or contractor offboarding
- suspected key leak (logs, shared screen, repo commit)
- scope expansion or reduction for the agent
atomic: true
grace_window: the old key stays valid for 15 minutes after a new one is issued; older keys are hard-revoked
after the grace window
self_service: true
note: Docs state to rotate rather than contact support when a key is lost.
guidance:
- treat tokens like passwords
- never commit to git
- never log them
- never paste into chat
- name each key after the agent that will use it (claude-code-gil, hermes-prod, paperclip-sandbox)
- scope keys to limit blast radius — an analytics-only key should not carry launch permissions
inconsistency_note: The quickstart says to mint keys at app.metadataone.com; the authentication page says
platform.metadata.io. Both hosts are live and both are linked from the metadata.io nav ("AI agency"
and "Classic view" respectively). Recorded as published; not reconciled by API Evangelist.