Skip to main content
POST
/
v1
/
api-keys
Create API Key
curl --request POST \
  --url https://api.example.com/v1/api-keys \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "scopes": [
    "<string>"
  ],
  "expires_at": "<string>"
}
'
{
  "id": "key_Pe5hI9jK",
  "object": "api_key",
  "name": "Analytics Dashboard",
  "key": "sig_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0",
  "prefix": "sig_live_a1b2",
  "scopes": ["trademarks:read", "search:read", "events:read"],
  "created_at": "2026-03-24T16:00:00Z",
  "expires_at": null,
  "livemode": true,
  "request_id": "req_wP2gH8iJ"
}

Overview

Creates a new API key for your organization. The full key secret is returned only once in the response; it cannot be retrieved again. Store it securely immediately after creation. You can assign a name for identification, specific scopes to limit access, and an optional expiration date.

Request Body

name
string
required
Human-readable name for the key (e.g., “Production Backend”)
scopes
string[]
required
Authorized scopes. Available scopes: trademarks:read, search:read, portfolios:manage, events:read, api-keys:manage
expires_at
string
Optional ISO timestamp for key expiration. Omit for a non-expiring key.

Response

response
object
{
  "id": "key_Pe5hI9jK",
  "object": "api_key",
  "name": "Analytics Dashboard",
  "key": "sig_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0",
  "prefix": "sig_live_a1b2",
  "scopes": ["trademarks:read", "search:read", "events:read"],
  "created_at": "2026-03-24T16:00:00Z",
  "expires_at": null,
  "livemode": true,
  "request_id": "req_wP2gH8iJ"
}

Code Examples

curl -X POST https://api.signa.so/v1/api-keys \
  -H "Authorization: Bearer sig_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Analytics Dashboard",
    "scopes": ["trademarks:read", "search:read", "events:read"]
  }'

Errors

StatusTypeDescription
400validation_errorMissing name or invalid scope values
401unauthorizedMissing or invalid API key
403forbiddenInsufficient permissions to create keys
409conflictA key with the same name already exists
429rate_limitedToo many requests