API Keys

API keys provide server-to-server authentication for the Rally CRM API. Create keys with scoped permissions, track usage, and rotate them when needed. Keys are scoped to a tenant and can be restricted to read, write, or admin access.

Endpoints

GET
/api/v1/api-keysList all API keys for the tenant
POST
/api/v1/api-keysCreate a new API key
PATCH
/api/v1/api-keys/{id}Update key name/scopes
DELETE
/api/v1/api-keys/{id}Revoke an API key

Create Request

Send a POST request with the following body to create a new API key.

CreateApiKeyRequest

PropertyTypeRequiredDescription
namestringHuman-readable name (e.g., "Zapier Sync", "ETL Pipeline")
scopesstringComma-separated: "read", "write", "admin" (default: "read")
expiresAtDateTime?Expiration date (null = never expires)

Response Model

Returned when listing or fetching API keys. The full key value is never included in list responses.

ApiKeyResponse

PropertyTypeRequiredDescription
idGuidUnique key identifier
keyPrefixstringFirst characters shown (e.g., "rk_live_")
namestringHuman-readable key name
scopesstringAssigned permission scopes
expiresAtDateTime?Expiration date (null if the key never expires)
lastUsedAtDateTime?Timestamp of the last API call using this key
isActiveboolWhether the key is currently active
createdAtDateTimeWhen the key was created
createdBystring?User who created the key
[
  {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "keyPrefix": "rk_live_",
    "name": "Zapier Sync",
    "scopes": "read,write",
    "expiresAt": "2026-01-01T00:00:00Z",
    "lastUsedAt": "2025-02-01T14:32:00Z",
    "isActive": true,
    "createdAt": "2025-01-15T09:00:00Z",
    "createdBy": "admin@acme.com"
  }
]

Created Response

Returned only once when a new API key is created. This is the only time the full key value is available.

ApiKeyCreatedResponse

PropertyTypeRequiredDescription
idGuidUnique key identifier
keystringFull API key (only shown once at creation!)
keyPrefixstringPrefix for identification (e.g., "rk_live_")
namestringHuman-readable key name
scopesstringAssigned permission scopes
expiresAtDateTime?Expiration date
createdAtDateTimeWhen the key was created

Important

The full API key is only shown once at creation time. Store it securely — it cannot be retrieved later. If you lose the key, you will need to revoke it and create a new one.

{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "key": "rk_live_7f3a9b2c4d1e8f5a6b0c3d9e2f7a1b4c",
  "keyPrefix": "rk_live_",
  "name": "Zapier Sync",
  "scopes": "read,write",
  "expiresAt": "2026-01-01T00:00:00Z",
  "createdAt": "2025-01-15T09:00:00Z"
}

Examples

Create an API Key

curl -X POST https://your-tenant.rallycrm.io/api/v1/api-keys \
  -H "Authorization: Bearer eyJhbGci..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Zapier Sync",
    "scopes": "read,write",
    "expiresAt": "2026-01-01T00:00:00Z"
  }'

List API Keys

curl https://your-tenant.rallycrm.io/api/v1/api-keys \
  -H "X-Api-Key: rk_live_your_api_key_here"

Revoke an API Key

curl -X DELETE https://your-tenant.rallycrm.io/api/v1/api-keys/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H "X-Api-Key: rk_live_your_api_key_here"

Next Steps

Rally Support

We typically reply in a few hours

Hi! 👋 How can we help you today?