Skip to main content
Paraform records and transcribes your calls with Parascribe. Two endpoints read them: one lists your calls, the other returns one call with its full transcript. You need a personal key with calls:read.

List your calls

GET /recruiter/parascribe-calls returns your own recorded calls that have a transcript, newest first.
Each row describes the call so you can pick the right one: Rows never include transcript text. A page holds at most 50 calls (limit, default 20). See Pagination for paging through more than one page.

Get a transcript

GET /recruiter/parascribe-calls/{callId} returns the call’s metadata, its full summary, and the whole transcript.
The transcript is a list of speaker turns in call order:
startSeconds and endSeconds are offsets from the start of the recording. They’re null when the recording has no timestamps. The whole transcript comes back in one response. Speaker labels come from the recording provider. A label can be a name or a generic label such as Speaker A. A label never contains an email address. A speaker the provider identified only by email shows as that person’s name on the calendar invite, or as Unnamed participant when the invite has no name.

Narrow the list

All filters are optional and combine with AND. Results stay newest first. When you page, send the same filters with each cursor.

Search by title, summary, or name

query searches the call title, the call summary, and the linked candidate’s name, ignoring case. Every word must appear in one of them, so jane intro finds the intro call with Jane. It doesn’t search the transcript.

Calls in a time window

scheduledAfter (inclusive) and scheduledBefore (exclusive) take a full ISO 8601 timestamp with a timezone, such as 2026-10-01T00:00:00Z or 2026-10-01T00:00:00-07:00. A date without a time or timezone returns 400, and so does a scheduledAfter at or after scheduledBefore.

Every call with one candidate

First find the candidate’s candidateId with GET /recruiter/candidates, for example by LinkedIn profile link or email. That lookup needs candidates:read on the key as well. Then pass it to the list:

Calls for one role

roleId keeps the calls linked to that role. Most calls aren’t linked to a role, so expect few results. A candidate or role with none of your calls returns an empty list, not an error.

What you can read

  • Only your own calls. Calls your agency teammates recorded are never included, even if you can see them in the app. There’s no parameter for reading another recruiter’s calls.
  • Only transcribed calls. A call that is still processing, or has no transcript, isn’t listed.
  • No participant emails. Calls carry names only.
Transcripts contain what candidates said about themselves. They also include internal meetings you recorded. Any key with calls:read can read them, so only add that scope when a tool needs calls, store the key securely, and only give it to tools you trust.

Errors

See Errors for the envelope.