TripleLift · Authentication Profile

Triplelift Authentication

Authentication

TripleLift runs three distinct authentication regimes across its API surface. The Reporting API uses a paired static API key plus a monthly-rotating JWT, both sent as headers on every request. The TripleLift platform (app.triplelift.com and the federated GraphQL gateway) uses an Auth0 OpenID Connect tenant with authorization_code + PKCE and a large scope catalog. The TLX exchange endpoint is not authenticated with a credential at all — a supplier is identified by a supplier_id query parameter issued during onboarding and by IP/host allowlisting.

TripleLift declares 5 security scheme(s) across its OpenAPI definitions.

Programmatic AdvertisingNative AdvertisingAd ExchangeOpenRTBHeader BiddingConnected TVSupply Side PlatformDemand-Side PlatformGraphQLAdTechPublisher ReportingReal-Time Bidding
Methods: Schemes: 5 OAuth flows: API key in:

Security Schemes

X-API-Key apiKey
· in: header ()
Authorization http
scheme: bearer · in: header ()
openIdConnect
· flows:
oauth2
· flows:
none

Source

Authentication Profile

triplelift-authentication.yml Raw ↑
name: TripleLift Authentication
description: >-
  TripleLift runs three distinct authentication regimes across its API surface.
  The Reporting API uses a paired static API key plus a monthly-rotating JWT, both
  sent as headers on every request. The TripleLift platform (app.triplelift.com and
  the federated GraphQL gateway) uses an Auth0 OpenID Connect tenant with
  authorization_code + PKCE and a large scope catalog. The TLX exchange endpoint
  is not authenticated with a credential at all — a supplier is identified by a
  supplier_id query parameter issued during onboarding and by IP/host allowlisting.
generated: '2026-08-12'
method: searched
source: https://supply-docs.triplelift.com/reference/authorization
schemes:
  - id: reporting-api-key
    api: TripleLift Reporting API
    type: apiKey
    in: header
    name: X-API-Key
    required: true
    description: >-
      Static API key unique to the TripleLift member account. Does not expire, but
      is invalidated whenever a new key is generated — and generating a new key
      rotates it for EVERY user and program querying on behalf of that member
      account, so key rotation is an account-wide breaking event with no per-client
      isolation.
    obtain:
      - method: console
        url: https://console.triplelift.com
        steps: Reporting menu -> Reporting API -> "Current API Key" -> copy, or Generate New Key.
      - method: api
        endpoint: POST https://reporting-api.triplelift.net/generate-api-key
        headers:
          - 'X-API-Key: <current key>'
          - 'Authorization: Bearer <jwt>'
        body: '{"id": "<member id>", "overwriteExistingKey": true}'
        note: Requires the existing key and a valid JWT — there is no unauthenticated bootstrap.
  - id: reporting-jwt
    api: TripleLift Reporting API
    type: http
    scheme: bearer
    bearerFormat: JWT
    in: header
    name: Authorization
    required: true
    description: >-
      JSON Web Token that expires after one month and must be refreshed. Sent
      alongside — not instead of — the X-API-Key header; both are required on
      every request.
    obtain:
      - method: console
        url: https://console.triplelift.com
        steps: Reporting menu -> Reporting API -> "Current Token".
      - method: api
        endpoint: POST https://api.triplelift.com/login
        body: '{"username": "<username>", "password": "<password>"}'
        response_field: reporting_api_token
        note: >-
          Resource-owner password credentials over a plain JSON POST. There is no
          client_credentials or service-account flow published for the Reporting
          API, so an automated integration must store a human user's password to
          refresh its token every month.
    lifetime: 1 month
    refresh: none published — re-POST /login
  - id: platform-oidc
    api: TripleLift Platform (app.triplelift.com, federated-api.prod.triplelift.net)
    type: openIdConnect
    openIdConnectUrl: https://auth.triplelift.net/.well-known/openid-configuration
    issuer: https://auth.triplelift.net/
    provider: Auth0
    flows:
      authorizationCode:
        authorizationUrl: https://auth.triplelift.net/authorize
        tokenUrl: https://auth.triplelift.net/oauth/token
        refreshUrl: https://auth.triplelift.net/oauth/token
        pkce: S256
    audience: https://federated-api.prod.triplelift.net
    grant_types_supported:
      - client_credentials
      - authorization_code
      - refresh_token
      - password
      - implicit
      - 'urn:ietf:params:oauth:grant-type:device_code'
      - 'urn:ietf:params:oauth:grant-type:token-exchange'
      - 'urn:ietf:params:oauth:grant-type:jwt-bearer'
    token_endpoint_auth_methods_supported:
      - client_secret_basic
      - client_secret_post
      - private_key_jwt
      - none
    id_token_signing_alg_values_supported:
      - HS256
      - RS256
      - PS256
    jwks_uri: https://auth.triplelift.net/.well-known/jwks.json
    dpop_signing_alg_values_supported:
      - ES256
    revocation_endpoint: https://auth.triplelift.net/oauth/revoke
    registration_endpoint: https://auth.triplelift.net/oidc/register
    scopes: see scopes/triplelift-scopes.yml
    description: >-
      Discovered by probing, not from documentation — TripleLift publishes no
      developer documentation for the platform API. app.triplelift.com 302s to the
      Auth0 authorize endpoint and the redirect exposes the client_id, the audience
      and the complete scope catalog.
    documented: false
  - id: mcp-oauth-wordpress
    api: TripleLift WordPress MCP server
    type: oauth2
    issuer: https://triplelift.com
    metadata: https://triplelift.com/.well-known/oauth-authorization-server
    protected_resource: https://triplelift.com/wp-json/mcp/mcp-oauth-server
    flows:
      authorizationCode:
        authorizationUrl: https://triplelift.com/oauth/authorize
        tokenUrl: https://triplelift.com/oauth/token
        refreshUrl: https://triplelift.com/oauth/token
        pkce: S256
    scopes:
      mcp: Access the MCP server exposed by the triplelift.com WordPress site.
    token_endpoint_auth_methods_supported:
      - none
    dynamic_client_registration: client_id_metadata_document
    description: >-
      A second, entirely separate OAuth authorization server on the marketing
      domain, serving only the WordPress MCP endpoint. Unrelated to the platform
      Auth0 tenant.
  - id: tlx-supplier-id
    api: TripleLift Exchange (TLX)
    type: none
    description: >-
      The server-to-server OpenRTB endpoint carries no Authorization header. A
      supply partner is identified by the supplier_id query parameter TripleLift
      issues at onboarding — https://tlx.3lift.com/s2s/auction?supplier_id=123 —
      with access otherwise controlled out of band by the partner agreement and
      allowlisting. User-sync endpoints on eb2.3lift.com use a mid + dongle
      parameter pair for the same purpose.
    documented: true
    docs: https://docs.triplelift.com/docs/supply-partners
observations:
  - No API surface at TripleLift uses a single credential. Every authenticated
    surface requires either two headers (Reporting) or a full OIDC round trip
    (platform).
  - The Reporting API's account-wide key rotation and its password-grant JWT
    refresh are the two weakest points in the auth design for automated agents.
  - There is no published machine-readable security scheme document (no OpenAPI,
    no oauth-protected-resource metadata on the API hosts), so an agent cannot
    discover any of this without reading the human docs.
x-evidence:
  - url: https://supply-docs.triplelift.com/reference/authorization.md
    http_status: 200
    fetched: '2026-08-12'
  - url: https://auth.triplelift.net/.well-known/openid-configuration
    http_status: 200
    fetched: '2026-08-12'
  - url: https://triplelift.com/.well-known/oauth-authorization-server
    http_status: 200
    fetched: '2026-08-12'
  - url: https://app.triplelift.com/
    http_status: 302
    fetched: '2026-08-12'
    note: Location header names the Auth0 authorize endpoint, audience and scopes.

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.
All 92 tools

Call it yourself

curl for this page
This security artifact
curl "https://apis.io/api/v1/security/triplelift-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 email required.

A second provider on the same verified email joins the account you already have.