What Are Thread API Endpoints?
Thread API endpoints are custom routes that operate on specific conversation threads. They allow you to:- Access thread data: Query messages, logs, and metadata
- Perform operations: Export conversations, generate summaries, update state
- Extend the API: Add domain-specific functionality beyond built-in routes
Thread API endpoints are file-based and auto-discovered. Create a TypeScript file in
agents/api/ and export your endpoint definition—no manual registration needed.Quick Start
Create your first endpoint inagents/api/status.ts:
Your endpoint is now available at
GET /api/threads/:id/status. The framework auto-discovers it from the agents/api/ directory.File-Based Routing
API files map directly to routes based on their filename:| File | HTTP Method | Route |
|---|---|---|
status.ts | GET | /api/threads/:id/status |
status.get.ts | GET | /api/threads/:id/status |
export.post.ts | POST | /api/threads/:id/export |
metadata.put.ts | PUT | /api/threads/:id/metadata |
archive.delete.ts | DELETE | /api/threads/:id/archive |
Method Suffixes
Append the HTTP method to the filename to specify which method the endpoint handles:.get.ts— GET requests (default if no suffix).post.ts— POST requests.put.ts— PUT requests.delete.ts— DELETE requests.patch.ts— PATCH requests
Nested Routes
Create subdirectories for nested route paths:Handler Function
ThedefineThreadEndpoint function wraps your handler and automatically:
- Extracts the thread ID from the URL
- Looks up thread metadata
- Gets the DurableObject instance
- Handles errors (400 for missing ID, 404 for not found, 500 for exceptions)
Signature
Parameters
req — Standard Web API Request object
context.instance — The thread’s DurableObject instance with methods to access data. You can extend this with custom methods.
context.metadata — Thread metadata from the database
ThreadInstance Methods
Theinstance parameter provides access to the thread’s data and state:
getMessages
Retrieve message history from the thread:getLogs
Retrieve execution logs:getThreadMeta
Get metadata for a specific thread:shouldStop
Check if execution should be stopped:ThreadMetadata
Themetadata object contains:
Request Handling
Reading Request Body
Query Parameters
Headers
Error Handling
Wrap operations in try/catch for robust error handling:The framework automatically handles common errors like missing thread IDs (400) and threads not found (404). Your handler only needs to handle domain-specific errors.
Best Practices
Keep API Handlers Fast
Keep API Handlers Fast
API handlers run in the request path. Keep operations quick:
Handle Errors Gracefully
Handle Errors Gracefully
Always wrap risky operations:
Validate Input Data
Validate Input Data
Check request data before processing:
Use Descriptive File Names
Use Descriptive File Names
Name files clearly to indicate their purpose: