Custom Call Recorder

Last updated: April 20, 2026

Create call recordings in Pylon through the API.

Active custom call recorder

Go to Integrations and Connect the custom app recorder application

To create a new call recording:

POST https://api.usepylon.com/call-recordings

{
    "title": "Call Recording Title",
    "recording_id": "external-recording-id",
    "app_type": "custom_call_recorder",
    "start_time": "2025-01-01T10:00:00Z",
    "end_time": "2025-01-01T10:30:00Z",
    "participant_emails": "user1@example.com,user2@example.com",
    "primary_user_email": "user1@example.com",
    "recording_url": "https://example.com/recording/123",
    "account_id": 
    "call_recording_messages": [
      {
        "message_at_ms": 0,
        "speaker_email": "user1@example.com",
        "speaker_name": "User One",
        "message_content": "Hello, this is the first message"
      },
      {
        "message_at_ms": 5000,
        "speaker_email": "user2@example.com",
        "speaker_name": "User Two",
        "message_content": "This is the second message at 5 seconds"
      },
      {
        "message_at_ms": 10000,
        "speaker_email": "user1@example.com",
        "speaker_name": "User One",
        "message_content": "Third message at 10 seconds"
      }
    ]
  }

Pass in recording_id for de-duping purposes and to link Pylon call recording objects to your external call recorder.

message_at_ms is the timestamp of the speaker's dialogue measured as milliseconds since the beginning of the call

account_id is optional and can be used to manually set an account for a call. Otherwise, the account will be inferred from the emails of the participants.

Using Zapier with the Custom Call Recorder

If you are using Zapier to send call recordings to Pylon, note that the built-in "Create Call Recording" Zapier action does not expose the call_recording_messages field (the transcript lines). Without this field, the API will return an error.

To work around this, use Zapier's Webhooks by Zapier or API Request action to manually build a POST request to https://api.usepylon.com/call-recordings with the full payload including call_recording_messages. Refer to the payload format above for the required fields.