Extracting data
Extraction has two user-facing resources:
- A Robot is the stable extraction resource for one host and country.
- A Run uses a completed Robot to crawl pages and produce Captures.
You create the Robot once, wait for its build to complete, then reuse it for manual and scheduled Runs.
Extraction workflow
- Create or retrieve the Robot for the target host and country.
- Monitor that Robot while Extralt generates and validates its crawler and scraper.
- Start a Run after the Robot reaches
completed. - Monitor the Run and inspect or export its Captures.
Create a Robot
Dashboard
Go to Extract > Robots > New. Enter a product URL from the target site and select the country where Extralt should access it.
After you select Create, the dashboard opens the Robot details page for the returned Robot ID. This happens whether the Robot was newly created or already existed for that host and country.
API
export EXTRALT_API_KEY="your-api-key"
curl -s -X POST "https://api.extralt.com/v0/extract/robots" \
-H "Authorization: Bearer $EXTRALT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example-store.com/products/sample",
"country_code": "US"
}' | jqThe response contains the stable Robot ID and its current status:
{ "id": "<robot-id>", "status": "pending" }202 Acceptedmeans a new Robot was created and its build was queued.200 OKmeans the Robot already existed for that host and country.
Both responses identify the same user-facing resource. There is no separate Robot Build resource.
For a compatible covered source, an existing Robot may already be
completed. Otherwise, Extralt analyzes the source, generates extraction
logic, validates it, and compiles it. Build time depends on the source and
the validation work required.
Monitor the Robot build
The Robot exposes its build status throughout its lifecycle:
| Status | Meaning |
|---|---|
pending | The build is queued |
building | Extralt is analyzing the source and preparing the Robot |
completed | The Robot is ready for Runs and Schedules |
failed | The build failed; statusReason contains the failure detail |
A failed build remains failed. Build retry is not currently exposed, and a Robot build cannot be stopped.
Dashboard
The Robot details page updates as the build moves from pending to building
and then to a final status. Keep this page open to monitor the build, or return
to it from the Robots list.
API
Read the Robot by the ID returned from creation:
curl -s "https://api.extralt.com/v0/extract/robots/$ROBOT_ID" \
-H "Authorization: Bearer $EXTRALT_API_KEY" | jqPoll until the status is completed or failed. Only completed Robots can
start Runs or Schedules.
Robot identity and naming
Within an organization, a Robot is unique for a (host, country) pair. A
leading www. is ignored for identity, so www.nike.com and nike.com in the
same country resolve to the same Robot.
Robot names are derived and cannot be edited. Extralt removes a leading
www., replaces dots with underscores, and appends the uppercase country code.
For example, www.nike.com in the United States becomes nike_com_US.
The Robot's runCount records how many Runs have been created for it. Each new
Run increments that counter and is named <robot_name>_<counter>, such as
nike_com_US_1.
Manage Robots
Dashboard
The Robots list includes Robots in every build status. Its columns are Name, Host, Country, Language, Status, Reason, Runs, and Created.
Select a Robot to view its details or Runs. Start Run and Schedule Run
are available only when the selected Robot is completed. Robots cannot be
renamed.
API
List all Robots in the organization:
curl -s "https://api.extralt.com/v0/extract/robots" \
-H "Authorization: Bearer $EXTRALT_API_KEY" | jqGET /v0/extract/robots/{id} returns one Robot with its name, host, country,
detected language when available, status, status reason, Run count, and
timestamps.
DELETE /v0/extract/robots/{id} returns 204 No Content. An active build or
Run must finish before its Robot can be deleted. Deleting a Robot also removes
its Schedules.
Start a Run
Dashboard
Go to Extract > Runs > New, or select a completed Robot in the Robots list and choose Start Run. The selector contains only completed Robots.
Optionally provide start URLs, a crawl budget, and automatic enrichment. Start URLs must use the selected Robot's host. After you select Start, the dashboard opens the new Run's details page.
API
curl -s -X POST "https://api.extralt.com/v0/extract/runs" \
-H "Authorization: Bearer $EXTRALT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"robot_id": "'$ROBOT_ID'",
"start_urls": ["https://example-store.com/collections/shoes"],
"budget": 100,
"auto_enrich": false
}' | jqThe response is 202 Accepted with { "id": "<run-id>" }.
| Parameter | Required | Description |
|---|---|---|
robot_id | Yes | A completed Robot in your organization |
start_urls | No | Crawl entry points on the Robot's host. The Robot uses its defaults when omitted. |
budget | No | Maximum number of Captures to produce |
auto_enrich | No | Start an Enrichment after the Run completes. Defaults to false. |
Monitor and manage Runs
| Status | Meaning |
|---|---|
pending | The Run is queued |
starting | The Run is starting |
running | The Robot is crawling and extracting |
restarting | A restart is being applied |
completed | The Run finished successfully |
failed | The Run encountered an unrecoverable error |
stopped | The Run was stopped manually |
Dashboard
The Runs list shows Name, Robot, Status, Reason, Budget, Extracted, Started, and Duration. Select a Run to view its details or Captures.
You can stop a pending, starting, restarting, or running Run. You can
restart only a stopped or failed Run, optionally with a new budget. A
restart keeps the same Run ID and name.
API
Read a Run until it reaches completed, failed, or stopped:
curl -s "https://api.extralt.com/v0/extract/runs/$RUN_ID" \
-H "Authorization: Bearer $EXTRALT_API_KEY" | jqStop an active Run:
curl -s -X POST "https://api.extralt.com/v0/extract/runs/$RUN_ID/stop" \
-H "Authorization: Bearer $EXTRALT_API_KEY"Restart a stopped or failed Run with an optional replacement budget:
curl -s -X POST "https://api.extralt.com/v0/extract/runs/$RUN_ID/restart" \
-H "Authorization: Bearer $EXTRALT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "budget": 200 }' | jqStop returns 204 No Content. Restart returns 202 Accepted with the same Run
ID.
Concurrency and credits
| Plan | Concurrent Runs |
|---|---|
| Start | 1 |
| Scale | Unlimited |
Each successful product-page Capture costs 2 credits. A new Run requires enough credits for at least one Capture.
Use the Captures
After the Run starts producing Captures, select View Captures in the dashboard. You can filter by Robot or Run and export the result as JSONL or Parquet.
See Working with Captures for browsing and export options, or Schedules to create recurring Runs.