Unbounce · Authentication Profile
Unbounce Authentication
Authentication
Unbounce secures its APIs with http and oauth2 across 3 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode flow(s).
Landing PagesConversion Rate OptimizationMarketingA/B TestingLead GenerationMarketing Automation
Methods: http, oauth2
Schemes: 3
OAuth flows: authorizationCode
API key in:
Security Schemes
api_key http
scheme: basic
oauth2 oauth2
· flows: authorizationCode
mcp-oauth2 oauth2
· flows: authorizationCode
Source
Authentication Profile
generated: '2026-08-13'
method: searched
source: https://developer.unbounce.com/getting_started/#Authorization
docs: https://developer.unbounce.com/getting_started/#Authorization
derived_from:
- raml/unbounce-api-v0.4.raml
- openapi/_original/unbounce-openapi.yml
- well-known/unbounce-mcp-oauth-authorization-server.json
summary:
types: [http, oauth2]
http_schemes: [basic, bearer]
oauth2_flows: [authorizationCode]
surfaces: [rest, mcp]
transport: HTTPS required
self_serve: false
schemes:
- name: api_key
surface: REST API v0.4
type: http
scheme: basic
location: Authorization header (HTTP Basic)
credential: Unbounce API key as the username, empty password
example: 'curl -u API_KEY: -H "Accept: application/vnd.unbounce.api.v0.4+json" https://api.unbounce.com/accounts'
availability: All pricing plans, after an approved API Access request
provisioning: >-
Not self-serve. Submit the API Access form, wait for Unbounce support to enable
access ("a couple of days"), then create keys in the app under Manage Account ->
API Access.
permissions: >-
Unscoped. "API keys currently act like Unbounce account administrators" — read
access to Accounts, Sub Accounts/Clients, Domains, Page Groups, Pages, Leads and Users.
rotation: Multiple keys can be created per account; no documented expiry or rotation policy.
errors:
- {status: 401, meaning: API key missing}
- {status: 403, meaning: API key forbidden to access the resource}
sources: [raml/unbounce-api-v0.4.raml, https://developer.unbounce.com/getting_started/#Authorization]
- name: oauth2
surface: REST API v0.4
type: oauth2
flows:
- flow: authorizationCode
authorizationUrl: https://api.unbounce.com/oauth/authorize
tokenUrl: https://api.unbounce.com/oauth/token
refreshTokenUrl: https://api.unbounce.com/oauth/token
scopes: 1
scope_names: [full]
token_format: JWT
token_type: bearer
expires_in: 600
refresh: 'grant_type=refresh_token; a new refresh token is issued on each exchange'
location: 'Authorization: Bearer <token>'
provisioning: >-
Not self-serve. "We''re still working on providing self-service for OAuth
applications" — client credentials are granted case-by-case via a registration form.
permissions: OAuth tokens grant exactly the permissions the authenticating user already has.
errors:
- {status: 401, meaning: access token missing}
- {status: 403, meaning: bad or expired access token}
sources: [raml/unbounce-api-v0.4.raml, https://developer.unbounce.com/getting_started/#Authorization]
note: >-
The RAML securityScheme settings name developer.unbounce.com for both OAuth URIs,
while the prose docs and every worked example name api.unbounce.com. api.unbounce.com
is the one to use; the RAML's baseUri is likewise developer.unbounce.com where the
live API is api.unbounce.com — a known inconsistency in Unbounce's published spec.
- name: mcp-oauth2
surface: MCP server (https://mcp.unbounce.com/mcp)
type: oauth2
flows:
- flow: authorizationCode
authorizationUrl: https://mcp.unbounce.com/authorize
tokenUrl: https://mcp.unbounce.com/token
pkce: S256
scopes: 1
scope_names: [unbounce]
issuer: https://mcp.unbounce.com
registration_endpoint: https://mcp.unbounce.com/register
dynamic_client_registration: true
token_endpoint_auth_methods_supported: [none]
client_id_metadata_document_supported: true
discovery:
- {path: /.well-known/oauth-authorization-server, spec: RFC 8414, status: 200}
- {path: /.well-known/oauth-protected-resource, spec: RFC 9728, status: 200}
challenge: 'WWW-Authenticate: Bearer resource_metadata="https://mcp.unbounce.com/.well-known/oauth-protected-resource", scope="unbounce"'
provisioning: >-
Fully self-serve and machine-negotiable — the opposite of the REST surface. A client
registers dynamically and the user consents on Unbounce's own sign-in screen; the
assistant never sees the password.
sources: [https://mcp.unbounce.com/.well-known/oauth-authorization-server]
observation: >-
Unbounce's two authentication surfaces are a generation apart. The REST API requires a
human support ticket for a key and a case-by-case grant for an OAuth client, with one
unscoped all-or-nothing permission level. The MCP server implements the modern
authorization stack — RFC 8414 metadata, RFC 9728 protected-resource metadata, PKCE and
RFC 7591 dynamic registration — and can be authorized by an agent with no human in the
loop beyond consent.
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/unbounce-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.