UserGems · Authentication Profile

Usergems Authentication

Authentication

UserGems runs two independent authentication models on two different hosts. The REST ingestion API (api.usergems.com/v1) uses a single company-wide API key in an X-Api-Key header. The MCP server (app.usergems.com/mcp/usergems) uses OAuth 2.0 authorization-code + PKCE with dynamic client registration and a single scope, delegating each caller the permissions of their own UserGems login. They do not share credentials.

UserGems secures its APIs with apiKey and oauth2 across 2 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode flow(s).

Sales IntelligenceOutboundAccount Based MarketingChampion TrackingJob ChangesBuying SignalsAI ScoringSales EngagementCRMRevenue OperationsGo-To-MarketMCPAI Agents
Methods: apiKey, oauth2 Schemes: 2 OAuth flows: authorizationCode API key in: header

Security Schemes

ApiKeyAuth apiKey
· in: header (X-Api-Key)
UserGemsMCP oauth2
· flows: authorizationCode

Source

Authentication Profile

Raw ↑
generated: '2026-08-13'
method: searched
source: openapi/usergems-api-openapi.yml
docs:
  - https://app.usergems.com/api/documentation
  - https://help.usergems.com/article/using-the-usergems-api
  - https://app.usergems.com/.well-known/oauth-authorization-server
description: >-
  UserGems runs two independent authentication models on two different hosts.
  The REST ingestion API (api.usergems.com/v1) uses a single company-wide API key
  in an X-Api-Key header. The MCP server (app.usergems.com/mcp/usergems) uses
  OAuth 2.0 authorization-code + PKCE with dynamic client registration and a
  single scope, delegating each caller the permissions of their own UserGems
  login. They do not share credentials.
summary:
  types:
    - apiKey
    - oauth2
  api_key_in:
    - header
  oauth2_flows:
    - authorizationCode
schemes:
  - name: ApiKeyAuth
    type: apiKey
    in: header
    parameter: X-Api-Key
    surface: REST (https://api.usergems.com/v1)
    description: |-
      Customer-issued API key. Request a key from support@usergems.com. The
      key must be included on every request in the X-Api-Key header.
    sources:
      - openapi/usergems-contacts-api-openapi.yml
      - openapi/usergems-accounts-api-openapi.yml
      - openapi/usergems-privacy-api-openapi.yml
    provisioning: >-
      Self-service retrieval, not self-service issuance: "Go to Settings →
      Connected Applications and scroll to the bottom to find your API Token."
    rotation: >-
      Manual only — "Keys are not auto-rotated — contact your CSM to request a
      new key if needed."
    granularity: >-
      One key per company, shared across all integrations. No per-system keys,
      no way to isolate a misbehaving integration, and no separate test key.
    blast_radius: >-
      Provider-stated: "The API is write-only, so a leaked key cannot expose any
      of your data. The risk is that an unauthorized party could write incorrect
      data to your account."
  - name: UserGemsMCP
    type: oauth2
    surface: MCP (https://app.usergems.com/mcp/usergems)
    sources:
      - well-known/usergems-oauth-authorization-server.json
      - well-known/usergems-oauth-protected-resource.json
    issuer: https://app.usergems.com
    flows:
      - flow: authorizationCode
        authorizationUrl: https://app.usergems.com/mcp/oauth/authorize
        tokenUrl: https://app.usergems.com/mcp/oauth/token
        scopes: [mcp:use]
        pkce: [S256]
        refresh_token: true
    dynamic_client_registration: https://app.usergems.com/mcp/oauth/register
    challenge: >-
      An unauthenticated call returns 401 with
      WWW-Authenticate: Bearer realm="mcp", resource_metadata="…/.well-known/
      oauth-protected-resource/mcp/usergems" (RFC 9728).
    identity_binding: >-
      Authorization runs against the caller's active UserGems browser session;
      the consent screen names the signed-in email, and each user carries their
      own permissions.
transport_security:
  tls: TLSv1.3 on www, app and api hosts
  hsts:
    www.usergems.com: true
    app.usergems.com: true
    api.usergems.com: false
  note: >-
    Provider statement: "All data transmitted between UserGems and UserGems users
    is protected using Transport Layer Security (TLS) and HTTP Strict Transport
    Security (HSTS)." Our probe records no HSTS header on api.usergems.com — see
    security/usergems-domain-security.yml.
gaps:
  - No OIDC discovery document (/.well-known/openid-configuration 404s on every host).
  - No mTLS, no signed requests, no HMAC option on the REST API.
  - No API-key scoping and no key-level rate isolation.
  - No sandbox/test credential of any kind.

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