InMobi · Authentication Profile

Inmobi Authentication

Authentication

InMobi declares 3 security scheme(s) across its OpenAPI definitions.

CompanyEnterpriseAdvertisingAdTechMobileMonetizationProgrammaticOpenRTBSDKConsent ManagementDSPReporting
Methods: Schemes: 3 OAuth flows: API key in:

Security Schemes

apiKey
· in: header ()
apiKey
· in: header ()
http
· in: header ()

Source

Authentication Profile

inmobi-authentication.yml Raw ↑
generated: '2026-08-12'
method: searched
source: >-
  https://support.inmobi.com/monetize/inmobi-apis/reporting-api ,
  https://support.inmobi.com/monetize/inmobi-apis/ad-management-api/authentication-and-request-protocol ,
  https://support.inmobi.com/dsp/global/inmobi-dsp-global/reporting-for-inmobi-dsp-global/cost-api-integration-for-inmobi-dsp
notes: >-
  InMobi publishes no OpenAPI, so this profile is read from the provider's own
  API reference pages and confirmed against live unauthenticated probes of each
  host. Three distinct authentication schemes are in play across three
  independently versioned APIs — there is no single InMobi auth model. All
  schemes are custom header / bearer-token designs; InMobi documents no OAuth 2.0
  authorization server, no OIDC discovery document, and no scope vocabulary.
summary:
  scheme_count: 3
  oauth2: false
  openid_connect: false
  mutual_tls: false
  api_key: true
  bearer_token: true
  session_token: true
  discovery_document: false

schemes:
- id: publisher-reporting-session
  api: InMobi Publisher Reporting API 3.0
  type: apiKey
  in: header
  style: two-step-session
  docs: https://support.inmobi.com/monetize/inmobi-apis/reporting-api
  credentials:
  - name: userName
    location: header
    description: Account email address registered on the InMobi publisher platform.
  - name: secretKey
    location: header
    description: API key generated from the InMobi publisher dashboard.
  - name: accountId
    location: header
    description: InMobi account identifier.
  - name: sessionId
    location: header
    description: Session token returned by the session-generation call; may exceed 1000 characters.
  session:
    endpoint: https://api.inmobi.com/v1.0/generatesession/generate
    method: POST
    request_headers:
    - userName
    - secretKey
    validity: 8 hours from issuance
    max_sessions: 15 per 8-hour window per API key
  evidence:
    probed: '2026-08-12'
    url: https://api.inmobi.com/v3.0/reporting/publisher
    method: POST
    http_status: 400
    body: '{"error":true,"errorList":[{"code":1004,"message":"Secret Key is missing"}]}'
    note: >-
      Unauthenticated POST is rejected with the documented error code 1004,
      confirming the secretKey header is the enforced credential. A POST to the
      documented session endpoint https://api.inmobi.com/v1.0/generatesession/generate
      returned HTTP 404 with a JSON error envelope on 2026-08-12 — the host routes
      the path but the documented generatesession route did not answer, which may
      mean the documentation is ahead of or behind the deployed route.

- id: ad-management-static-headers
  api: InMobi Ad Management API
  type: apiKey
  in: header
  style: static-header-triplet
  docs: https://support.inmobi.com/monetize/inmobi-apis/ad-management-api/authentication-and-request-protocol
  credentials:
  - name: x-client-secret
    location: header
    description: API key generated from the InMobi publisher platform (same key issuance flow as the Reporting API).
  - name: x-account-id
    location: header
    description: Account ID, found under Payment Settings on the Finance tab of the InMobi platform.
  - name: x-client-id
    location: header
    description: Email address of the account.
  transport: https only (stated in the provider docs)
  evidence:
    probed: '2026-08-12'
    url: https://publisher.inmobi.com/rest/api/v2/apps
    method: GET
    http_status: 401
    body: '{"error":true,"errors":[{"errorCode":"[ERROR_MISSING_HEADERS]","reason":"[x-account-id] header is missing"}]}'
    note: >-
      Anonymous GET names the missing header explicitly; supplying placeholder
      values for all three headers returned 401
      {"errorCode":"AUTHENTICATION_ERROR"} — the triplet is enforced server-side.

- id: dsp-cost-bearer-token
  api: InMobi DSP Cost API
  type: http
  in: header
  style: bearer-token
  docs: https://support.inmobi.com/dsp/global/inmobi-dsp-global/reporting-for-inmobi-dsp-global/cost-api-integration-for-inmobi-dsp
  credentials:
  - name: Authorization
    location: header
    description: Token issued by the token endpoint; sent as the raw token value per the provider docs.
  token_endpoint:
    url: https://api.cdr.inmobi.com/api/v3/auth/token
    method: POST
    grant_inputs:
    - clientId
    - clientSecret
    validity: 8 hours
  evidence:
    probed: '2026-08-12'
    url: https://api.cdr.inmobi.com/api/v3/auth/token
    method: POST
    http_status: 400
    body: '{"status":"FAILED","code":400,"error":{"code":"client.cred.invalid","message":"The provided credentials are invalid. Please check your clientId & clientSecret and try again."},"message":"Request Processing Failed."}'
    note: >-
      Live token endpoint. Uses a client-credentials SHAPE (clientId /
      clientSecret) but is NOT an OAuth 2.0 token endpoint — the response is a
      custom envelope, not an RFC 6749 token response, and no
      /.well-known/oauth-authorization-server is served on this host (403).

unauthenticated_surfaces:
- api: InMobi Server-to-Server Ad Request API 3.1
  url: https://api.w.inmobi.com/showad/v3.1
  note: >-
    Ad-serving endpoint. No credential header is documented; the caller is
    identified by an InMobi Property ID carried in the request payload. An
    anonymous GET and POST both returned HTTP 204 on 2026-08-12 (live host,
    no ad returned for an empty request).

gaps:
- no OAuth 2.0 or OpenID Connect authorization server
- no /.well-known/openid-configuration or /.well-known/oauth-authorization-server on any InMobi host (all 404 or 403 — see well-known/inmobi-well-known.yml)
- no documented scope or permission vocabulary; access is account-wide per API key
- no documented key-rotation or key-revocation API
- three different header conventions across three APIs (secretKey vs x-client-secret vs Authorization)