Hey API · Authentication Profile
Hey Api Authentication
Authentication
Hey API secures its APIs with http across 2 declared security schemes, as derived from its OpenAPI definitions.
Code GenerationDeveloper ToolsOpenAPISDKTypeScriptPythonAPI DesignSpecificationsRegistryOpen-Source
Methods: http
Schemes: 2
OAuth flows:
API key in: query
Security Schemes
ApiKey http
scheme: bearer
Clerk http
scheme: bearer
Source
Authentication Profile
generated: '2026-08-06'
method: searched
source: openapi/hey-api-platform-openapi.json
docs: https://heyapi.dev/docs/openapi/typescript/integrations
summary:
types:
- http
http_schemes:
- bearer
api_key_in:
- query
oauth2_flows: []
identity_provider: Clerk
schemes:
- name: ApiKey
type: http
scheme: bearer
description: >-
Hey API Platform API key, sent as `Authorization: Bearer <api_key>`.
Two kinds exist and they are NOT interchangeable — see key_types below.
sources:
- openapi/hey-api-platform-openapi.json
applies_to:
- POST /v1/specifications
- GET /v1/get/{organization_slug}/{project_slug}
- name: Clerk
type: http
scheme: bearer
bearerFormat: JWT
description: >-
Clerk-issued session JWT. This is the browser/console credential — it
secures every organization, project, member, api-key, webhook, waitlist
and user management operation on the platform API.
sources:
- openapi/hey-api-platform-openapi.json
identity_provider:
name: Clerk
evidence: >-
`Clerk JWT token` securityScheme description in the spec; the
`clerk_user_id` field on the User schema; and the
`x-clerk-auth-reason: session-token-and-uat-missing` response header
observed on an anonymous GET to api.heyapi.dev.
applies_to: 33 of 38 operations (every /v1/organizations, /v1/users and /v1/internal path)
alternate_transport:
- name: api_key query parameter
in: query
parameter: api_key
description: >-
The spec-download endpoint additionally accepts the key as a query
parameter so any codegen CLI can consume the URL directly, e.g.
https://get.heyapi.dev/foo/bar?api_key=<my_api_key>
documented_at: https://heyapi.dev/docs/openapi/typescript/integrations
caution: >-
Query-parameter credentials land in proxy and CDN access logs and in
shell history. Prefer the Authorization header where the toolchain allows.
key_types:
- name: project API key
scope: one project
issued_at: app.heyapi.dev > project > Integrations > APIs
can_upload: true
intended_for: CI workflows (the hey-api/upload-openapi-spec GitHub Action reads it from $API_KEY)
- name: personal API key
scope: the user's accessible projects
issued_at: https://app.heyapi.dev/settings/user/apis
can_upload: false
intended_for: local development / pulling specs
evidence: 'Docs: "Personal API keys can''t be used to upload specifications."'
anonymous_access:
- operation: GET /
note: Unauthenticated liveness response — "Hey API Backend v1.0.0".
- operation: GET /v1/get/{organization_slug}/{project_slug}
note: >-
The spec declares an empty security requirement `{}` alongside ApiKey and
Clerk, i.e. anonymous access is permitted for PUBLIC projects. Projects
are private by default; hey-api/backend is public, which is how this
repo harvested the platform OpenAPI without credentials.
key_lifecycle:
create: POST /v1/organizations/{organization_slug}/projects/{project_slug}/api-keys
list: GET /v1/organizations/{organization_slug}/projects/{project_slug}/api-keys
rotate_or_update: POST /v1/organizations/{organization_slug}/projects/{project_slug}/api-keys/{api_key_id}
revoke: DELETE /v1/organizations/{organization_slug}/projects/{project_slug}/api-keys/{api_key_id}
personal_keys: /v1/users/{user_id}/api-keys
last_used_tracking: 'ApiKeyConcealed.last_used_at is returned on every key listing'
value_disclosure: >-
The full key value is only present on the `ApiKey` schema (returned at
creation); listings return `ApiKeyConcealed`, which omits `value`.
oauth2: false
scopes: none
notes: >-
No OAuth 2.0 and no OpenID Connect provider metadata is exposed by Hey API
itself — /.well-known/openid-configuration and
/.well-known/oauth-authorization-server both 404 on every host. Console
identity is delegated to Clerk; API-to-API identity is a bearer API key.
There is therefore no scopes/ artifact for this provider.
x-evidence:
fetched: '2026-08-06'
spec_url: https://api.heyapi.dev/v1/get/hey-api/backend
spec_http_status: 200
docs_url: https://heyapi.dev/docs/openapi/typescript/integrations
docs_http_status: 200
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.
Call it yourself
curl for this page
This security artifact
curl "https://apis.io/api/v1/security/hey-api-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.