API
Wingman API
The Wingman API gives you programmatic access to your calls, recaps, and coaching data, and lets you receive events as they happen. API access is available on the Pro and Enterprise plans.
Available APIs
| API | Description | Availability |
|---|---|---|
| Calls API | List calls and fetch transcripts, recaps, and outcomes. | Pro & Enterprise |
| Recaps API | Retrieve and export the AI recap for any call. | Pro & Enterprise |
| Webhooks | Receive events when a call ends or a recap is ready. | Pro & Enterprise |
Authentication
The Wingman API uses bearer authentication. Create an API key from Settings → API in the Wingman app, then send it in the Authorization header.
curl https://api.wingman.com/v1/calls \
-H "Authorization: Bearer YOUR_API_KEY"Keep your key secret. It grants access to your call data. You can revoke and rotate keys anytime from the same settings page.
Rate limits
The default limit is 60 requests per minute per API key. Exceeding it returns a 429 Too Many Requests response with a Retry-After header.
| Endpoint | Rate limit |
|---|---|
GET /v1/calls | 60 requests/minute |
GET /v1/calls/{id} | 120 requests/minute |
| Webhook deliveries | No limit |
Errors
The API uses standard HTTP status codes. Error bodies are JSON:
{
"error": "Unauthorized",
"message": "Invalid API key"
}| Status | Meaning |
|---|---|
| 400 | Request is invalid or missing required fields. |
| 401 | Invalid or missing API key. |
| 403 | Valid key, but your plan doesn't include API access. |
| 404 | The requested resource doesn't exist. |
| 429 | Rate limit exceeded. Back off and retry. |
| 500 | Something went wrong on our side. |
Endpoints
List calls
get/v1/calls
Returns your most recent calls, newest first. Supports pagination.
curl https://api.wingman.com/v1/calls?limit=20 \
-H "Authorization: Bearer YOUR_API_KEY"Get a call
get/v1/calls/{id}
Fetches a single call, including its transcript and participants.
curl https://api.wingman.com/v1/calls/call_123 \
-H "Authorization: Bearer YOUR_API_KEY"Get a recap
get/v1/calls/{id}/recap
Returns the AI recap and next moves for a call once it’s ready.
Webhooks
Subscribe to events to get notified in real time. Add an endpoint under Settings → API → Webhooks, and Wingman will POST a JSON payload when a call ends or a recap is ready.
{
"type": "call.recap.ready",
"data": { "call_id": "call_123" }
}