Verification Contexts API
Create and manage reusable named context sets that supply contextual claims to pipeline runs.
Verification contexts are named key-value stores attached to a project. They supply claimed metadata — source URL, publication date, speaker identity, geographic location, and so on — to pipeline runs. Pipelines use this context to evaluate whether the file's content matches the provided claims.
Saving a context avoids repeating the same values across multiple runs. Each run stores a snapshot of the context data used at execution time, so updating a context does not retroactively affect past results.
Endpoint Reference
| Method | Path | Description |
|---|---|---|
POST | /v2/projects/{projectId}/verification-contexts | Create a context |
GET | /v2/projects/{projectId}/verification-contexts | List project contexts |
GET | /v2/verification-contexts | List all org-level contexts |
GET | /v2/projects/{projectId}/verification-contexts/{contextId} | Get a context |
PUT | /v2/projects/{projectId}/verification-contexts/{contextId} | Update a context |
DELETE | /v2/projects/{projectId}/verification-contexts/{contextId} | Delete a context |
Create a Context
POST /v2/projects/{projectId}/verification-contexts
Request body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Human-readable label for the context |
description | string | No | Optional note about the context's purpose |
data | object | Yes | Key-value pairs of contextual claims |
The keys in data must match the requiredContextKeys declared by the pipeline you intend to run. Check the pipeline catalog for the exact key names.
curl -X POST https://api.crowdee.ai/v2/projects/proj_abc123/verification-contexts \
-H "X-API-Key: crw_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Reuters Article — Oct 28 Protest",
"description": "Claimed provenance for the photo bundle from the Berlin protest coverage",
"data": {
"claimed_source_url": "https://www.reuters.com/world/europe/berlin-protest-2024-10-28",
"claimed_publication_date": "2024-10-28",
"claimed_author": "Reuters Editorial Staff",
"claimed_location": "Berlin, Germany",
"claimed_event": "Berlin climate protest"
}
}'Response
{
"id": "ctx_abc123",
"projectId": "proj_abc123",
"name": "Reuters Article — Oct 28 Protest",
"description": "Claimed provenance for the photo bundle from the Berlin protest coverage",
"data": {
"claimed_source_url": "https://www.reuters.com/world/europe/berlin-protest-2024-10-28",
"claimed_publication_date": "2024-10-28",
"claimed_author": "Reuters Editorial Staff",
"claimed_location": "Berlin, Germany",
"claimed_event": "Berlin climate protest"
},
"createdAt": "2024-11-15T10:05:00Z",
"updatedAt": "2024-11-15T10:05:00Z"
}Using a Context in a Run
You can supply context to a verification run in two ways:
Reference a saved context by its ID. This is the recommended approach when the same context will be reused across multiple runs.
curl -X POST https://api.crowdee.ai/v2/projects/proj_abc123/verification-runs \
-H "X-API-Key: crw_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"pipeline_id": "verify-image-deep",
"file_ids": ["file_xyz789"],
"context_id": "ctx_abc123"
}'const run = await crowdee.verificationRuns.create("proj_abc123", {
pipeline_id: "verify-image-deep",
file_ids: ["file_xyz789"],
context_id: "ctx_abc123",
});List Contexts
GET /v2/projects/{projectId}/verification-contexts
curl "https://api.crowdee.ai/v2/projects/proj_abc123/verification-contexts?limit=50" \
-H "X-API-Key: crw_YOUR_API_KEY"To see all contexts across every project in your organization, use the org-level endpoint:
curl https://api.crowdee.ai/v2/verification-contexts \
-H "X-API-Key: crw_YOUR_API_KEY"Get a Context
GET /v2/projects/{projectId}/verification-contexts/{contextId}
curl https://api.crowdee.ai/v2/projects/proj_abc123/verification-contexts/ctx_abc123 \
-H "X-API-Key: crw_YOUR_API_KEY"Update a Context
PUT /v2/projects/{projectId}/verification-contexts/{contextId}
Send a partial data object — only the keys you provide are updated. To remove a key, set its value to null.
Updating a context does not affect already-completed runs. Each run stores a snapshot of the context data at the time of execution, so historical results remain accurate and auditable.
curl -X PUT https://api.crowdee.ai/v2/projects/proj_abc123/verification-contexts/ctx_abc123 \
-H "X-API-Key: crw_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Reuters Article — Oct 28 Protest (corrected)",
"data": {
"claimed_author": "Hans Müller",
"claimed_event": "Berlin climate and housing protest"
}
}'Delete a Context
DELETE /v2/projects/{projectId}/verification-contexts/{contextId}
Deleting a context does not affect existing run history. Completed runs that referenced this context retain their snapshot of the data.
curl -X DELETE \
https://api.crowdee.ai/v2/projects/proj_abc123/verification-contexts/ctx_abc123 \
-H "X-API-Key: crw_YOUR_API_KEY"Returns 204 No Content on success.
How is this guide?