---
title: "Upload a call"
method: POST
path: "/calls"
tags: ["Calls"]
---

# Upload a call

`POST /calls`

Upload a call to Modjo via a recording URL. Modjo will download the recording asynchronously. The call becomes visible within a few seconds. Typical total processing time: 5-30 minutes. The callId in the response is a UUID, usable with GET /v1/calls/:id.

## Request body

- UploadCallRequest
  - `downloadMediaUrl` string, uri, required — Publicly accessible recording URL. Modjo will download the file from this URL.
  - `name` string — Call title. If omitted, auto-generated from participant names.
  - `date` string, date-time, required — Call start datetime in ISO 8601 format
  - `direction` 'inbound' | 'outbound' — Call direction. Defaults to outbound.
  - `duration` number — Call duration in seconds. Can be 0 or omitted.
  - `participants` object[], required — List of call participants. At least one participant of type "user" must map to a licensed user
    - `email` string, email, required — Participant email address
    - `name` string — Participant display name
    - `type` 'user' | 'contact', required — Participant type: "user" for internal team members, "contact" for external participants
  - `tags` string[] — Tag names to attach to the call
  - `account` object — Link the call to a CRM account directly
    - `crm` string, required — CRM provider name (e.g. salesforce, hubspot)
    - `crmId` string, required — CRM account ID
  - `deal` object — Link the call to a CRM deal directly
    - `crm` string, required — CRM provider name (e.g. salesforce, hubspot)
    - `crmId` string, required — CRM deal/opportunity ID

## Response `202`

Call accepted for processing

- UploadCallResponse
  - `callId` string, uuid, required — UUID of the created call. Use with GET /calls/{id} to poll for processing status.
  - `status` 'processing', required — Call is queued for async processing

## Other responses

- `400` — Invalid request. At least one participant of type "user" mapping to a licensed user is required.
- `401` — Authentication failed. The API key is missing or invalid.
- `429` — Rate limit exceeded. Retry after the X-RateLimit-Reset interval.

---

[API](https://skmtc.dev/modjo/apis/modjo-public-api.md) · [All operations](https://skmtc.dev/modjo/apis/modjo-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/modjo/modjo-public-api/revisions/dcae8b3284e8/schema)
