Ibotta · Authentication Profile

Ibotta Authentication

Authentication

Ibotta secures its APIs with http, oauth2, and openIdConnect across 2 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode, clientCredentials, deviceCode, and refreshToken flow(s).

CompanyConsumerCashbackRewardsRetail MediaCouponsLoyaltyShoppingAdvertisingPromotionsProduct SearchRetailAffiliatesCPG
Methods: http, oauth2, openIdConnect Schemes: 2 OAuth flows: authorizationCode, clientCredentials, deviceCode, refreshToken API key in:

Security Schemes

bearerAuth http
scheme: bearer
ipnPortalOidc openIdConnect

Source

Authentication Profile

Raw ↑
generated: '2026-08-12'
method: searched
source: >-
  https://ibotta.com/.well-known/ai-plugin.json (auth block) +
  https://auth.dashboard.ibotta.com/.well-known/openid-configuration +
  openapi/ibotta-product-api-openapi.yml + live 401 observed on
  POST https://api.ibops.net/bex-api/openai/search
docs: https://ipn.ibotta.com/integrating-with-the-ipn
summary:
  types:
  - http
  - oauth2
  - openIdConnect
  api_key_in: []
  oauth2_flows:
  - authorizationCode
  - clientCredentials
  - deviceCode
  - refreshToken
  note: >-
    Two distinct auth surfaces. (1) The public Ibotta Product API uses a service-level HTTP
    bearer token. (2) The IPN partner portal is fronted by an Auth0 tenant that publishes full
    OIDC/RFC 8414 discovery metadata anonymously. The IPN partner APIs themselves are documented
    only inside that portal, so their authentication scheme is not publicly verifiable.
schemes:
- name: bearerAuth
  type: http
  scheme: bearer
  applies_to: Ibotta Product API (https://api.ibops.net/bex-api)
  description: >-
    Service-level bearer token. Ibotta's own plugin manifest declares
    auth.type "service_http" with authorization_type "bearer" and
    has_user_authentication false — i.e. a single shared service credential, not per-user auth.
    Tokens are not self-serve; there is no published key-issuance flow. Verified live on
    2026-08-12: an anonymous POST to /openai/search returns HTTP 401 with
    {"message":"Unauthorized"}.
  self_serve: false
  sources:
  - well-known/ibotta-ai-plugin.json
  - openapi/ibotta-product-api-openapi.yml
- name: ipnPortalOidc
  type: openIdConnect
  applies_to: Ibotta Performance Network partner portal (https://portal.ipn.ibotta.com/)
  openid_connect_url: https://auth.dashboard.ibotta.com/.well-known/openid-configuration
  description: >-
    Auth0 tenant at auth.dashboard.ibotta.com. dashboard.ibotta.com 301s to
    portal.ipn.ibotta.com, which 307s every unauthenticated request to
    /api/auth/login?returnTo=... and on into the tenant's universal login. Discovery metadata,
    including JWKS, is served anonymously; the portal contents are not.
  issuer: https://auth.dashboard.ibotta.com/
  endpoints:
    authorization: https://auth.dashboard.ibotta.com/authorize
    token: https://auth.dashboard.ibotta.com/oauth/token
    userinfo: https://auth.dashboard.ibotta.com/userinfo
    jwks: https://auth.dashboard.ibotta.com/.well-known/jwks.json
    registration: https://auth.dashboard.ibotta.com/oidc/register
    revocation: https://auth.dashboard.ibotta.com/oauth/revoke
    device_authorization: https://auth.dashboard.ibotta.com/oauth/device/code
    backchannel_authentication: https://auth.dashboard.ibotta.com/bc-authorize
  grant_types:
  - authorization_code
  - client_credentials
  - 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
  pkce:
  - S256
  - plain
  token_endpoint_auth_methods:
  - client_secret_basic
  - client_secret_post
  - private_key_jwt
  - none
  id_token_signing_algs:
  - HS256
  - RS256
  - PS256
  dpop_signing_algs:
  - ES256
  mfa: >-
    Tenant exposes /mfa/challenge plus mfa-oob, mfa-otp and mfa-recovery-code grant types —
    MFA is configurable for partner portal accounts.
  see: scopes/ibotta-scopes.yml
  sources:
  - well-known/ibotta-dashboard-openid-configuration.json
gaps:
- The Ibotta Performance Network partner APIs (offer ingestion, redemption, anti-stacking) have
  no public authentication documentation; the technical reference lives inside the gated portal.
- No public key-issuance, key-rotation, or credential-scoping documentation for the Product API.

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/ibotta-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.