PubMatic · Authentication Profile

Pubmatic Authentication

Authentication

PubMatic secures its APIs with http, apiKey, and oauth2 across 3 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode flow(s).

AdvertisingAdTechProgrammatic AdvertisingSupply Side PlatformSSPHeader BiddingOpenWrapPrebidOpenRTBConnected TVCTVMobile AdvertisingCommerce MediaRetail MediaIdentityCurationAuction PackagesAgentic AI
Methods: http, apiKey, oauth2 Schemes: 3 OAuth flows: authorizationCode API key in: header

Security Schemes

PubToken http
scheme: bearer · in: header (Authorization)
X-API-Key apiKey
· in: header (X-API-Key)
PubMatic OAuth (ChatGPT connector) oauth2
· flows: authorizationCode

Source

Authentication Profile

pubmatic-authentication.yml Raw ↑
generated: '2026-08-13'
method: searched
source: https://github.com/PubMatic/pubmatic-mcp-server
docs: https://help.pubmatic.com/activate/reference/get-started-with-pubmatic-apis
docs_status: gated
note: >-
  DERIVED FROM NO OPENAPI — PubMatic publishes no OpenAPI/Swagger document anywhere this
  pipeline could reach, so there are no securitySchemes to aggregate. Everything below is
  transcribed from PubMatic's own published MCP integration guides and client setup
  documents in github.com/PubMatic/pubmatic-mcp-server, plus one directly observed response
  header. The canonical auth reference (help.pubmatic.com/activate/reference/
  get-started-with-pubmatic-apis) is real but 302s into the ReadMe -> Auth0 -> Okta ->
  apps.pubmatic.com customer login chain, so its contents could not be read.
summary:
  types: [http, apiKey, oauth2]
  http_schemes: [bearer]
  api_key_in: [header]
  oauth2_flows: [authorizationCode]
  multi_tenant: true
  tenant_selector: resource-id + resource-type
schemes:
- name: PubToken
  type: http
  scheme: bearer
  in: header
  parameter: Authorization
  description: >-
    PubMatic-issued Bearer token ("PubToken") generated through the PubMatic API or UI. Used
    by the Claude Desktop MCP extension and by direct MCP clients.
  credential_source: https://help.pubmatic.com/activate/reference/get-started-with-pubmatic-apis
  sources:
  - https://github.com/PubMatic/pubmatic-mcp-server/blob/main/Claude_Desktop_Extension/MCP_Claude_Setup_Readme_External.md
  - https://github.com/PubMatic/pubmatic-mcp-server/blob/main/DSP%20Onboarding/DSP_onboarding_integration_guide.md
  observed:
    url: https://mcp.pubmatic.com/mcp
    http_status: 401
    www_authenticate: Bearer error="invalid_token", error_description="The access token is invalid or expired"
    fetched: '2026-08-13'
- name: X-API-Key
  type: apiKey
  in: header
  parameter: X-API-Key
  description: >-
    API key authentication for all requests to the MCP Server. Obtained from a PubMatic
    representative; there is no self-service issuance.
  sources:
  - https://github.com/PubMatic/pubmatic-mcp-server/blob/main/Deal%20Management/README.md
- name: PubMatic OAuth (ChatGPT connector)
  type: oauth2
  flows:
  - flow: authorizationCode
    login_endpoint_pattern: https://mcp.pubmatic.com/login/{publisher|activate}
    description: >-
      ChatGPT connectors select "OAuth" as the authentication type; the user is redirected to
      a PubMatic login page chosen by resource-type — /login/publisher for PUBLISHER (1),
      /login/activate for ACTIVATE ADVERTISER (14) — and returns an installed connector.
    scopes: []
    scopes_note: >-
      No scope vocabulary is published. Authorization is coarse: the user account must have
      "API access enabled", and the connector is bound to one resource. No scopes/ artifact
      is emitted because there is nothing real to record.
  discovery:
    oauth_authorization_server: 404
    oauth_protected_resource: 404
    note: >-
      RFC 8414 / RFC 9728 discovery documents are NOT served on mcp.pubmatic.com, so an MCP
      client cannot resolve the authorization server programmatically from the 401 challenge.
  sources:
  - https://github.com/PubMatic/pubmatic-mcp-server/blob/main/ChatGPT_Extension/MCP_ChatGPT_Setup_Readme_External.md
tenancy:
  description: >-
    Every authenticated call is scoped to exactly one PubMatic resource. The pair is supplied
    as query parameters on the MCP URL for ChatGPT (which cannot send custom headers) and as
    extension configuration fields for Claude Desktop.
  parameters:
  - name: resource-id
    required: true
    issued_by: PubMatic Solutions Engineer
  - name: resource-type
    required: true
    values: [PUBLISHER, DSP, BUYER, ACTIVATE ADVERTISER]
    numeric_ids: {PUBLISHER: 1, ACTIVATE ADVERTISER: 14}
  constraint: >-
    resource-id and resource-type are fixed at connector-creation time and cannot be changed;
    a second account requires a second connector. Sessions must be fully logged out before
    creating a connector for a different resource type or authentication misroutes.
  example_url: https://mcp.pubmatic.com/mcp?resource-id=<resource-id>&resource-type=PUBLISHER
legacy_api_surface:
  host: https://api.pubmatic.com
  observed_status: 404 at root, 500 on unknown paths
  gateway: Apigee
  note: >-
    api.pubmatic.com is live and fronts a SOAP-era publisher web service — unknown paths
    return a soap:Fault naming
    http://v1_0.webservices.publisher.core.pubmatic.com/ with errorCode ClassificationFailure
    and errorMessage "This is an invalid api." No OpenAPI, Swagger UI, /docs, /redoc or
    GraphQL endpoint is exposed. Its authentication model is not publicly documented.
x-evidence:
- {url: 'https://mcp.pubmatic.com/mcp', http_status: 401, fetched: '2026-08-13'}
- {url: 'https://help.pubmatic.com/activate/reference/get-started-with-pubmatic-apis', http_status: 302, fetched: '2026-08-13'}
- {url: 'https://api.pubmatic.com/', http_status: 404, fetched: '2026-08-13'}
- {url: 'https://api.pubmatic.com/openapi.json', http_status: 500, fetched: '2026-08-13'}