API Documentation
Build powerful integrations with MeeEasy. Our REST API allows you to programmatically manage meetings, transcripts, summaries, action items, and analytics.
Get API Key
Generate your API key from the dashboard to start making requests
Make First Request
Test the API with a simple GET request to fetch meetings data
Explore SDKs
Use our official SDKs for JavaScript, Python, PHP, and Ruby
Introduction
The MeeEasy API is organized around REST. Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
https://api.meeeasy.com/v2
Authentication
The MeeEasy API uses API keys to authenticate requests. You can view and manage your API keys in the Dashboard. Your API keys carry many privileges, so be sure to keep them secure!
curl https://api.meeeasy.com/v2/meetings \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
Authentication to the API is performed via HTTP Bearer Auth. Provide your API key as the bearer token value. All API requests must be made over HTTPS. Calls made over plain HTTP will fail.
Users
The Users object represents an individual user in your organization. You can create, retrieve, update, and delete users through the API.
Retrieves a paginated list of all users in your organization.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (default: 1) |
| limit | integer | Number of items per page (default: 20, max: 100) |
| search | string | Search users by name or email |
| status | string | Filter by status: active, inactive, suspended |
Response Example (200 OK)
{
"data": [
{
"id": "usr_1a2b3c4d5e",
"email": "[email protected]",
"name": "John Doe",
"role": "member",
"status": "active",
"avatar_url": "https://cdn.meeeasy.com/avatars/john.jpg",
"created_at": "2025-01-15T10:30:00Z",
"last_active": "2025-12-10T14:22:00Z",
"meetings_count": 48,
"total_meeting_hours": 32.5
}
],
"pagination": {
"current_page": 1,
"total_pages": 5,
"total_items": 94,
"items_per_page": 20
}
}
Creates a new user in your organization.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | Required | User's email address (must be unique) | |
| name | string | Required | User's full name |
| role | string | Optional | User role: member, admin, manager (default: member) |
| department | string | Optional | User's department |
curl -X POST https://api.meeeasy.com/v2/users \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"name": "Jane Smith",
"role": "member",
"department": "Engineering"
}'
Action Items
Extract and manage action items from meeting transcripts. AI automatically identifies tasks, decisions, and follow-ups with assignees and due dates.
Creates a new action item from a meeting or manually adds one.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| meeting_id | string | Required | ID of the meeting this action item belongs to |
| title | string | Required | Description of the action item |
| assignee_id | string | Optional | User ID of the person responsible |
| due_date | string | Optional | ISO 8601 date for completion deadline |
Response Example (201 Created)
{
"id": "act_9x8y7z6w5v",
"meeting_id": "mtg_1a2b3c4d5e",
"title": "Update Q1 sales forecast and share with team",
"assignee_id": "usr_abc123def",
"assignee_name": "Sarah Johnson",
"due_date": "2025-12-15T17:00:00Z",
"status": "pending",
"created_at": "2025-12-10T15:30:00Z",
"priority": "high",
"source": "ai_extracted"
}
Webhooks
Webhooks allow you to receive real-time notifications about events in your organization. Configure webhook endpoints in your dashboard to receive POST requests when events occur.
Available Events
| Event | Description |
|---|---|
| user.created | Triggered when a new user is created |
| meeting.completed | Triggered when a meeting ends and processing completes |
| transcript.ready | Triggered when meeting transcript is ready |
| summary.generated | Triggered when AI summary is generated |
| action_item.created | Triggered when a new action item is created |
{
"event": "meeting.completed",
"timestamp": "2025-12-10T15:30:00Z",
"data": {
"meeting_id": "mtg_9x8y7z6w5v",
"title": "Q1 Planning Session",
"duration_minutes": 45,
"participants": [
{
"id": "usr_1a2b3c4d5e",
"email": "[email protected]",
"name": "John Doe"
}
],
"transcript_url": "https://api.meeeasy.com/v2/transcripts/trn_abc123",
"summary_url": "https://api.meeeasy.com/v2/summaries/sum_xyz789"
}
}
Error Codes
MeeEasy uses conventional HTTP response codes to indicate the success or failure of an API request.
| Code | Description |
|---|---|
| 200 | OK - Request succeeded |
| 201 | Created - Resource successfully created |
| 400 | Bad Request - Invalid request parameters |
| 401 | Unauthorized - Invalid or missing API key |
| 403 | Forbidden - API key doesn't have permissions |
| 404 | Not Found - Resource doesn't exist |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error - Something went wrong |
{
"error": {
"code": "invalid_request",
"message": "The email field is required",
"param": "email",
"type": "validation_error"
}
}