fastmon Docs
Api keys

Rename or rescope an API key

Report an issue

Rename an org key, change what it may do, or both. The secret is untouched.

Open only to someone who holds what the key holds: an owner-grade key is not editable by a member, not downwards and not even to rename it. Revoking it stays open to them, which is the move that matters when a key is suspected.

Within that, step-up is asked only when the edit gives the key MORE than it had - a scope it did not carry, or a later expiry. Both are re-granting authority and are a mint in all but name. Narrowing and renaming pass without a factor. The ceiling for a widening is what the person editing holds today, never what the original minter held.

Authorization

bearerAuth
headerAuthorizationBearer <token>

API token generated from the fastmon dashboard (Account → API Token) or at organization level (fmo_…, one that outlives its creator). Send as Authorization: Bearer fm_... or paste the full token (including its prefix) into the Authorize dialog.

Path Parameters

org_id*Org Id
Formatuuid
key_id*Key Id
Formatuuid

Request Body

application/json
  1. body

Rename an org key, change what it may do, or both. Every field is optional and what is left out stays as it is. There is no reach to edit: an org key names one organization by construction.

current_password?|

The account's password, when it has neither a passkey nor 2FA.

totp_code?|

Code from the authenticator app, when 2FA is on and there is no passkey.

passkey_challenge_id?|

Challenge from POST /auth/session/webauthn/options, required together with passkey_assertion whenever the account has a passkey.

passkey_assertion?|

The WebAuthn assertion answering that challenge.

name?|

New label, or omitted to keep the current one.

scopes?array<string>|

The key's new permissions, replacing the old set. Omitted keeps them. Adding one takes step-up and is capped at what the caller holds today.

expires_at?|

Omitted leaves the expiry alone, null means it never expires. Moving it further out takes step-up.

Response Body

Successful Response

application/json
  1. response

A key as it is displayed. The secret is never returned - only enough metadata to recognise a key and revoke it.

id*Id

Identifier of the key.

Formatuuid
kind*ApiKeyKind

Whether the key belongs to a person or to an organization.

Value in"personal""org"
name?Name

Label the key is recognised by.

prefix*Prefix

Non-secret lookup prefix: the scheme (fm_ for a personal key, fmo_ for an organization's) plus the first characters of the secret.

last4?Last4

Last four characters of the secret, to tell two keys apart.

scopes?array<string>

Permissions this key carries.

Default[]
expires_at?Expires At

When the key stops working; absent means never.

Formatdate-time
last_used_at?Last Used At

Absent until the key is first used.

Formatdate-time
reach*

Which organizations the key may act in: the ones it was issued for, or, for a key issued to an agency, its clients as they stand right now.

created_at*Created At

When the key was minted.

Formatdate-time
revoked_at?Revoked At

Absent while the key is live. Only listings that ask for revoked keys ever see a value here.

Formatdate-time
editable?Editable

Whether the caller may change this key: its scopes, its expiry, its name, and rotating it. False for a key that holds permissions the caller does not. Revoking is never gated by it.

Defaulttrue
via_partner_org_id?Via Partner Org Id

The partner organization whose member minted this org key. The key keeps working after that partnership ends. Absent otherwise.

Formatuuid
PATCH
/organizations/{org_id}/api-keys/{key_id}
curl -X PATCH 'https://api.fastmon.eu/organizations/497f6eca-6276-4993-bfeb-53cbbbba6f08/api-keys/497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -H 'Content-Type: application/json' \  -d '{}'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "kind": "personal",  "name": "string",  "prefix": "string",  "last4": "string",  "scopes": [],  "expires_at": "2019-08-24T14:15:22Z",  "last_used_at": "2019-08-24T14:15:22Z",  "reach": {    "scope": "string",    "partner_org_id": "6d083317-c55a-4f41-82ae-8c86d8187f47",    "organization_ids": [],    "organization_count": 0  },  "created_at": "2019-08-24T14:15:22Z",  "revoked_at": "2019-08-24T14:15:22Z",  "editable": true,  "via_partner_org_id": "4449850c-ca66-4d3c-b6e6-920e855223d4"}