Skip to content

Send what really happened

POST
/v1/calls/{call_id}/outcome
curl --request POST \
--url https://api.pensievelabs.co/v1/calls/cl_seed_grade_01/outcome \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "outcome": "lab_rejected", "note": "Lab found the edited test." }'

Outcomes check every version against reality and catch drift. A later outcome replaces an earlier one. An outcome can arrive before its call: it is kept, and matched when a call with that id is recorded.

call_id
required
string

Example

cl_seed_grade_01
Idempotency-Key
string
<= 255 characters

Any unique string. Sending it again within 24 hours returns the first response.

Media typeapplication/json
object
outcome
required

One of the model’s outcomes, such as lab_rejected.

string
value

An amount that goes with it, such as money lost.

number
occurred_at
string format: date-time
note
string
<= 2000 characters

Example

{
"outcome": "lab_rejected",
"note": "Lab found the edited test."
}

The outcome as recorded.

Media typeapplication/json
object
object
required
Allowed value: outcome
call_id
required
string
outcome
required
string
value
required
number | null
occurred_at
required
string format: date-time
note
required
string | null
received_at
required
string format: date-time

Example

{
"object": "outcome"
}

Something went wrong; error.type says what.

Media typeapplication/json
object
error
required
object
type
required
string
Allowed values: invalid_request authentication permission not_found conflict rate_limit not_available server
message
required
string
param

The request field the error is about.

string | null
request_id
required
string

Example

{
"error": {
"type": "invalid_request"
}
}