Consent link status
GET
/api/outside-app/status/{request_id}Use this endpoint to poll the current state of a consent link request. When consent has been completed, the response includes the action the user chose.
Authentication
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
request_id | string | Yes | The request_id returned when the link was created |
Response
200 OK
| Field | Type | Description |
|---|---|---|
request_id | string | The identifier for this consent request |
status | string | Current state of the request: pending, completed, or expired |
is_verified | boolean | true if the data principal completed OTP verification |
completed_at | string | ISO 8601 timestamp of when consent was submitted. null if not yet completed. |
consent_action | string | The action the data principal chose (for example, approved or declined). null if consent has not been completed. |
Errors
| Status | Description |
|---|---|
400 | Tenant context could not be resolved from the provided token |
404 | No consent request found for the given request_id |
500 | Unexpected internal error |
Examples
curl --request GET \ --url https://api.truConsent.io/api/outside-app/status/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \ --header 'Authorization: Bearer <token>'Pending — the link has been sent but consent has not been submitted yet.
{ "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "status": "pending", "is_verified": false, "completed_at": null, "consent_action": null}Completed — the data principal submitted their consent decision.
{ "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "status": "completed", "is_verified": true, "completed_at": "2026-04-21T09:47:32+00:00", "consent_action": "approved"}Expired — the link’s validity period elapsed before consent was submitted.
{ "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "status": "expired", "is_verified": false, "completed_at": null, "consent_action": null}