Skip to main content

Overview

The Lyra API lets you programmatically create meetings, manage webhook subscriptions, and verify authentication tokens. The API follows REST conventions and uses JSON for request and response bodies. All requests are authenticated via Bearer tokens — either an API key or an OAuth access token.

Base URL

https://app.lyra.so/api/v1

Quick Start

1

Generate an API Key

Navigate to Settings → Developers → API Keys in your Lyra dashboard and click Create API Key.Give your key a descriptive name, then copy the generated key immediately — it will only be shown once.
API Keys settings page
Store your API key securely. Lyra only stores a hash of the key — if you lose it, you’ll need to create a new one.
2

Verify Your Key

Test your API key by calling the authentication endpoint:
curl -X POST "https://app.lyra.so/api/v1/auth" \
  -H "Authorization: Bearer lyra_your_api_key"
You should see a successful response:
{
  "valid": true,
  "userId": "user_abc123",
  "orgId": "org_xyz789"
}
3

Create Your First Meeting

Use the Create Meeting endpoint:
curl -X POST "https://app.lyra.so/api/v1/meeting" \
  -H "Authorization: Bearer lyra_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Customer kickoff",
    "start": "2026-04-01T15:00:00.000Z",
    "attendees": ["alex@acme.com", "sam@acme.com"]
  }'
The response includes a join URL for the meeting:
{
  "type": "lyra_video",
  "id": "meeting_123",
  "password": "",
  "url": "https://app.lyra.so/meeting/abc-def-ghi"
}

Authentication

All API requests require an Authorization header with a Bearer token.
Authorization: Bearer <token>
Lyra supports two types of tokens:
TypePrefixScopesBest for
API Keylyra_Full access (all endpoints)Server-to-server integrations
OAuth Tokenlyra_oauth_Limited by granted scopesThird-party apps acting on behalf of users
API keys have unrestricted access to all endpoints. If you need scoped permissions or are building an integration for other Lyra users, use OAuth instead.

Error Handling

The API uses standard HTTP status codes. Error responses include an error field with a human-readable message.
StatusMeaning
400Invalid request body or parameters
401Missing or invalid authentication token
403Token is valid but lacks the required scope (OAuth only)
404Resource not found
500Internal server error
{
  "error": "Insufficient scope. Required: meeting.create"
}

Need Help?

OAuth

Set up OAuth for third-party integrations with scoped permissions

Support

Reach out to the Lyra team for assistance