Provisioning Keys
Provisioning Keys are special-purpose administrative tokens used to securely create, update, list, and delete Service Account Keys within your organization.
Provisioning Keys Overview
Not for LLM Requests: Provisioning Keys cannot be used to call model endpoints or route completions.
Org-Level Admin Only: Only Organization Owners can generate and manage Provisioning Keys.
Service Key Management: These keys provide full lifecycle control over Service Account Keys — including scoped permissions, rate limits, expiration, and metadata.
Use Cases
Provisioning Keys are ideal for:
Automating API key management
Managing non-user-bound access (e.g., for CI/CD pipelines)
Setting granular controls on model usage, budgets, and project tagging
API Endpoints
Create a Service Account Key
curl 'https://api.fastrouter.ai/prod/createServiceKey' \
-H 'accept: application/json' \
-H 'accept-language: en-US,en;q=0.9' \
-H 'authorization: Bearer PROVISIONING-KEY' \
--data-raw '{
"org_id": "ORG-ID",
"api_key_name": "SERVICE-KEY-NAME",
"credit_limit": null,
"reset_budget_interval": null,
"expire_key": null,
"models": null,
"tpm_limit": null,
"rpm_limit": null,
"meta_data": null,
"tags": null
}'
The response includes the secret Service Account Key and its one-way hash, which you'll need for future updates or deletion.
Note: The following fields in the createServiceKey
payload are optional:
credit_limit
reset_budget_interval
expire_key
models
tpm_limit
rpm_limit
meta_data
tags
These can be omitted entirely or set to null
depending on your provisioning use case. Only org_id
and api_key_name
are required.
Update a Service Account Key
curl 'https://api.fastrouter.ai/prod/updateServiceKey' \
-H 'accept: application/json' \
-H 'accept-language: en-US,en;q=0.9' \
-H 'authorization: Bearer PROVISIONING-KEY' \
--data-raw '{
"org_id": "ORG-ID",
"api_key_id_hash": "SERVICE-KEY-HASH",
"api_key_name": "SERVICE-KEY-NAME",
"credit_limit": 150,
"reset_budget_interval": "daily",
"expire_key": "2025-03-28 18:30:00.000",
"models": [
"GROQ/deepseek-r1-distill-llama-70b",
"GROQ/llama-3.1-8b-instant"
],
"tpm_limit": 10000,
"rpm_limit": 10,
"metadata": {
"version": "v1",
"source": "system",
"data": {
"user_id": "user_id",
"name": "raw_key",
"email": "hashed_key",
"api_key_alias": "alias1"
}
},
"tags": ["tag1", "tag2"]
}'
List Service Account Keys
curl 'https://api.fastrouter.ai/prod/getServiceKeys' \
-H 'accept: application/json' \
-H 'accept-language: en-US,en;q=0.9' \
-H 'authorization: Bearer PROVISIONING-KEY' \
--data-raw '{"org_id": "ORG-ID"}'
Delete a Service Account Key
curl 'https://api.fastrouter.ai/prod/deleteServiceKey' \
-H 'accept: application/json' \
-H 'accept-language: en-US,en;q=0.9' \
-H 'authorization: Bearer PROVISIONING-KEY' \
--data-raw '{
"org_id": "ORG-ID",
"api_key_id_hash": "SERVICE-KEY-HASH"
}'
Notes
Ensure your
PROVISIONING-KEY
is stored securely. It has high privileges.For
metadata
, you can store custom info likeuser_id
,team_name
, ordeployment
.tags
help in grouping and filtering keys by project or environment.
Last updated