Taboola · OAuth Scopes

Taboola OAuth Scopes

OAuth 2.0 probed

Taboola uses OAuth 2.0 but publishes no discrete scopes — access is governed by the grant itself (e.g. client-credentials or role-based authorization) rather than per-scope consent.

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.

AdvertisingNative AdvertisingDiscoveryPerformance MarketingAdTechRealizeBackstageRecommendationPublishersProgrammatic
Scopes: 0 Flows: Method: probed

Scopes (0)

Taboola implements OAuth 2.0 but publishes no discrete scopes — access is governed by the grant itself (client-credentials or role-based authorization) rather than per-scope consent.

Source

OAuth Scopes

Raw ↑
generated: '2026-08-13'
method: probed
source: >-
  https://mcp.realize.com/.well-known/oauth-authorization-server,
  https://mcp.realize.com/.well-known/oauth-protected-resource,
  https://developers.taboola.com/backstage-api/reference/authentication-basics,
  https://developers.taboola.com/backstage-api/reference/client-credentials-flow
provider: Taboola
providerId: taboola
description: |-
  Taboola runs OAuth on both of its API surfaces but publishes almost no scope vocabulary.
  derive-oauth-scopes.py found zero oauth2 securitySchemes in openapi/ (the captured specs
  model auth as an http bearer scheme, which is what the Backstage docs describe at the
  request level), so nothing could be derived. Everything below was probed or read from
  the provider's own documentation.

  The finding: authorization on both surfaces is coarse. The Backstage API issues a token
  whose permissions are those of the account behind the client_id — there are no scopes at
  all in the token request. The Realize MCP server advertises exactly one scope, `all`.
  An agent cannot be granted read-only access to Realize; the same token that lists
  campaigns can create and update them.

docs:
  - https://developers.taboola.com/backstage-api/reference/authentication-basics
  - https://developers.taboola.com/backstage-api/reference/client-credentials-flow

surfaces:
  - name: Backstage API
    base: https://backstage.taboola.com/backstage/api/1.0
    token_endpoint: https://backstage.taboola.com/backstage/oauth/token
    grant: client_credentials
    scope_parameter: not used
    scopes_published: 0
    note: >-
      The documented token request body carries only client_id, client_secret and
      grant_type. The embedded OpenAPI fragment on the client-credentials-flow docs page
      declares the oauth2 scheme with an EMPTY scopes object ("scopes": {}) for both the
      clientCredentials and password flows — the provider's own machine-readable statement
      that there is no scope vocabulary. Permissions are attached to the account the
      credentials identify ("The Access Token identifies who you are - and your set of
      permissions").

  - name: Realize MCP
    base: https://mcp.realize.com/mcp
    issuer: https://mcp.realize.com
    authorization_endpoint: https://authentication.taboola.com/authentication/oauth2.1/authorize
    token_endpoint: https://authentication.taboola.com/authentication/oauth2.1/token
    grant: [authorization_code, refresh_token, client_credentials]
    pkce: S256
    scopes_published: 1
    scopes:
      - name: all
        description: >-
          The only scope the Realize authorization server advertises. Declared in both
          RFC 8414 authorization-server metadata (scopes_supported) and RFC 9728
          protected-resource metadata (scopes_supported). No description is published by
          the provider; the name is self-describing and there is no narrower alternative.
        source: https://mcp.realize.com/.well-known/oauth-authorization-server
        http_status: 200
        read_only_alternative: none
    note: >-
      Coarse-grained by construction. The MCP server exposes 25 tools including six write
      tools (create_campaign, update_campaign, create/update native and display items) and
      they are all reachable under the same single scope. Least-privilege for an agent has
      to be enforced client-side — which is exactly what Taboola's own realize-claude-plugin
      does, splitting reads and writes across separate skills and gating every write behind
      a preview-and-confirm step (see ../skills/taboola-manage-campaigns.md).

x-evidence:
  - fetched: '2026-08-13'
    url: https://mcp.realize.com/.well-known/oauth-authorization-server
    http_status: 200
    file: ../well-known/taboola-mcp-oauth-authorization-server.json
  - fetched: '2026-08-13'
    url: https://mcp.realize.com/.well-known/oauth-protected-resource
    http_status: 200
    file: ../well-known/taboola-mcp-oauth-protected-resource.json

scope_count: 1