Skip to main content
POST
/
api-keys
{
  "api_key_id": "<string>",
  "name": "<string>",
  "api_key": "<string>",
  "permissions": [
    {}
  ],
  "rate_limits": {},
  "status": "<string>",
  "created_at": {},
  "expires_at": {}
}

Overview

Creates a new API key for programmatic access to the Judge API. API keys provide secure access without requiring user authentication and can be configured with specific permissions and usage limits.

Request Body

name
string
required
Descriptive name for the API key
description
string
Optional description of the API key’s intended use
permissions
array
required
List of permissions for this API key
  • evaluations.create - Create evaluations
  • evaluations.read - Read evaluation results
  • evaluations.delete - Delete evaluations
  • judges.read - Read judge information
  • content.upload - Upload content
  • content.read - Read content
rate_limits
object
Rate limiting configuration
expires_at
datetime
Optional expiration date for the API key (ISO 8601)

Response

api_key_id
string
required
Unique identifier for the API key
name
string
required
API key name
api_key
string
required
The actual API key (only shown once)
permissions
array
required
Configured permissions
rate_limits
object
required
Configured rate limits
status
string
required
API key status (active, suspended, expired)
created_at
datetime
required
Creation timestamp
expires_at
datetime
Expiration timestamp (if set)

Examples

curl -X POST https://api.judge.example.com/api-keys \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production Evaluation API",
    "description": "API key for production content evaluation pipeline",
    "permissions": [
      "evaluations.create",
      "evaluations.read",
      "judges.read",
      "content.upload",
      "content.read"
    ],
    "rate_limits": {
      "requests_per_minute": 200,
      "evaluations_per_hour": 1000,
      "monthly_limit": 100000
    },
    "expires_at": "2025-01-15T00:00:00Z"
  }'