Horizon API keys start with
fmcp_. The full key is shown only once, when you
create it. Store it before closing the creation dialog.What API keys do
API keys authenticate platform API requests and protected MCP endpoint traffic. The target URL determines which access path Horizon evaluates.Manage Horizon
Send the key to the REST API to list, create, update, or delete resources
that the owning actor is allowed to manage.
Call protected servers
Send the key to a Horizon-served MCP endpoint when the client cannot sign in
interactively.
Key types
Use personal API keys for work tied to one human user. Use service-account keys for shared automation that should survive user turnover.| Key owner | Create from | Best for | Access behavior |
|---|---|---|---|
| User | User menu, then API Keys | Personal scripts, local MCP clients, one-off testing | Inherits the user’s current organization and server access. |
| Service account | Organization settings, then Service Accounts | CI/CD, Terraform, scheduled jobs, production integrations | Inherits the service account’s organization role and server grants. |
Create a personal API key
Create the key
Select Create API Key. Add a descriptor that identifies where the key
will be used, such as
local-client or staging-ci.Store the secret
Copy the
fmcp_ value from the reveal dialog and store it in the client,
CI secret store, or secret manager that will send requests.Create a service-account API key
Create service-account keys from an organization’s service account settings. Service accounts are designed for automation, so their keys can be rotated without involving a human user’s account.Create or select a service account
Create a new service account for the automation, or open an existing
service account that already owns the right access.
Copy the generated key
New service accounts receive an API key when created. Existing service
accounts can have additional keys added from the service account details
panel.
Send a request
Send API keys in theAuthorization header:
Rotation workflow
Rotate keys by introducing a replacement before revoking the old key.Create a replacement key
Create a new key for the same user or service account. For service
accounts, keep the two-key limit in mind.
Update the client
Change the secret value used by the MCP client, CI job, Terraform run, or
integration.
Verify new traffic
Confirm the client succeeds with the new key. Check request logs or the
client response before removing the old key.
Lifecycle and access
API key behavior follows the owner and the active key record.The key owner loses access
The key owner loses access
The key keeps existing as a credential, but requests are evaluated with the
owner’s current access. If the owner no longer belongs to the organization
or lacks server access, protected requests fail.
The key is revoked
The key is revoked
Horizon stops accepting the key immediately. Existing clients must be
updated to use another key or sign-in method.
The full secret is lost
The full secret is lost
Horizon cannot show the full key again. Create a new key, update the
client, and revoke the old key if it might still be in use.
A service account is suspended or deleted
A service account is suspended or deleted
Requests made with that service account’s keys can no longer use the
suspended or deleted identity. Replace the key with one owned by an active
service account that has the required access.
Common failures
A request returns 401
A request returns 401
Horizon did not accept the credential. Check that the request uses
Authorization: Bearer, that the key starts with fmcp_, that the full
value was copied, and that the key has not been revoked.A request returns 403
A request returns 403
The key authenticated, but the owning actor does not have permission for
the organization, server, or action. Check the owner’s organization role,
server grants, default server role, and capability policy.
A protected server returns 404
A protected server returns 404
The deployment URL may not map to a live server, or Horizon may be
concealing a server from an authenticated actor that lacks discovery
access. Confirm the URL and the owner’s server access.
A service account cannot add another key
A service account cannot add another key
Revoke an unused service-account key first. Service accounts support up to
two active keys at a time.
Related docs
Authentication
Learn how API keys, user tokens, and browser sessions authenticate.
Authorization
Learn how Horizon decides what an authenticated actor can do.