API Keys

Manage your API keys programmatically.

API Keys

Manage your API keys programmatically. Create, list, and delete API keys for your account.


Create API Key

POST /v1/keys

Create a new API key for your account.

Request Body

ParameterTypeRequiredDescription
namestringYesA descriptive name for the key

Code Examples

curl -X POST https://api.pdfapi.dev/v1/keys \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production Server"
  }'
const response = await fetch('https://api.pdfapi.dev/v1/keys', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.PDFAPI_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Production Server'
  }),
});

const { data } = await response.json();
console.log('New API key:', data.key);
import requests

response = requests.post(
    'https://api.pdfapi.dev/v1/keys',
    headers={
        'Authorization': f'Bearer {os.environ["PDFAPI_KEY"]}',
        'Content-Type': 'application/json',
    },
    json={
        'name': 'Production Server'
    }
)

data = response.json()['data']
print(f"New API key: {data['key']}")
payload := map[string]string{"name": "Production Server"}
body, _ := json.Marshal(payload)

req, _ := http.NewRequest("POST", "https://api.pdfapi.dev/v1/keys", bytes.NewBuffer(body))
req.Header.Set("Authorization", "Bearer "+os.Getenv("PDFAPI_KEY"))
req.Header.Set("Content-Type", "application/json")

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

Response

{
  "data": {
    "id": "key_abc123",
    "name": "Production Server",
    "key": "sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "created_at": "2025-01-15T10:30:00Z"
  }
}

The full API key is only returned once upon creation. Store it securely - you won't be able to see it again!


List API Keys

GET /v1/keys

List all API keys associated with your account.

Code Examples

curl https://api.pdfapi.dev/v1/keys \
  -H "Authorization: Bearer sk_live_xxx"
const response = await fetch('https://api.pdfapi.dev/v1/keys', {
  headers: {
    'Authorization': `Bearer ${process.env.PDFAPI_KEY}`,
  },
});

const { data } = await response.json();
console.log('API keys:', data);
import requests

response = requests.get(
    'https://api.pdfapi.dev/v1/keys',
    headers={
        'Authorization': f'Bearer {os.environ["PDFAPI_KEY"]}',
    }
)

data = response.json()['data']
for key in data:
    print(f"{key['name']}: {key['key_preview']}")
req, _ := http.NewRequest("GET", "https://api.pdfapi.dev/v1/keys", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("PDFAPI_KEY"))

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

Response

{
  "data": [
    {
      "id": "key_abc123",
      "name": "Production Server",
      "key_preview": "sk_live_xxxx...xxxx",
      "created_at": "2025-01-15T10:30:00Z",
      "last_used_at": "2025-01-18T14:22:00Z"
    },
    {
      "id": "key_def456",
      "name": "Development",
      "key_preview": "sk_live_yyyy...yyyy",
      "created_at": "2025-01-10T08:15:00Z",
      "last_used_at": null
    }
  ]
}

Delete API Key

DELETE /v1/keys/:id

Delete an API key. This action is immediate and cannot be undone.

Path Parameters

ParameterTypeDescription
idstringThe API key ID (e.g., key_abc123)

Code Examples

curl -X DELETE https://api.pdfapi.dev/v1/keys/key_abc123 \
  -H "Authorization: Bearer sk_live_xxx"
const response = await fetch('https://api.pdfapi.dev/v1/keys/key_abc123', {
  method: 'DELETE',
  headers: {
    'Authorization': `Bearer ${process.env.PDFAPI_KEY}`,
  },
});

if (response.ok) {
  console.log('API key deleted');
}
import requests

response = requests.delete(
    'https://api.pdfapi.dev/v1/keys/key_abc123',
    headers={
        'Authorization': f'Bearer {os.environ["PDFAPI_KEY"]}',
    }
)

if response.status_code == 200:
    print('API key deleted')
req, _ := http.NewRequest("DELETE", "https://api.pdfapi.dev/v1/keys/key_abc123", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("PDFAPI_KEY"))

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

Response

{
  "data": {
    "deleted": true
  }
}

Error Responses

Key Not Found

{
  "error": {
    "code": "NOT_FOUND",
    "message": "API key not found"
  }
}

Cannot Delete Current Key

{
  "error": {
    "code": "FORBIDDEN",
    "message": "Cannot delete the API key used to authenticate this request"
  }
}