Seamless.AI · OAuth Scopes

Seamless.AI OAuth Scopes

OAuth 2.0 searched

Seamless.AI publishes 2 OAuth 2.0 scopes via the authorizationCode flow. Scopes are the fine-grained permissions an application requests at authorization time to act against the Seamless.AI API on a user’s behalf.

Tokens are issued from https://api.seamless.ai/api/client/v1/oauth/accessToken.

This index is generated from the provider’s OpenAPI security definitions (and, where available, its documented scope reference) and refreshes on every APIs.io network build. Browse every provider’s scopes at scopes.apis.io.

B2BContact DataSales IntelligenceProspectingLead GenerationCRM EnrichmentData EnrichmentMCPAgentsSales Automation
Scopes: 2 Flows: authorizationCode Method: searched

OAuth endpoints

Authorization URL
https://login.seamless.ai/oauth/authorize
Token URL
https://api.seamless.ai/api/client/v1/oauth/accessToken
Flows
authorizationCode

Scopes (2)

ScopeDescriptionFlows
publicAPI.v1.all Full access to the Seamless.AI Public API v1 — search, research, polling and org-data reads. The only REST scope published. authorizationCode
mcp.all Full MCP access — all 54 tools and all seamless:// resources the org is licensed for. authorizationCode

Source

OAuth Scopes

Raw ↑
generated: '2026-08-14'
method: searched
source: openapi/_original/seamless-ai-public-api-openapi-original.json
docs: https://docs.seamless.ai/authentication/oauth
sources:
  - https://docs.seamless.ai/authentication/oauth
  - https://docs.seamless.ai/api-http-status-codes
  - https://mcp.seamless.ai/.well-known/oauth-protected-resource
  - openapi/_original/seamless-ai-public-api-openapi-original.json
note: >-
  The derived pass found the oauth2 scheme but ZERO scopes, because the published OpenAPI declares
  `scopes: {}` on its authorizationCode flow — the scope vocabulary is absent from the machine-
  readable contract. Both real scopes below were recovered from the documentation and from the MCP
  authorization-server metadata, so this file is upgraded to `searched`. Seamless.AI operates two
  separate OAuth surfaces with two separate authorization servers and two disjoint scope
  vocabularies; they are not interchangeable.

scope_count: 2
granularity: coarse
granularity_note: >-
  Both surfaces expose exactly ONE all-or-nothing scope. There is no read/write split, no
  per-resource scope, and no way to grant an agent search access without also granting enrichment
  (which spends credits) or, on MCP, campaign and bulk-email send. Least-privilege delegation is
  not expressible against this API today.

surfaces:
  - name: REST Public API v1
    authorization_server: https://login.seamless.ai
    authorization_url: https://login.seamless.ai/oauth/authorize
    token_url: https://api.seamless.ai/api/client/v1/oauth/accessToken
    flow: authorizationCode
    client_authentication: client_secret
    pkce: false
    dynamic_client_registration: false
    scopes_in_spec: 0
    registration: Settings -> Public API -> OAuth Connections, at https://login.seamless.ai/settings/public-api
  - name: MCP server
    authorization_server: https://mcp.seamless.ai
    authorization_url: https://mcp.seamless.ai/mcp/authorize
    token_url: https://mcp.seamless.ai/mcp/token
    registration_endpoint: https://mcp.seamless.ai/mcp/register
    revocation_endpoint: https://mcp.seamless.ai/mcp/revoke
    flow: authorizationCode
    client_authentication: none
    pkce: [S256]
    dynamic_client_registration: true

schemes:
  - name: OAuth2
    source: openapi/_original/seamless-ai-public-api-openapi-original.json
    flows:
      - flow: authorizationCode
        authorizationUrl: https://login.seamless.ai/oauth/authorize
        tokenUrl: https://api.seamless.ai/api/client/v1/oauth/accessToken
        scopes_declared: 0

scopes:
  - scope: publicAPI.v1.all
    surface: rest
    description: >-
      Full access to the Seamless.AI Public API v1 — search, research, polling and org-data reads.
      The only REST scope published.
    flows: [authorizationCode]
    sources: [https://docs.seamless.ai/authentication/oauth]
    in_spec: false
    enforcement: >-
      A connection lacking it receives HTTP 403 with `code: insufficientScope`. The documented
      remedy is to re-authorize with this scope.
  - scope: mcp.all
    surface: mcp
    description: Full MCP access — all 54 tools and all seamless:// resources the org is licensed for.
    flows: [authorizationCode]
    sources:
      - https://mcp.seamless.ai/.well-known/oauth-protected-resource
      - https://mcp.seamless.ai/.well-known/oauth-authorization-server
    in_spec: true
    in_spec_source: https://docs.seamless.ai/mcp-openapi.yaml
    enforcement: >-
      Advertised as the required scope in the WWW-Authenticate challenge returned by an
      unauthenticated POST to https://mcp.seamless.ai/mcp (HTTP 401, verified 2026-08-14).

secondary_authorization:
  mechanism: license entitlement
  note: >-
    Scope is not the only gate. Tool visibility on MCP is filtered per request by the org's
    license — "Connect" for templates/email/calls/activity, "Connect (full)" for campaigns and
    tasks — and the REST API requires an active Public API license or returns HTTP 422
    `missingLicense`. An access token carrying mcp.all still sees a smaller tool list on an
    unlicensed org, so a client must not assume a fixed tool set.
  see_also: mcp/seamless-ai-mcp.yml