Crowdee
API Reference

Verification Runs API

Start pipeline runs, poll status, retrieve verdicts, and list run history.

A verification run executes one pipeline against a set of files and optional context data. The run progresses through one or more stages — AI analysis, crowd review, or both — and produces a final verdict with confidence score and scorecard.

Endpoint Reference

MethodPathDescription
POST/v2/projects/{projectId}/verification-runsStart a verification run
GET/v2/projects/{projectId}/verification-runsList runs
GET/v2/projects/{projectId}/verification-runs/{runId}Get run with stage detail

Start a Verification Run

POST /v2/projects/{projectId}/verification-runs

Request body

FieldTypeRequiredDescription
pipeline_idstringYesPipeline slug, e.g. "verify-image-metadata"
file_idsstring[]DependsIDs of files to include; required by most pipelines
context_idstringDependsID of a saved verification context
contextobjectDependsInline context key-value pairs (not saved)

Context requirements vary by pipeline. Check the pipeline's requiredContextKeys before starting a run. See Pipelines for the full catalog.

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/article-123",
      "claimed_publication_date": "2024-10-28",
      "claimed_author": "Jane Doe"
    }
  }'

Response

{
  "id": "run_def456",
  "projectId": "proj_abc123",
  "pipelineId": "verify-news-article",
  "status": "running",
  "fileIds": ["file_xyz789"],
  "createdAt": "2024-11-15T10:02:00Z"
}

Save the id — you will poll it to retrieve the verdict.

Run Status Values

StatusMeaning
pendingRun created, queued for execution
runningStages currently executing
awaiting_crowdWaiting for crowd stage responses (Tier 2/3 pipelines only)
completedAll stages done; verdict available
failedOne or more stages errored; check the error field

Get a Run

GET /v2/projects/{projectId}/verification-runs/{runId}

Returns the full run object including individual stage results once the run reaches completed status.

curl https://api.crowdee.ai/v2/projects/proj_abc123/verification-runs/run_def456 \
  -H "X-API-Key: crw_YOUR_API_KEY"

Response — in progress

{
  "id": "run_def456",
  "pipelineId": "verify-news-article",
  "status": "running",
  "fileIds": ["file_xyz789"],
  "stages": [
    {
      "slug": "source-credibility",
      "type": "ai",
      "order": 1,
      "status": "completed",
      "verdict": "authentic",
      "confidence": 88,
      "summary": "Source domain has strong credibility signals and consistent publication history."
    },
    {
      "slug": "content-coherence",
      "type": "ai",
      "order": 2,
      "status": "running",
      "verdict": null,
      "confidence": null,
      "summary": null
    }
  ],
  "createdAt": "2024-11-15T10:02:00Z"
}

Response — completed

{
  "id": "run_def456",
  "pipelineId": "verify-news-article",
  "status": "completed",
  "verdict": "authentic",
  "confidence": 87,
  "scorecard": {
    "source_credibility": 88,
    "content_coherence": 91,
    "fact_consistency": 82,
    "crowd_validation": 85
  },
  "explanation": "The article's claims are consistent with identified primary sources. The publication date and byline match public records. Crowd reviewers confirmed factual accuracy with high confidence.",
  "report": "...",
  "fileIds": ["file_xyz789"],
  "stages": [
    {
      "slug": "source-credibility",
      "type": "ai",
      "order": 1,
      "status": "completed",
      "verdict": "authentic",
      "confidence": 88,
      "summary": "Source domain has strong credibility signals and consistent publication history."
    },
    {
      "slug": "content-coherence",
      "type": "ai",
      "order": 2,
      "status": "completed",
      "verdict": "authentic",
      "confidence": 91,
      "summary": "Internal narrative is consistent. No contradictions found between headline, body, and cited sources."
    },
    {
      "slug": "crowd-fact-check",
      "type": "crowd",
      "order": 3,
      "status": "completed",
      "verdict": "authentic",
      "confidence": 85,
      "summary": "12 crowd reviewers reached consensus: claims verified against 4 independent sources."
    }
  ],
  "createdAt": "2024-11-15T10:02:00Z",
  "completedAt": "2024-11-15T11:15:22Z"
}

Possible verdict values: authentic, manipulated, inconclusive, unverified

Polling for Completion

Poll GET /v2/projects/{projectId}/verification-runs/{runId} until status is completed or failed.

Pipeline tierPoll interval
Tier 1 (AI-only)Every 5–10 seconds
Tier 2 (AI + Crowd)Every 30–60 seconds
Tier 3 (Context / multi-file)Every 10–60 seconds

For Tier 2 pipelines, the run may stay in awaiting_crowd for extended periods while crowd workers complete their review tasks. Implement idempotent polling and consider running it as a background job rather than blocking a synchronous request. Crowd stages typically complete within 1–4 hours, depending on task complexity and available workers.

# Keep polling until status is completed or failed
while true; do
  RESPONSE=$(curl -s https://api.crowdee.ai/v2/projects/proj_abc123/verification-runs/run_def456 \
    -H "X-API-Key: crw_YOUR_API_KEY")
  STATUS=$(echo $RESPONSE | jq -r '.status')
  echo "Status: $STATUS"
  if [[ "$STATUS" == "completed" || "$STATUS" == "failed" ]]; then
    echo $RESPONSE | jq .
    break
  fi
  sleep 10
done

Listing Runs

GET /v2/projects/{projectId}/verification-runs

Query parameters

ParameterTypeDescription
statusstringFilter by run status
pipeline_idstringFilter by pipeline slug
limitintegerDefault 20, max 200
offsetintegerDefault 0
# List completed runs for a specific pipeline
curl "https://api.crowdee.ai/v2/projects/proj_abc123/verification-runs?status=completed&pipeline_id=verify-image-metadata&limit=20" \
  -H "X-API-Key: crw_YOUR_API_KEY"

Response

{
  "data": [
    {
      "id": "run_def456",
      "pipelineId": "verify-image-metadata",
      "status": "completed",
      "verdict": "authentic",
      "confidence": 92,
      "createdAt": "2024-11-15T10:02:00Z",
      "completedAt": "2024-11-15T10:02:18Z"
    },
    {
      "id": "run_ghi789",
      "pipelineId": "verify-image-metadata",
      "status": "completed",
      "verdict": "manipulated",
      "confidence": 96,
      "createdAt": "2024-11-14T08:45:00Z",
      "completedAt": "2024-11-14T08:45:31Z"
    }
  ],
  "total": 8,
  "limit": 20,
  "offset": 0
}

How is this guide?

© 2026 Crowdee GmbH. All rights reserved.

On this page