Skip to main content
Quick Test Tips
  1. Use a job ID from a previously created job
  2. Check the status field to see current state
  3. Monitor progress (0-100) during processing
  4. When status is “completed”, fetch the report
Poll every 2-5 seconds for active jobs. Use webhooks to avoid polling entirely.
GET
/
v1
/
jobs
/
{job_id}
Get a job
curl --request GET \
  --url https://api.peepal.dev/v1/jobs/{job_id} \
  --header 'x-api-key: <api-key>'
{
  "id": "<string>",
  "status": "created",
  "progress": 50,
  "template_id": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "started_at": "2023-11-07T05:31:56Z",
  "completed_at": "2023-11-07T05:31:56Z",
  "error": "<string>",
  "person": {
    "full_name": "<string>",
    "aliases": [
      "<string>"
    ],
    "location": "<string>",
    "email": "[email protected]",
    "email_domain": "<string>",
    "linkedin_url": "<string>",
    "github_url": "<string>",
    "personal_website": "<string>",
    "current_company": "<string>",
    "current_title": "<string>",
    "education_seed": [
      {
        "school": "<string>",
        "degree": "<string>",
        "field": "<string>",
        "start_year": 123,
        "end_year": 123
      }
    ],
    "employment_seed": [
      {
        "employer": "<string>",
        "title": "<string>",
        "start_date": "<string>",
        "end_date": "<string>"
      }
    ]
  },
  "claims": [
    {
      "claim_key": "<string>",
      "claim_type": "<unknown>",
      "expected": {
        "school": "<string>",
        "degree": "<string>",
        "field": "<string>",
        "start_year": 123,
        "end_year": 123
      },
      "match_rules": {
        "match_strength": "strict",
        "min_confidence": 0.5
      },
      "weight": 5
    }
  ],
  "options": {
    "depth": "light",
    "max_sources": 30,
    "max_cost_usd": 1,
    "exa_category": "auto",
    "allow_domains": [
      "<string>"
    ],
    "deny_domains": [
      "<string>"
    ],
    "webhook": {
      "endpoint_id": "<string>",
      "events": [
        "job.created"
      ]
    }
  },
  "metadata": {},
  "links": {
    "self": "<string>",
    "report": "<string>",
    "sources": "<string>"
  }
}
Retrieve the details and current status of a specific job by its ID.

Polling for Completion

Use this endpoint to poll a job until it reaches a terminal state (completed, failed, or canceled).
curl -X GET "https://api.peepal.dev/v1/jobs/job_01ARZ3NDEKTSV4RRFFQ69G5FAV" \
  -H "x-api-key: YOUR_API_KEY"
{
  "id": "job_01ARZ3NDEKTSV4RRFFQ69G5FAV",
  "status": "running",
  "progress": 45,
  "template_id": null,
  "created_at": "2025-12-31T10:00:00Z",
  "started_at": "2025-12-31T10:00:05Z",
  "completed_at": null,
  "error": null,
  "person": {
    "full_name": "Ada Lovelace",
    "email": "[email protected]"
  },
  "claims": [
    {
      "claim_key": "edu_1",
      "claim_type": "education",
      "expected": {
        "school": "University of London"
      }
    }
  ],
  "links": {
    "self": "https://api.peepal.dev/v1/jobs/job_01ARZ3NDEKTSV4RRFFQ69G5FAV",
    "report": "https://api.peepal.dev/v1/jobs/job_01ARZ3NDEKTSV4RRFFQ69G5FAV/report",
    "sources": "https://api.peepal.dev/v1/jobs/job_01ARZ3NDEKTSV4RRFFQ69G5FAV/sources"
  }
}

Authorizations

x-api-key
string
header
required

Path Parameters

job_id
string
required

Response

Job details

id
string
required
status
enum<string>
required
Available options:
created,
queued,
running,
completed,
failed,
canceled
progress
integer
required
Required range: 0 <= x <= 100
template_id
string | null
required
created_at
string<date-time>
required
started_at
string<date-time> | null
required
completed_at
string<date-time> | null
required
error
string | null
required
person
object
required
claims
object[]
required
options
object
metadata
object