Appearance
API keys
RemoteGPU API keys are used for two main purposes:
- calling inference APIs with
x-api-key - refreshing Kubernetes exec credentials for
kubectl
Console account management APIs do not use API keys. Those APIs use your signed-in browser session instead.
Where to manage keys
Open Settings / API Keys in the console to:
- create keys
- rename keys
- change expiry
- change scopes
- revoke keys
The raw key value is returned only when the key is created. After that, the API and console only expose its prefix.
Scope shapes
There are three supported scope modes.
All access
all
json
{
"all": true
}Use this when one key should work for both inference and Kubernetes flows.
Inference only
json
{
"inference": true
}Use this for image generation clients that should not be able to refresh Kubernetes credentials.
Kubernetes exec only
Namespace-scoped:
json
{
"kubernetes_exec": {
"namespace_ids": [
"YOUR_NAMESPACE_UUID"
]
}
}All namespaces owned by the current account:
json
{
"kubernetes_exec": {
"all_namespaces": true
}
}Use this for kubectl access without granting inference APIs.
Invalid scope combinations
A mixed payload with explicit inference access and namespace-scoped Kubernetes access is not valid. Use {"all": true} when you want both.
These payloads are rejected:
{}
At least one explicit scope is required{"inference": true, "kubernetes_exec": {...}}
Explicit mixed scopes are not supported{"all": true, "inference": true}allcannot be combined with other scope fields{"kubernetes_exec": {"namespace_ids": []}}
At least one namespace ID is required unlessall_namespacesis true
Namespace ownership rules
kubernetes_exec.namespace_ids must reference namespaces owned by the current account. If you include a namespace from another account, creation or update is rejected with 400.
Header format
APIs expect the key in the x-api-key header:
bash
curl -H "x-api-key: YOUR_API_KEY" \
"https://api.remotegpu.ai/v1/inference/runtime/models"Example inference request:
bash
curl -X POST "https://api.remotegpu.ai/v1/inference/image" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"model": "black-forest-labs/FLUX.1-dev",
"prompt": "a cinematic portrait of an astronaut cat"
}'Kubernetes kubeconfig refresh also uses x-api-key, but the generated kubeconfig exec plugin normally handles that for you.
Common use cases
- Inference-only client integration
- Namespace-scoped
kubectlaccess - Broad admin automation with
allscopes
Lifecycle rules
- Key names are limited to 64 characters
- Expiration must be in the future
- Revoked keys cannot be modified
- Expired keys cannot be modified
- Creating a key can fail with
409if your account has reached its active key limit
Common responses
401Missing access token when managing keys from account APIs401Missing, invalid, revoked, or expired API key when calling key-protected APIs400Invalid scope payload, invalid namespace ownership, or past expiration404API key not found409Revoked or expired keys cannot be modified
Related APIs
GET /v1/account/api-keysPOST /v1/account/api-keysPATCH /v1/account/api-keys/{key_id}POST /v1/account/api-keys/{key_id}/revoke
