StackAdapt · Authentication Profile
Stackadapt Authentication
Authentication
StackAdapt secures its APIs with apiKey, http, and oauth2 across 4 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode and clientCredentials flow(s).
Programmatic AdvertisingDigital AdvertisingCampaign ManagementAdTechDSPDemand-Side PlatformNative AdvertisingDisplay AdvertisingVideo AdvertisingConnected TVAudience TargetingReal-Time BiddingConversion TrackingPerformance Reporting
Methods: apiKey, http, oauth2
Schemes: 4
OAuth flows: authorizationCode, clientCredentials
API key in: header
Security Schemes
RestApiKey apiKey
· in: header ()
GraphQLBearer http
scheme: bearer
MCPOAuth oauth2
· flows: authorizationCode, clientCredentials
PixelIdentifier apiKey
· in: query ()
Source
Authentication Profile
generated: '2026-08-13'
method: probed
source: >-
https://api.stackadapt.com/.well-known/oauth-authorization-server (RFC 8414),
https://mcp.stackadapt.com/.well-known/oauth-protected-resource (RFC 9728),
live 401 challenges from https://api.stackadapt.com/graphql and https://mcp.stackadapt.com/,
https://www.stackadapt.com/llms.txt, and graphql/stackadapt-graphql.md in this repo
docs: https://docs.stackadapt.com/
note: >-
Derived without an OpenAPI — StackAdapt publishes no OpenAPI on any host (see x-coverage in
apis.yml). Every scheme below is either read from a machine-readable discovery document the
provider serves, or observed in a live unauthenticated response.
summary:
types: [apiKey, http, oauth2]
api_key_in: [header]
oauth2_flows: [authorizationCode, clientCredentials]
key_separation: >-
The REST API and the GraphQL API use SEPARATE API keys. StackAdapt's own migration
guidance (and every downstream connector that documents the change) states the legacy
REST key does not work against the GraphQL API.
schemes:
- name: RestApiKey
type: apiKey
in: header
parameter_name: X-Authorization
applies_to: https://api.stackadapt.com/service/v2
method: searched
source: graphql/stackadapt-graphql.md, https://www.stackadapt.com/llms.txt
note: >-
Read-only reporting REST API (v2). Write operations are deprecated in favour of GraphQL.
- name: GraphQLBearer
type: http
scheme: bearer
applies_to: https://api.stackadapt.com/graphql
method: probed
source: live POST to https://api.stackadapt.com/graphql
note: >-
Static GraphQL API key issued by StackAdapt (Account Settings -> API Integration, or via
an account manager). Observed behaviour without a token: HTTP 401 with body
{"errors":[{"message":"Schema introspection requires authentication.","extensions":{"traceId":"..."}}]}
— introspection itself is gated, not only data access.
- name: MCPOAuth
type: oauth2
applies_to: https://mcp.stackadapt.com/
method: probed
source: https://mcp.stackadapt.com/.well-known/oauth-protected-resource
resource: https://mcp.stackadapt.com/
authorization_server: https://www.stackadapt.com/
dynamic_client_registration: true
registration_endpoint: https://www.stackadapt.com/oauth/register
flows:
- flow: authorizationCode
authorizationUrl: https://www.stackadapt.com/oauth/authorize
tokenUrl: https://www.stackadapt.com/oauth/token
refreshUrl: https://www.stackadapt.com/oauth/token
pkce: [S256, plain]
scopes:
graphql-public:read: Read access to the GraphQL Public API surface
graphql-public:write: Write access to the GraphQL Public API surface
- flow: clientCredentials
tokenUrl: https://www.stackadapt.com/oauth/token
scopes:
graphql-public:read: Read access to the GraphQL Public API surface
graphql-public:write: Write access to the GraphQL Public API surface
token_endpoint_auth_methods: [client_secret_basic, client_secret_post]
revocation_endpoint: https://www.stackadapt.com/oauth/revoke
introspection_endpoint: https://www.stackadapt.com/oauth/introspect
challenge: >-
WWW-Authenticate: Bearer error="invalid_token",
error_description="Missing Authorization header",
resource_metadata="https://mcp.stackadapt.com/.well-known/oauth-protected-resource/"
- name: PixelIdentifier
type: apiKey
in: query
parameter_name: sid | cid | uid
applies_to: https://tags.srv.stackadapt.com/
method: derived
source: https://github.com/StackAdapt/stackadapt-gtm-server-side-pixel (template.tpl)
note: >-
The server-to-server pixel surface is not bearer-authenticated. The caller identifies
itself with a StackAdapt-issued pixel identifier passed as a query parameter — sid for
retargeting/lookalike endpoints, cid for conversion, uid for the universal pixel.
environments:
- name: production
issuer: https://api.stackadapt.com
authorization_server_metadata: https://api.stackadapt.com/.well-known/oauth-authorization-server
- name: sandbox
issuer: https://sandbox.stackadapt.com
authorization_server_metadata: https://sandbox.stackadapt.com/.well-known/oauth-authorization-server
note: Sandbox runs its own isolated OAuth issuer; production tokens are not portable to it.
token_introspection_in_api:
field: Query.tokenInfo
source: graphql/stackadapt-schema.graphql
note: The GraphQL API exposes a tokenInfo query so a caller can inspect its own token.
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.
Call it yourself
curl for this page
This security artifact
curl "https://apis.io/api/v1/security/stackadapt-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.