fastmon Docs
Api keys

Mint an API key

Fehler melden

Mint an org key. The response carries the secret, and nothing shows it again.

The key is bound to this organization by construction and capped at what the caller holds here - the same rule as for a personal key, applied to a different owner. The one thing it can never carry is org_key:manage: a key that can mint keys would hand its holder a second one without the session and the step-up the first one cost.

Nothing else is subtracted, so an owner may give an org key owner-grade scopes. audience: "clients" mints a key that acts in this partner's client organizations instead of in this one.

Authentifizierung

bearerAuth
headerAuthentifizierungBearer <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.

Pfad-Parameter

org_id*Org Id
Formatuuid

Request-Body

application/json
  1. body

Mint an org key. The step-up fields re-authenticate the acting human - the key itself belongs to nobody and never authenticates interactively.

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*Name

Label the key is recognised by in the dashboard.

Length1 <= length <= 100
audience?Audience

Where the key acts. own: in this organization. clients: in the organizations this one is a partner of, resolved at request time, and not in this organization itself.

Default"own"
Value in"own""clients"
scopes*array<string>

Permissions the key carries, analytics:read and the like. Capped at what the caller holds in this organization, and org_key:manage is never grantable.

Items1 <= items
expires_at*|

When the key stops working. Required, and null means it never expires.

Response-Body

Successful Response

application/json
  1. response

Response to minting: the info plus the cleartext secret, which is returned exactly once and never stored.

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
key*Key

The secret, in full. It is returned here and nowhere else, and it is not stored - a lost secret is replaced by rotating the key.

POST
/organizations/{org_id}/api-keys
curl -X POST 'https://api.fastmon.eu/organizations/497f6eca-6276-4993-bfeb-53cbbbba6f08/api-keys' \  -H 'Content-Type: application/json' \  -d '{  "name": "string",  "scopes": [    "string"  ],  "expires_at": "2019-08-24T14:15:22Z"}'
{  "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",  "key": "string"}