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",
});Pass context data directly in the run request. The values are used for that run only and are not saved as a reusable context.
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-news-article",
"file_ids": ["file_xyz789"],
"context": {
"claimed_source_url": "https://example.com/breaking-story",
"claimed_publication_date": "2024-11-15"
}
}'const run = await crowdee.verificationRuns.create("proj_abc123", {
pipeline_id: "verify-news-article",
file_ids: ["file_xyz789"],
context: {
claimed_source_url: "https://example.com/breaking-story",
claimed_publication_date: "2024-11-15",
},
});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?
Verification Runs API
Start pipeline runs, poll status, retrieve verdicts, and list run history.
Organizations API
Manage organization settings, list and invite members, check balance, and configure modules.