May Mobility · Authentication Profile

May Mobility Fleet Authentication

Authentication

May Mobility secures its APIs with oauth2 across 1 declared security scheme, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the clientCredentials flow(s).

CompanyAutonomous VehiclesTransportationMobilityRobotaxiFleet ManagementTelemetryPublic TransitAutomotiveStreaming
Methods: oauth2 Schemes: 1 OAuth flows: clientCredentials API key in:

Security Schemes

cognitoClientCredentials oauth2

Source

Authentication Profile

may-mobility-fleet-authentication.yml Raw ↑
generated: '2026-08-01'
method: searched
source: https://docs.maymobility.com/docs/fleet-api/connecting-to-fleet-api
docs: https://docs.maymobility.com/docs/fleet-api/connecting-to-fleet-api
note: 'Derived by reading the provider''s published authentication page, not from an
  OpenAPI document — May Mobility publishes no machine-readable contract. Every value
  below is either quoted from the docs or explicitly recorded as not published.'
summary:
  types: [oauth2]
  oauth2_flows: [clientCredentials]
  api_key_in: []
  identity_provider: AWS Cognito
  token_type: bearer
  onboarding: manual
  onboarding_note: 'Step 1 of the published flow is "Contact Fleet API team at May
    Mobility for provisioning an account." There is no self-service sign-up; there is
    no public developer registration page.'
schemes:
- name: cognitoClientCredentials
  type: oauth2
  flow: clientCredentials
  identity_provider: AWS Cognito
  token_endpoint: null
  token_endpoint_note: 'Published as `url: ''provided-by-fleet-api-team''` in the
    reference code sample. The Cognito domain is issued per account and is not
    public.'
  client_id: provisioned per account
  client_secret: provisioned per account
  client_authentication: client_secret_basic
  client_authentication_detail: 'The reference sample sends `Authorization: Basic
    ${base64Token}` with a base64 token supplied by the Fleet API team, plus
    grant_type=client_credentials, client_id, client_secret and scope in an
    application/x-www-form-urlencoded body.'
  scopes_published: false
  scopes_note: The `scope` value is documented as `provided-by-fleet-api-team` and
    differs between the Realtime and Batch APIs. See scopes/may-mobility-scopes.yml.
  response_field: access_token
  applies_to:
  - api: May Mobility Fleet Realtime API
    placement: query
    parameter: token
    example: domain?token=access_token_here&...
  - api: May Mobility Fleet Batch (REST) API
    placement: header
    header: Authorization
    format: 'Bearer {access_token}'
  sources:
  - https://docs.maymobility.com/docs/fleet-api/connecting-to-fleet-api
transport_security:
  tls_required: true
  evidence: 'Docs state "Note: All connections are encrypted."'
  mutual_tls: false
  mutual_tls_note: May Mobility operates its own client-certificate intermediate CA
    (May Mobility Intermediate CA ECC SLC) for internal applications, but mTLS is not
    documented as a Fleet API requirement.
x-findings:
- id: token-in-query-string
  severity: medium
  detail: 'The Realtime (WebSocket) API accepts the bearer access token as a `token`
    URL query parameter. Query-string credentials are recorded in server access logs,
    browser history and referrer headers; RFC 6750 section 2.3 deprecates the URI
    query parameter method. This is a common constraint of browser WebSocket clients
    (which cannot set request headers), but it is worth noting as a real property of
    the contract rather than an omission.'
- id: no-discovery-document
  severity: low
  detail: No /.well-known/openid-configuration or /.well-known/oauth-authorization-server
    is served on any May Mobility host (both 404). Because the Cognito domain is
    account-issued, no public discovery document exists for the authorization server
    either.
- id: no-token-lifetime-published
  severity: low
  detail: Token TTL, refresh behaviour and rate limits on the token endpoint are not
    documented.