API Endpoints
Complete reference for all available Wave API endpoints.
GET
/v1/sessions
List your sessions with pagination support.
Required Scope
sessions:readQuery Parameters
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Max sessions to return (default: 20, max: 100) |
| cursor | string | ISO 8601 date for pagination (from previous response) |
| since | string | Only sessions newer than this ISO 8601 date |
| type | string | Filter by type (meeting, recording, youtube, etc.) |
Example Request
curl -H "Authorization: Bearer wave_api_xxx..." \ "https://api.wave.co/v1/sessions?limit=10&type=meeting"
Example Response
{
"sessions": [
{
"id": "abc123",
"title": "Weekly Standup",
"timestamp": "2025-01-20T10:00:00Z",
"duration_seconds": 1800,
"type": "meeting",
"platform": "zoom"
}
],
"next_cursor": "2025-01-19T09:00:00Z",
"has_more": true
}GET
/v1/sessions/:id
Get detailed information about a specific session, including summary and notes.
Required Scope
sessions:readPath Parameters
| Parameter | Type | Description |
|---|---|---|
| id | string | The session ID |
Example Request
curl -H "Authorization: Bearer wave_api_xxx..." \ https://api.wave.co/v1/sessions/abc123
Example Response
{
"id": "abc123",
"title": "Weekly Standup",
"timestamp": "2025-01-20T10:00:00Z",
"duration_seconds": 1800,
"type": "meeting",
"platform": "zoom",
"language": "en",
"summary": "The team discussed Q1 priorities and assigned action items...",
"notes": "Follow up on marketing budget by Friday"
}GET
/v1/sessions/:id/transcript
Get the full transcript of a session with speaker attribution.
Required Scope
transcripts:readPath Parameters
| Parameter | Type | Description |
|---|---|---|
| id | string | The session ID |
Example Request
curl -H "Authorization: Bearer wave_api_xxx..." \ https://api.wave.co/v1/sessions/abc123/transcript
Example Response
{
"id": "abc123",
"transcript": "John: Good morning everyone...\nJane: Hi John...",
"segments": [
{
"speaker": "John",
"start": 0.0,
"end": 5.2,
"text": "Good morning everyone, let's get started with the standup."
},
{
"speaker": "Jane",
"start": 5.5,
"end": 8.1,
"text": "Hi John, I'll go first if that's okay."
}
]
}POST
/v1/sessions/search
Perform semantic search across all your sessions using natural language queries.
Required Scope
sessions:searchRequest Body
| Field | Type | Description |
|---|---|---|
| query | string | The search query (required) |
| limit | integer | Max results to return (default: 10, max: 50) |
Example Request
curl -X POST \
-H "Authorization: Bearer wave_api_xxx..." \
-H "Content-Type: application/json" \
-d '{"query": "pricing strategy discussion", "limit": 10}' \
https://api.wave.co/v1/sessions/searchExample Response
{
"query": "pricing strategy discussion",
"results": [
{
"id": "abc123",
"title": "Q1 Planning",
"timestamp": "2025-01-15T14:00:00Z",
"type": "meeting",
"similarity": 0.89,
"snippet": "...we need to revise our pricing strategy for the enterprise tier..."
},
{
"id": "def456",
"title": "Sales Team Sync",
"timestamp": "2025-01-10T10:00:00Z",
"type": "meeting",
"similarity": 0.76,
"snippet": "...the current pricing is competitive but we could consider..."
}
],
"total": 2
}Error Codes
All errors return a consistent JSON structure:
| Code | Status | Description |
|---|---|---|
| unauthorized | 401 | Missing or invalid Authorization header |
| invalid_token | 401 | Token is invalid, expired, or revoked |
| insufficient_scope | 403 | Token lacks required permission |
| not_found | 404 | Session not found |
| rate_limit_exceeded | 429 | Too many requests |
| internal_error | 500 | Server error |