Skip to content
Back to skills

046 Api Reference E6c62e7d

ASecurity

API endpoints and programmatic access to Claude Code functionality.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
developmentjavascripttypescriptpythonjavabashcode-reviewapisecuritydocumentation

Works with

  • claude code
  • cli
  • api

Security analysis

A96/100
  • mediumUses curl or wget to download content

Pro shows the line behind each finding and how to fix it

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 046-api-reference_e6c62e7d --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 046 Api Reference E6c62e7d?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 046 Api Reference E6c62e7d
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-046-api-reference-e6c62e7d/badge)](https://www.skillsdirectory.com/skills/tools-only-046-api-reference-e6c62e7d)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# API Reference

API endpoints and programmatic access to Claude Code functionality.

## Admin API

### Usage Reports

**Get Claude Code Usage Report:**
```bash
GET /v1/admin/claude-code/usage
```

**Query parameters:**
- `start_date`: Start date (YYYY-MM-DD)
- `end_date`: End date (YYYY-MM-DD)
- `user_id`: Filter by user
- `workspace_id`: Filter by workspace

**Response:**
```json
{
  "usage": [
    {
      "date": "2025-11-06",
      "user_id": "user-123",
      "requests": 150,
      "tokens": 45000,
      "cost": 12.50
    }
  ]
}
```

**Example:**
```bash
curl https://api.anthropic.com/v1/admin/claude-code/usage \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d start_date=2025-11-01 \
  -d end_date=2025-11-06
```

### Cost Reports

**Get Cost Report:**
```bash
GET /v1/admin/usage/cost
```

**Query parameters:**
- `start_date`: Start date
- `end_date`: End date
- `group_by`: `user` | `project` | `model`

**Response:**
```json
{
  "costs": [
    {
      "group": "user-123",
      "input_tokens": 100000,
      "output_tokens": 50000,
      "cost": 25.00
    }
  ],
  "total": 250.00
}
```

### User Management

**List Users:**
```bash
GET /v1/admin/users
```

**Get User:**
```bash
GET /v1/admin/users/{user_id}
```

**Update User:**
```bash
PATCH /v1/admin/users/{user_id}
```

**Remove User:**
```bash
DELETE /v1/admin/users/{user_id}
```

## Messages API

### Create Message

**Endpoint:**
```bash
POST /v1/messages
```

**Request:**
```json
{
  "model": "claude-sonnet-4-5-20250929",
  "max_tokens": 4096,
  "messages": [
    {
      "role": "user",
      "content": "Explain this code"
    }
  ]
}
```

**With Skills:**
```json
{
  "model": "claude-sonnet-4-5-20250929",
  "max_tokens": 4096,
  "skills": [
    {
      "type": "custom",
      "custom": {
        "name": "code-reviewer",
        "description": "Reviews code quality",
        "instructions": "Check for bugs, security issues..."
      }
    }
  ],
  "messages": [...]
}
```

**Response:**
```json
{
  "id": "msg_123",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "This code implements..."
    }
  ],
  "usage": {
    "input_tokens": 100,
    "output_tokens": 200
  }
}
```

### Stream Messages

**Streaming response:**
```json
{
  "model": "claude-sonnet-4-5-20250929",
  "max_tokens": 4096,
  "stream": true,
  "messages": [...]
}
```

**Server-sent events:**
```
event: message_start
data: {"type":"message_start","message":{...}}

event: content_block_delta
data: {"type":"content_block_delta","delta":{"text":"Hello"}}

event: message_stop
data: {"type":"message_stop"}
```

### Count Tokens

**Endpoint:**
```bash
POST /v1/messages/count_tokens
```

**Request:**
```json
{
  "model": "claude-sonnet-4-5-20250929",
  "messages": [
    {
      "role": "user",
      "content": "Count these tokens"
    }
  ]
}
```

**Response:**
```json
{
  "input_tokens": 15
}
```

## Files API

### Upload File

**Endpoint:**
```bash
POST /v1/files
```

**Request (multipart/form-data):**
```bash
curl https://api.anthropic.com/v1/files \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -F file=@document.pdf \
  -F purpose=user_upload
```

**Response:**
```json
{
  "id": "file-123",
  "object": "file",
  "bytes": 12345,
  "created_at": 1699564800,
  "filename": "document.pdf",
  "purpose": "user_upload"
}
```

### List Files

**Endpoint:**
```bash
GET /v1/files
```

**Response:**
```json
{
  "data": [
    {
      "id": "file-123",
      "filename": "document.pdf",
      "bytes": 12345
    }
  ]
}
```

### Download File

**Endpoint:**
```bash
GET /v1/files/{file_id}/content
```

### Delete File

**Endpoint:**
```bash
DELETE /v1/files/{file_id}
```

## Models API

### List Models

**Endpoint:**
```bash
GET /v1/models
```

**Response:**
```json
{
  "data": [
    {
      "id": "claude-sonnet-4-5-20250929",
      "type": "model",
      "display_name": "Claude Sonnet 4.5"
    }
  ]
}
```

### Get Model

**Endpoint:**
```bash
GET /v1/models/{model_id}
```

**Response:**
```json
{
  "id": "claude-sonnet-4-5-20250929",
  "type": "model",
  "display_name": "Claude Sonnet 4.5",
  "created_at": 1699564800
}
```

## Skills API

### Create Skill

**Endpoint:**
```bash
POST /v1/skills
```

**Request:**
```json
{
  "name": "my-skill",
  "description": "Skill description",
  "instructions": "Detailed instructions...",
  "version": "1.0.0"
}
```

### List Skills

**Endpoint:**
```bash
GET /v1/skills
```

**Response:**
```json
{
  "data": [
    {
      "id": "skill-123",
      "name": "my-skill",
      "description": "Skill description"
    }
  ]
}
```

### Update Skill

**Endpoint:**
```bash
PATCH /v1/skills/{skill_id}
```

**Request:**
```json
{
  "description": "Updated description",
  "instructions": "Updated instructions..."
}
```

### Delete Skill

**Endpoint:**
```bash
DELETE /v1/skills/{skill_id}
```

## Client SDKs

### TypeScript/JavaScript

```typescript
import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic({
  apiKey: process.env.ANTHROPIC_API_KEY
});

const message = await client.messages.create({
  model: 'claude-sonnet-4-5-20250929',
  max_tokens: 1024,
  messages: [
    { role: 'user', content: 'Hello, Claude!' }
  ]
});

console.log(message.content);
```

### Python

```python
import anthropic

client = anthropic.Anthropic(
    api_key=os.environ.get("ANTHROPIC_API_KEY")
)

message = client.messages.create(
    model="claude-sonnet-4-5-20250929",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Hello, Claude!"}
    ]
)

print(message.content)
```

## Error Handling

### Error Response Format

```json
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "Invalid API key"
  }
}
```

### Error Types

**invalid_request_error**: Invalid request parameters
**authentication_error**: Invalid API key
**permission_error**: Insufficient permissions
**not_found_error**: Resource not found
**rate_limit_error**: Rate limit exceeded
**api_error**: Internal API error
**overloaded_error**: Server overloaded

### Retry Logic

```typescript
async function withRetry(fn: () => Promise<any>, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await fn();
    } catch (error) {
      if (error.status === 529 && i < maxRetries - 1) {
        await new Promise(r => setTimeout(r, 1000 * (i + 1)));
        continue;
      }
      throw error;
    }
  }
}
```

## Rate Limits

### Headers

Response headers include rate limit info:
```
anthropic-ratelimit-requests-limit: 1000
anthropic-ratelimit-requests-remaining: 999
anthropic-ratelimit-requests-reset: 2025-11-06T12:00:00Z
anthropic-ratelimit-tokens-limit: 100000
anthropic-ratelimit-tokens-remaining: 99500
anthropic-ratelimit-tokens-reset: 2025-11-06T12:00:00Z
```

### Best Practices

- Monitor rate limit headers
- Implement exponential backoff
- Batch requests when possible
- Use caching to reduce requests

## Authentication

### API Key

Include API key in requests:
```bash
curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01"
```

### Workspace Keys

For organization workspaces:
```bash
curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $WORKSPACE_API_KEY" \
  -H "anthropic-version: 2023-06-01"
```

## See Also

- API documentation: https://docs.anthropic.com/api
- Client SDKs: https://docs.anthropic.com/api/client-sdks
- Rate limits: https://docs.anthropic.com/api/rate-limits
- Error handling: https://docs.anthropic.com/api/errors

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.