> ## Documentation Index
> Fetch the complete documentation index at: https://developer.meetergo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Build scheduling into your application with the meetergo Platform API

The meetergo Platform API lets you integrate scheduling directly into your application. Create users, manage availability, handle bookings, and connect calendars—all programmatically.

## Base URL

All API requests should be made to:

```
https://api.meetergo.com/v4
```

## Interactive Documentation

Explore the full API with our interactive Swagger UI:

<Card title="API Specification" icon="book-open" href="https://api.meetergo.com/spec/v2">
  Browse endpoints, see schemas, and test API calls
</Card>

## API Access Levels

meetergo offers two types of API access:

<CardGroup cols={2}>
  <Card title="Personal Access Token" icon="user">
    **Essentials plan and above**

    Acts as you, with your role's permissions. An admin's token can read and manage workspace-wide data. Ideal for Zapier, CRM syncs, and workspace automations.

    [Get your token →](https://my.meetergo.com/integrations)
  </Card>

  <Card title="Platform API Key" icon="building">
    **Enterprise / API Platform**

    Full access for building multi-tenant applications, creating users programmatically, and white-label integrations.

    [Contact sales →](https://cal.meetergo.com/team/sales/democall)
  </Card>
</CardGroup>

See [Authentication](/developer-docs/authentication) for detailed comparison and permissions.

## Core API Resources

| Resource         | Description                                                                                                                                                                             |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **User**         | The root resource for a schedulable person. All other resources are associated with a User.                                                                                             |
| **Meeting Type** | A template defining the rules for a meeting, such as its title and duration. When a time slot is booked, it's booked against a specific Meeting Type.                                   |
| **Availability** | Defines a user's schedule. Composed of a recurring weekly template with date-based exceptions (holidays, custom hours). The meetergo engine uses this to calculate bookable time slots. |
| **Booking**      | Represents a meeting scheduled on a user's calendar. Links a Meeting Type to a specific time slot with attendee information.                                                            |

## Authentication

Both credentials go in the `Authorization` header:

```bash theme={null}
# Personal Access Token (acts as you)
Authorization: Bearer rgo-...

# Platform API Key (acts on behalf of a chosen user)
Authorization: Bearer ak_live:<uuid>:<secret>
```

With a Platform API Key, most endpoints also require the `x-meetergo-api-user-id` header to choose the acting user. Personal Access Tokens never use this header:

```bash theme={null}
x-meetergo-api-user-id: <user-uuid>
```

<Warning>
  Credentials are shown only once when created. Store them securely—you cannot retrieve them later.
</Warning>

See [Authentication](/developer-docs/authentication) for complete details.

## Quick Example

Create a fully functional platform user in a single API call:

```bash theme={null}
curl -X POST "https://api.meetergo.com/v4/user" \
  -H "Authorization: Bearer ak_live:uuid:secret" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "john.smith@example.com",
    "givenName": "John",
    "familyName": "Smith",
    "timezone": "Europe/London"
  }'
```

Response:

```json theme={null}
{
  "userId": "550e8400-e29b-41d4-a716-446655440000",
  "availabilityId": "660e8400-e29b-41d4-a716-446655440001",
  "meetingTypeId": "770e8400-e29b-41d4-a716-446655440002",
  "bookingUrl": "https://cal.meetergo.com/john-smith/30min-meeting",
  "companyId": "880e8400-e29b-41d4-a716-446655440003"
}
```

<Check>
  The user is immediately ready for bookings! The `bookingUrl` can be shared with customers right away.
</Check>

## Rate Limits

| Limit Type      | Value                           |
| --------------- | ------------------------------- |
| Standard rate   | 100 requests/minute per API key |
| Burst allowance | Up to 200 requests              |

When rate limited, you'll receive `429 Too Many Requests`. Implement exponential backoff for retries.

## Error Handling

| Code  | Meaning                              |
| ----- | ------------------------------------ |
| `200` | Success                              |
| `201` | Created                              |
| `400` | Bad Request - Invalid input          |
| `401` | Unauthorized - Invalid API key       |
| `403` | Forbidden - Insufficient permissions |
| `404` | Not Found                            |
| `429` | Rate Limited                         |
| `500` | Server Error                         |

### Error Response Format

```json theme={null}
{
  "statusCode": 400,
  "message": "Validation failed",
  "errors": [
    {
      "field": "email",
      "message": "Invalid email format"
    }
  ]
}
```

## Support

<CardGroup cols={2}>
  <Card title="Interactive Docs" icon="book" href="https://api.meetergo.com/spec/v2">
    Explore the full API specification
  </Card>

  <Card title="API Support" icon="headset" href="mailto:api-support@meetergo.com">
    Contact our API support team
  </Card>
</CardGroup>
