Botkeeper · Authentication Profile

Botkeeper Authentication

Authentication

Botkeeper publishes no developer authentication documentation. This profile is assembled entirely from probed evidence: the OpenID Connect discovery document for Botkeeper's production Amazon Cognito user pool, the published runtime configuration of the Botkeeper Partner Portal SPA at https://www.firm.ai/, the API Gateway challenge returned by ipa.botkeeper.com, and the Apollo GraphQL challenge returned by api.firm.ai/graphql. Nothing here is inferred beyond what those responses state.

Botkeeper declares 0 security scheme(s) across its OpenAPI definitions.

CompanyAccountingBookkeepingFinancial ServicesArtificial IntelligenceAutomationSaaSBanking DataPractice ManagementSmall Business
Methods: Schemes: 0 OAuth flows: API key in:

Security Schemes

Source

Authentication Profile

botkeeper-authentication.yml Raw ↑
generated: '2026-08-08'
method: probed
source: https://cognito-idp.us-east-1.amazonaws.com/us-east-1_MZqyuuurX/.well-known/openid-configuration
name: Botkeeper authentication profile
description: >-
  Botkeeper publishes no developer authentication documentation. This profile is
  assembled entirely from probed evidence: the OpenID Connect discovery document
  for Botkeeper's production Amazon Cognito user pool, the published runtime
  configuration of the Botkeeper Partner Portal SPA at https://www.firm.ai/, the
  API Gateway challenge returned by ipa.botkeeper.com, and the Apollo GraphQL
  challenge returned by api.firm.ai/graphql. Nothing here is inferred beyond what
  those responses state.

security_schemes:
  - name: cognito_oidc
    type: openIdConnect
    openIdConnectUrl: https://cognito-idp.us-east-1.amazonaws.com/us-east-1_MZqyuuurX/.well-known/openid-configuration
    provider: Amazon Cognito user pool (us-east-1)
    issuer: https://cognito-idp.us-east-1.amazonaws.com/us-east-1_MZqyuuurX
    custom_domain: https://login.auth.firm.ai
    endpoints:
      authorization: https://login.auth.firm.ai/oauth2/authorize
      token: https://login.auth.firm.ai/oauth2/token
      userinfo: https://login.auth.firm.ai/oauth2/userInfo
      revocation: https://login.auth.firm.ai/oauth2/revoke
      end_session: https://login.auth.firm.ai/logout
      jwks: https://cognito-idp.us-east-1.amazonaws.com/us-east-1_MZqyuuurX/.well-known/jwks.json
    response_types_supported: [code, token]
    token_endpoint_auth_methods_supported: [client_secret_basic, client_secret_post]
    id_token_signing_alg_values_supported: [RS256]
    subject_types_supported: [public]
    scopes_supported: [openid, email, phone, profile]
    hosted_ui: https://botkeeper-prod.auth.us-east-1.amazoncognito.com
    applies_to: Botkeeper Partner Portal (www.firm.ai / app.firm.ai)
  - name: api_gateway_bearer
    type: http
    scheme: bearer
    bearerFormat: JWT
    host: ipa.botkeeper.com
    evidence: >-
      Every path on ipa.botkeeper.com returns HTTP 403
      {"message":"Missing Authentication Token"} — the AWS API Gateway signature
      for an unauthenticated request against an authorizer-protected API. The
      Partner Portal SPA authenticates against the Cognito pool above and calls
      this host, so the presented credential is a Cognito-issued JWT.
    confidence: high
    inferred: true
  - name: graphql_session
    type: session
    host: api.firm.ai
    endpoint: https://api.firm.ai/graphql
    evidence: >-
      POST returns {"errors":[{"message":"Must be logged in","extensions":
      {"code":"UNAUTHENTICATED"}}]}. Introspection is gated; no SDL captured.
    confidence: high

end_user_authentication:
  mfa: >-
    Two-factor authentication and single sign-on are documented for platform
    users at
    https://www.botkeeper.com/en/knowledge/two-factor-authentication-and-single-sign-on-sso
  sso: true
  sms_otp: true
  client_side_rate_limits:
    note: >-
      The Partner Portal SPA config publishes its own SMS throttles — 59 seconds
      between token requests, 5 attempts per hour. Client-side only; not an API
      rate-limit contract.

documentation:
  developer_auth_page: null
  api_key_issuance: not documented publicly
  note: >-
    There is no public authentication guide, no API key page, and no developer
    portal. An integrator cannot learn how to authenticate against the User,
    Bookkeeping or Tasks APIs from anything Botkeeper publishes.

gaps:
  - No /.well-known/oauth-authorization-server or /.well-known/oauth-protected-resource on any Botkeeper host
  - The OIDC discovery document is only reachable if you already know the Cognito pool id
  - No documented scopes beyond the four standard OIDC scopes
  - No documented token lifetimes, refresh policy, or client registration path

x-evidence:
  fetched: '2026-08-08'
  probes:
    - url: https://cognito-idp.us-east-1.amazonaws.com/us-east-1_MZqyuuurX/.well-known/openid-configuration
      status: 200
      content_type: application/json
    - url: https://cognito-idp.us-east-1.amazonaws.com/us-east-1_MZqyuuurX/.well-known/jwks.json
      status: 200
    - url: https://ipa.botkeeper.com/
      status: 403
    - url: https://api.firm.ai/graphql
      status: 500
    - url: https://www.botkeeper.com/.well-known/openid-configuration
      status: 404