Skip to content
Transcriber Tests

GEThttps://core-api.heysadie.ai/transcriber-banks/{id}

id windowDays success data bank organizationId name languageLabel threshold controlLinesPerFlag candidates createdBy createdAt updatedAt live transcriberId lines window days turns flagged controls scores role accuracy matched scored errors meanWer leader clearsThreshold metadata timestamp version path error code message details field

Get a bank's card

One bank's card, as GET /transcriber-banks has it, read fresh rather than cached. Use it for a bank page header. Errors: 404 RESOURCE_NOT_FOUND when the bank is not in the organization.

Try it in the API Explorer

Example request

Terminal
curl "https://core-api.heysadie.ai/transcriber-banks/TRANSCRIBER_BANK_ID" \
  -H "Authorization: ApiKey YOUR_API_KEY"

Authentication

Authenticate with an API key in the Authorization header using the ApiKey scheme. See Authentication for how keys work and where to get them.

Authorizationstringrequired

API key in the ApiKey scheme: ApiKey YOUR_API_KEY. Tenant keys authorize their own tenant; organization keys can act on any tenant in the organization.

X-Tenant-Idstring (uuid)optional

Required when authenticating with an organization key: it selects the tenant the request acts on. Omit with tenant keys.

Request

Path parameters

idstringrequired

A live bank of the organization

Query parameters

windowDaysstringoptional

Days back from now, by turn creation, the scores cover. 1 to 90, default 30

Responses

200The bank's card
successbooleanrequired

true on every 2xx

dataobjectoptional

The result

Show 1 child properties
bankobjectrequired

A Results card: the bank, the live transcribers of its window's turns, every score over them, and the leading candidate

Show 14 child properties
idstringrequired

Bank id

organizationIdstringrequired

The organization that owns the bank

namestringrequired

Unique among the organization's banks, ignoring case, e.g. "English"

languageLabelstringrequired

Display only, e.g. "en-US" or "en + fr"

thresholdnumberrequired

Accuracy, 0 to 1, a candidate must reach to clear the bank. `leader.clearsThreshold` compares against it

controlLinesPerFlagenumrequired

Unflagged caller lines of the same call sampled as controls with each flag created in the bank (POST /turn-flags with `bankId`; a flag moved in later gets none): 0, 1 or 2. A control's expected text is the live transcriber's own text, so controls show what a candidate breaks on lines production got right

Allowed values:012
candidatesobject[]required

The transcribers under test, in display order, at most 8. A candidate replays the flagged and control turns that join the bank while it is a candidate; older turns only through a backfill (PUT /transcriber-banks/:id/candidates with `backfill: true`) within its window

Show 2 item properties
idstringrequired

Transcriber id, as GET /transcribers lists it

namestringrequired

The transcriber's display name

createdBystring | nullrequired

Who made it, as the creating request named them in an `X-On-Behalf-Of` header. Null when it sent none

createdAtstring (date-time) | string (date) | number | nullrequired

When it was created, UTC

updatedAtstring (date-time) | string (date) | number | nullrequired

When it last changed, UTC

liveobject[]required

The live transcribers of the bank's flagged and control turns in the window, most lines first

Show 3 item properties
transcriberIdstringrequired

A live transcriber

namestringrequired

Its display name

linesstring (integer) | integerrequired

The bank's flagged and control turns in the window whose call ran on this transcriber

windowobjectrequired

The turns the scores cover

Show 4 child properties
daysstring (integer) | integerrequired

The window, in days back from now

turnsstring (integer) | integerrequired

flagged + controls

flaggedstring (integer) | integerrequired

Flagged turns of the bank created in the window

controlsstring (integer) | integerrequired

Control turns of the bank created in the window

scoresobject[]required

Every candidate by position, then one production row per live transcriber with an attempt in the window, most scored first

Show 8 item properties
transcriberIdstringrequired

The transcriber scored

namestringrequired

The transcriber's display name

roleenumrequired

candidate: a transcriber under test. production: a live transcriber, scored on its stored call text

Allowed values:"candidate""production"
accuracynumber | nullrequired

matched / scored, 0 to 1. Null until the first scored attempt

matchedstring (integer) | integerrequired

Scored attempts that match

scoredstring (integer) | integerrequired

Attempts with text and a match verdict

errorsstring (integer) | integerrequired

Failed attempts, left out of `scored`

meanWernumber | nullrequired

Mean word error rate over the scored attempts, 4 decimals. Null until the first scored attempt

leaderobject | nullrequired

The scored candidate with the highest accuracy, then the lower mean WER, then the earlier position. Full-call runs default to the leader over the last 30 days, whatever window this card covers. Null until a candidate has a scored attempt

Show 3 child properties
transcriberIdstringrequired

The leading candidate

accuracynumberrequired

Its accuracy, 0 to 1

clearsThresholdbooleanrequired

accuracy >= the bank's threshold

metadataobjectoptional

Request metadata

Show 3 child properties
timestampstringrequired

When the server answered, ISO 8601 UTC

versionstringrequired

API version

pathstringoptional

The URL that was requested

400VALIDATION_ERROR: a path id, query parameter or body field broke a rule; `details` lists each `field` and its `message`. A body with a missing field or a JSON type the schema does not allow answers 400 with code INTERNAL_SERVER_ERROR and no `details` instead, so branch on the status
successbooleanrequired

false on every error

errorobjectoptional

What went wrong: a stable `code` to branch on and a human-readable `message`

Show 3 child properties
codeenumrequired

A parameter or body field broke a rule

Allowed values:"VALIDATION_ERROR"
messagestringrequired

Human-readable explanation. Do not parse it; branch on `code`

detailsobject[]optional

One entry per field that failed

Show 2 item properties
fieldstringrequired

The offending field

messagestringrequired

The rule it broke

metadataobjectoptional

Request metadata

Show 3 child properties
timestampstringrequired

When the server answered, ISO 8601 UTC

versionstringrequired

API version

pathstringoptional

The URL that was requested

401UNAUTHORIZED: no valid credentials, or a dashboard token that names no organization. Send `Authorization: ApiKey <organization API key>`
successbooleanrequired

false on every error

errorobjectoptional

What went wrong: a stable `code` to branch on and a human-readable `message`

Show 2 child properties
codeenumrequired

No valid credentials

Allowed values:"UNAUTHORIZED"
messagestringrequired

Human-readable explanation. Do not parse it; branch on `code`

metadataobjectoptional

Request metadata

Show 3 child properties
timestampstringrequired

When the server answered, ISO 8601 UTC

versionstringrequired

API version

pathstringoptional

The URL that was requested

403ORG_SCOPE_REQUIRED: transcriber testing is an organization feature. Use an organization API key without `X-Tenant-Id`, or a dashboard token scoped to the organization. A tenant API key, an organization key sent with `X-Tenant-Id` for one of its tenants, or a token carrying a tenant gets this 403. FORBIDDEN: an organization key sent `X-Tenant-Id` for a tenant outside its organization
successbooleanrequired

false on every error

errorobjectoptional

What went wrong: a stable `code` to branch on and a human-readable `message`

Show 2 child properties
codeenumrequired

ORG_SCOPE_REQUIRED: the credentials carry a tenant scope. FORBIDDEN: an organization key sent `X-Tenant-Id` for a tenant outside its organization

Allowed values:"ORG_SCOPE_REQUIRED""FORBIDDEN"
messagestringrequired

Human-readable explanation. Do not parse it; branch on `code`

metadataobjectoptional

Request metadata

Show 3 child properties
timestampstringrequired

When the server answered, ISO 8601 UTC

versionstringrequired

API version

pathstringoptional

The URL that was requested

404RESOURCE_NOT_FOUND: an id in the path, query or body names nothing in the caller's organization. `message` names what, e.g. "Transcriber bank not found"
successbooleanrequired

false on every error

errorobjectoptional

What went wrong: a stable `code` to branch on and a human-readable `message`

Show 2 child properties
codeenumrequired

An id names nothing the caller can see

Allowed values:"RESOURCE_NOT_FOUND"
messagestringrequired

Human-readable explanation. Do not parse it; branch on `code`

metadataobjectoptional

Request metadata

Show 3 child properties
timestampstringrequired

When the server answered, ISO 8601 UTC

versionstringrequired

API version

pathstringoptional

The URL that was requested

500An unexpected server error
successbooleanrequired

false on every error

errorobjectoptional

What went wrong: a stable `code` to branch on and a human-readable `message`

Show 2 child properties
codeenumrequired

An unexpected server failure

Allowed values:"INTERNAL_SERVER_ERROR"
messagestringrequired

Human-readable explanation. Do not parse it; branch on `code`

metadataobjectoptional

Request metadata

Show 3 child properties
timestampstringrequired

When the server answered, ISO 8601 UTC

versionstringrequired

API version

pathstringoptional

The URL that was requested