Skip to main content

Jamy Meeting Data Export API

Version: 1.0 API Type: Read-only REST API Authentication: Bearer Token Base URL: https://app.jamy.ai/

Written By Tuba Raj

Last updated About 4 hours ago

1. Introduction

The Jamy Meeting Data Export API allows you to programmatically retrieve your meeting data and integrate it with your own applications, databases, CRMs, data warehouses, or internal systems.

With this API, you can:

  • Retrieve a list of your meetings.

  • Export complete meeting information.

  • Access meeting summaries, transcripts, and action items.

  • Retrieve meeting topics and reports.

  • Download meeting recordings.

  • Synchronize newly created or updated meetings.

  • Manage your API credentials through Jamy.

The API provides read-only access to your meeting data. You can retrieve and export information without modifying or deleting anything in your Jamy account.

2. Getting Started

Step 1: Generate your API key

To start using the API, you need to generate a Meeting Data Export API key.

  1. Log in to your Jamy account.

  2. Navigate to Settings → API Keys.

  3. Locate the Meeting Data Export API section.

  4. Enter a name for your API key.

  5. Click Create export key.

  6. Copy and securely store your generated API key.

Your key will look similar to:

jamy_live_xxxxxxxxxxxxxxxxxxxxxxxxx

Important:

  • Your complete API key is displayed only once during creation.

  • Your key is stored securely, and its original value cannot be retrieved later.

  • If you lose your key, revoke it and generate a new one.

  • You can view your key's name, prefix, and last-used information from the dashboard.

  • You can revoke your API key at any time.

Step 2: Configure authentication

Every API request must include your export key in the HTTP Authorization header.

Required headers:

Authorization: Bearer jamy_live_YOUR_API_KEY Accept: application/json

Your Meeting Data Export API key is separate from your existing Jamy Settings API key.

Use the export key for all endpoints documented in this guide.

Step 3: API configuration

All requests use the following production base URL:

https://api.jamy.ai

For example, the meeting list endpoint is:

https://api.jamy.ai/v1/export/meetings/

3. Available API Endpoints

Method

Endpoint

Description

GET

/v1/export/meetings/

Retrieve a list of meetings

GET

/v1/export/meetings/{meeting_id}/

Retrieve complete meeting details

Both endpoints require a valid Meeting Data Export API key.

4. Retrieve Your Meetings

Endpoint

GET /v1/export/meetings/

Retrieve a paginated list of meetings available to your Jamy account.

This endpoint returns meeting metadata rather than the complete meeting content. To retrieve transcripts, summaries, and recordings, use the individual meeting details endpoint.

Request parameters

Parameter

Type

Required

Description

limit

Integer

No

Number of meetings to return. Default: 20. Maximum: 100.

cursor

String

No

Cursor used to retrieve the next page of results.

updated_after

ISO 8601 datetime

No

Return meetings updated after the specified timestamp.

Example request: Retrieve the latest 20 meetings

Request URL

GET https://api.jamy.ai/v1/export/meetings/?limit=20

cURL

curl --request GET \ --url "https://api.jamy.ai/v1/export/meetings/?limit=20" \ --header "Authorization: Bearer jamy_live_YOUR_API_KEY" \ --header "Accept: application/json"

Example response

HTTP Status: 200 OK

  "results": [
    {
      "id": "meeting_123",
      "name": "Product Strategy Meeting",
      "start_time": "2026-11-03T09:00:00Z",
      "created_at": "2026-11-03T09:00:00Z",
      "updated_at": "2026-11-03T10:30:00Z",
      "duration": 3600,
      "status": "completed",
      "platform": "Google Meet",
      "participants": [
        "john@example.com",
        "sarah@example.com"
      ],
      "content_flags": {
        "has_transcript": true,
        "has_recording": true
      }
    }
  ],
  "next_cursor": "NEXT_PAGE_CURSOR"
}

Illustrative response. The actual response contains the meeting records available to your account. The example shows the documented fields and pagination concept.

Response field descriptions

Field

Description

id

Unique meeting identifier. Required for retrieving full meeting details.

name

Meeting name.

start_time

Date and time when the meeting started.

created_at

Date and time when the meeting was created.

updated_at

Last update timestamp.

duration

Meeting duration.

status

Meeting processing status.

platform

Platform on which the meeting took place.

participants

List of meeting participants.

content_flags

Indicates which meeting content is available.

next_cursor

Cursor for retrieving the next page, when more results are available.

Note: The meeting list endpoint does not return full transcripts, summaries, or recording download URLs.

5. Retrieve Complete Meeting Details

Endpoint

GET /v1/export/meetings/{meeting_id}/

Retrieve the complete exportable information associated with a specific meeting.

Use the meeting ID obtained from the meeting list endpoint.

Path parameters

Parameter

Type

Required

Description

meeting_id

String

Yes

Unique ID of the meeting you want to export.

Example request

Request URL

GET https://api.jamy.ai/v1/export/meetings/meeting_123/

cURL

curl --request GET \ --url "https://api.jamy.ai/v1/export/meetings/meeting_123/" \ --header "Authorization: Bearer jamy_live_YOUR_API_KEY" \ --header "Accept: application/json"

Example response

HTTP Status: 200 OK

{
  "id": "meeting_123",
  "name": "Product Strategy Meeting",
  "start_time": "2026-11-03T09:00:00Z",
  "duration": 3600,
  "status": "completed",
  "platform": "Google Meet",

  "summary": "The team discussed product development priorities, upcoming releases, and customer feedback.",

  "tasks": [
    {
      "title": "Finalize product roadmap",
      "description": "Prepare the roadmap for the next release."
    },
    {
      "title": "Review customer feedback",
      "description": "Analyze feedback and identify improvements."
    }
  ],

  "topics": [
    "Product roadmap",
    "Customer feedback",
    "Upcoming releases"
  ],

  "transcript": "John: Welcome everyone. Today we will discuss the product roadmap. Sarah: We should prioritize the upcoming release...",

  "transcript_segments": [
    {
      "text": "Welcome everyone.",
      "speaker": "John",
      "start": 0.0,
      "end": 2.5
    },
    {
      "text": "Today we will discuss the product roadmap.",
      "speaker": "John",
      "start": 2.5,
      "end": 5.8
    }
  ],

  "report": {
    "sections": []
  },

  "recording": {
    "url": "https://example.com/signed-recording-url",
    "expires_at": "2026-11-03T10:45:00Z"
  }
}

Illustrative response showing the available content categories. Individual field structures and optional values depend on the actual meeting response.

Response field descriptions

Field

Description

id

Unique meeting identifier.

name

Meeting name.

start_time

Meeting start time.

duration

Meeting duration.

status

Meeting processing status.

platform

Meeting platform.

summary

AI-generated meeting summary.

tasks

Action items identified during the meeting.

topics

Topics discussed during the meeting.

transcript

Full speaker-attributed transcript text.

transcript_segments

Detailed transcript segments, including word-level information.

report

Meeting report and report sections.

recording

Recording information and temporary download URL, when available.

Understanding the transcript

The API provides two transcript representations:

1. Full transcript

The transcript field contains the readable meeting conversation.

You can use it to:

  • Display meeting conversations.

  • Search meeting content.

  • Generate additional insights.

  • Store meeting transcripts in your own database.

2. Transcript segments

The transcript_segments field provides detailed transcript information.

You can use it for:

  • Speaker-level conversation analysis.

  • Word-level transcript processing.

  • Timestamp-based playback synchronization.

  • Building custom meeting transcription interfaces.

6. Download Meeting Recordings

Meeting recordings can be accessed through the recording object returned by the meeting details endpoint.

When a recording is stored in Jamy's private storage, the API provides a temporary signed download URL.

Example recording response

{ "recording": { "url": "https://example.com/signed-recording-url", "expires_at": "2026-11-03T10:45:00Z" } }

Download instructions

  1. Request the meeting details endpoint.

  2. Extract recording.url from the response.

  3. Send an HTTP GET request to that URL.

  4. Save the returned recording file.

Example download request

curl -L \ "SIGNED_RECORDING_URL" \ -o meeting.mp4

Important recording information

  • Signed recording URLs are temporary and expire after approximately 15 minutes.

  • Download your recording as soon as you receive the URL.

  • You do not need access to Jamy's AWS account to download recordings.

  • Do not permanently store signed URLs in your application. Store the downloaded recording instead.

  • For YouTube meetings, the API returns the YouTube URL instead of an S3 signed download URL.

If a signed URL expires before you download the recording, request the meeting details again to obtain a fresh URL.

7. Pagination

If your Jamy account contains a large number of meetings, you can retrieve them in smaller batches using cursor-based pagination.

The default page size is 20 meetings, and the maximum allowed page size is 100.

First request

GET https://api.jamy.ai/v1/export/meetings/?limit=20

If additional results exist, the response provides a next_cursor.

Retrieve the next page

Use the returned cursor in your next request.

GET https://api.jamy.ai/v1/export/meetings/?limit=20&cursor=YOUR_NEXT_CURSOR

Example cURL

curl --request GET \ --url "https://api.jamy.ai/v1/export/meetings/?limit=20&cursor=YOUR_NEXT_CURSOR" \ --header "Authorization: Bearer jamy_live_YOUR_API_KEY" \ --header "Accept: application/json"

Continue requesting subsequent pages until there are no more results.

Important: Always use the cursor returned by the API. Do not generate or modify cursor values yourself.

8. Incremental Synchronization

The Meeting Data Export API supports incremental synchronization through the updated_after parameter.

This allows you to retrieve meetings that have been updated since a particular timestamp instead of repeatedly downloading your entire meeting history.

Example request

GET https://api.jamy.ai/v1/export/meetings/?updated_after=2026-11-01T00:00:00Z

Example cURL

curl --request GET \ --url "https://api.jamy.ai/v1/export/meetings/?updated_after=2026-11-01T00:00:00Z" \ --header "Authorization: Bearer jamy_live_YOUR_API_KEY" \ --header "Accept: application/json"

This retrieves meetings updated after November 1, 2026, at 00:00 UTC.

Recommended synchronization workflow

If you maintain your own meeting database, we recommend the following approach.

Initial synchronization

  1. Request the meeting list endpoint.

  2. Retrieve all pages using cursor pagination.

  3. Store the meeting IDs and metadata in your database.

  4. Request the meeting details endpoint for each meeting you want to import.

  5. Store the complete meeting content in your system.

Subsequent synchronization

  1. Maintain a record of your last successful synchronization timestamp.

  2. Periodically call the meeting list endpoint using updated_after.

  3. Retrieve the meetings that have changed.

  4. Fetch their latest details using the individual meeting endpoint.

  5. Update your local database.

Recommended practices

  • Store timestamps in UTC.

  • Use ISO 8601 timestamp formatting.

  • Keep track of your last successful synchronization.

  • Allow a small overlap between synchronization windows to avoid missing updates near timestamp boundaries.

  • Use meeting IDs as unique identifiers in your database.

  • Process pagination until all available results have been retrieved.

The API provides incremental retrieval based on meeting update timestamps. It does not automatically synchronize data into your application or push updates to your system.

9. Meeting Access and Permissions

The API only returns meetings that you are authorized to access through your Jamy account.

Meeting visibility follows Jamy's existing access permissions.

Organization owners

Organization owners can access meetings belonging to their organization.

Regular users

Regular users can access meetings they:

  • Organized.

  • Participated in.

  • Received.

  • Can access through a Space within the same organization.

If you attempt to retrieve a meeting you are not authorized to access, the API returns 404 Not Found.

Deleted meetings are excluded from meeting listings and cannot be retrieved through the details endpoint.

10. Rate Limits

The Meeting Data Export API enforces rate limits to maintain performance and availability.

Limit

Maximum

Requests per API key

120 per minute

Requests per organization

10,000 per day

If you exceed the applicable limits, your requests may be rate-limited.

We recommend:

  • Avoiding unnecessary repeated requests.

  • Using incremental synchronization instead of repeatedly retrieving your entire meeting history.

  • Implementing retry handling with appropriate delays.

  • Avoiding excessive parallel requests.

11. Error Handling

The API uses standard HTTP status codes to communicate request results.

Status code

Meaning

Recommended action

200 OK

Request successful

Process the returned data.

400 Bad Request

Invalid request or parameter

Check your request parameters.

401 Unauthorized

Missing, invalid, expired, or revoked API key

Verify your export key.

403 Forbidden

Request is not permitted

Check the endpoint and permissions.

404 Not Found

Meeting does not exist or is not accessible

Verify the meeting ID and access permissions.

405 Method Not Allowed

Unsupported HTTP method

Use GET for meeting data.

429 Too Many Requests

Rate limit exceeded

Wait before retrying.

500 Internal Server Error

Unexpected server error

Retry later or contact Jamy support.

When implementing your integration, always check the HTTP response status before processing the response body.

Managing your API keys

You can manage your export keys from:

Jamy → Settings → API Keys → Meeting Data Export API

If you believe your key has been compromised:

  1. Log in to Jamy.

  2. Open the Meeting Data Export API section.

  3. Revoke the affected key.

  4. Generate a new key.

  5. Update your integration with the new credential.

Revoked credentials can no longer authenticate against the Meeting Data Export API.

12. Quick API Reference

Production Base URL

https://api.jamy.ai

Feature

Method

Endpoint

List meetings

GET

/v1/export/meetings/

Get meeting details

GET

/v1/export/meetings/{meeting_id}/

Pagination

GET

/v1/export/meetings/?cursor=...

Limit results

GET

/v1/export/meetings/?limit=20

Incremental sync

GET

/v1/export/meetings/?updated_after=...

Download recording

GET

Temporary signed recording URL

Authentication header

Authorization: Bearer jamy_live_YOUR_API_KEY

Accept header

Accept: application/json

16. Support

If you experience issues integrating with the Meeting Data Export API, contact the Jamy support team.

When reporting an issue, please include:

  • The API endpoint being accessed.

  • The HTTP response status code.

  • The approximate time of the request.

  • The error response, if available.

For security reasons, never share your complete API key, passwords, or temporary signed recording URLs when requesting support.


Jamy Meeting Data Export API

Your meeting data. Your integrations. Your workflow.

Was this helpful?

Still need help? Ask the team