Bonjoro · Authentication Profile

Bonjoro Authentication

Authentication

Bonjoro secures its APIs with oauth2 and http-bearer across 2 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the password, clientCredentials, and authorizationCode flow(s).

video-messagingcustomer-engagementcustomer-successsales-engagementmarketing-automationvideocrm-integrationtestimonialssaasaustralia
Methods: oauth2, http-bearer Schemes: 2 OAuth flows: password, clientCredentials, authorizationCode API key in:

Security Schemes

OAuth oauth2
bearer http
scheme: bearer

Source

Authentication Profile

Raw ↑
generated: '2026-08-12'
method: derived
source: openapi/_original/bonjoro-api-v2-openapi-original.json
docs: https://vimily.github.io/bonjoro-api-docs/
summary:
  types:
  - oauth2
  - http-bearer
  api_key_in: []
  oauth2_flows:
  - password
  - clientCredentials
  - authorizationCode
notes: >-
  The published Bonjoro API V2 definition declares NO `components.securitySchemes` block, yet 116 of its
  123 operations carry `security: [{ OAuth: [] }]`. The `OAuth` scheme name is therefore an unresolved
  reference — a real defect in the contract, not an absence of authentication. The auth model below is
  derived from the token operation (`authenticate`, POST /api/v2/oauth/2/token), its request/response
  schemas, and the `Bearer` token_type the spec's own example returns.
schemes:
- name: OAuth
  type: oauth2
  declared_in_spec: false
  referenced_by_operations: 116
  token_url: https://www.bonjoro.com/api/v2/oauth/2/token
  operation: authenticate
  grant_types:
  - password
  - client_credentials
  - authorization_code
  grant_type_source: components.schemas.authenticationPayload.grant_type enum
  request_fields:
  - grant_type
  - username
  - password
  - client_id
  - client_secret
  token_response:
    token_type: Bearer
    expires_in_example: 31536000
    refresh_token: true
    format: JWT (per spec example prefix eyJ0eXAiOiJKV1QiLCJh...)
  sources:
  - openapi/bonjoro-api-v2-openapi.yml
- name: bearer
  type: http
  scheme: bearer
  declared_in_spec: false
  usage: >-
    Authorization: Bearer <access_token> against https://www.bonjoro.com/api/v2. Confirmed live: an
    unauthenticated GET of /api/v2/greets returns HTTP 401 with {"message":"Unauthenticated."}-shaped
    JSON, while the two open operations (/api/v2/industries, /api/v2/pricing) require no credential.
  sources:
  - probe https://www.bonjoro.com/api/v2/greets
scopes:
  declared: 0
  note: >-
    Every operation-level requirement is `OAuth: []` — an empty scope array. Bonjoro publishes no OAuth
    scope vocabulary, so no scopes/ artifact is emitted.
unauthenticated_operations:
- getIndustries
- getPricing
- loginViaGoogle
- loginViaBranch
- addUser
- authenticate
key_management:
  console: https://www.bonjoro.com/settings/api
  note: >-
    API credentials are issued from the in-app settings screen (login required). The Bonjoro help centre
    documents key issuance at help.bonjoro.com; that host answers HTTP 403 to non-browser clients behind
    a Cloudflare interactive challenge, so it could not be captured verbatim.
x-evidence:
- url: https://www.bonjoro.com/api/v2/greets
  http_status: 401
  fetched: '2026-08-12'
- url: https://www.bonjoro.com/api/v2/industries
  http_status: 200
  fetched: '2026-08-12'
- url: https://vimily.github.io/bonjoro-api-docs/
  http_status: 200
  fetched: '2026-08-12'