---
title: "Start a durable cross-corpus research job"
method: POST
path: "/research/jobs"
tags: ["Research Jobs"]
---

# Start a durable cross-corpus research job

`POST /research/jobs`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/research/jobs`
- Auth: API key in header `x-api-key`

Submits bounded research over the selected web, arXiv paper, and developer-document sources. Repeated owner-scoped idempotency requests return the original job.

## Headers

- `x-api-key` string, required

## Request body

- ResearchjobsResearchStartRequestDoc
  - `exclude_domains` string[]
  - `idempotency_key` string, required
  - `include_domains` string[]
  - `limits` ResearchjobsResearchLimitsDoc, required
    - `browser_renders` 0
    - `input_tokens` integer
    - `max_credits` integer, required
    - `output_tokens` integer
    - `rounds` integer
    - `searches` integer
    - `sources` integer
    - `timeout_seconds` integer
  - `output_format` 'report' | 'json'
  - `query` string, required
  - `schema` object
  - `scope` 'web' | 'papers' | 'developer' | 'mixed'
  - `seed_urls` string[]
  - `sources` string[]

## Response `202`

Queued research job

- ResearchjobsResearchStartResponseDoc
  - `code` integer
  - `data` RetrievaltypesJobSubmission
    - `deadline_at` string
    - `job_id` string
    - `replayed` boolean
    - `results_url` string
    - `state` 'queued' | 'running' | 'cancelling' | 'succeeded' | 'failed' | 'cancelled'
    - `status_url` string
  - `msg` string

## Other responses

- `400`: Invalid request
- `401`: Authentication required
- `503`: Research service or billing admission unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/0497899e2016?raw)
