This guide shows the shortest useful Titan workflow: authenticate, create a task, run it once, poll the execution, and export the result. It uses the classic pattern—URLs, objective, and output schema—which matches most product monitors and extraction jobs. Titan also supports modular actions and multi-step tasks; see What is Titan Web Scraping? and Action types overview when you need search, crawl, or API steps in the same model. It is written as a practical API walkthrough, not a conceptual tour.Documentation Index
Fetch the complete documentation index at: https://webscraping.titannet.io/docs/llms.txt
Use this file to discover all available pages before exploring further.
Rust snippets use ureq and serde_json. Tab titles (cURL, Go, TypeScript, Python, Rust) match Authentication and Use the Task Service API so your language choice stays in sync across pages.
What you will do
By the end of this guide, you will:- Configure your API connection
- Create a task
- Start an execution
- Check execution state
- Export the result
Before you begin
| Requirement | Notes |
|---|---|
| Task Service URL | https://api.webscraping.titannet.io (set as TITAN_API_URL without /api/v1) |
| Bearer token | JWT or API key with tasks:write, executions:write, executions:read, and data:read (see Authentication and API keys) |
| JSON-capable HTTP client | curl, Postman, or your own code |
- cURL
- Go
- TypeScript
- Python
- Rust
Quickstart architecture
The sequence below is schematic: real responses wrap payloads in{ "success": true, "data": … } except for file exports, which return raw bytes (see Step 4).
Step 1: create a task
- cURL
- Go
- TypeScript
- Python
- Rust
data.id:
Capture TASK_ID
- cURL
- Go
- TypeScript
- Python
- Rust
Step 2: run the task
- cURL
- Go
- TypeScript
- Python
- Rust
ExecutionResponse inside data. The execution UUID is data.id (not execution_id):
Capture EXECUTION_ID
- cURL
- Go
- TypeScript
- Python
- Rust
Step 3: poll execution status
- cURL
- Go
- TypeScript
- Python
- Rust
data.status until it reaches a terminal value.
Typical statuses include:
| Status | Meaning |
|---|---|
queued | Execution was created and is waiting for work |
running | Work is actively being processed |
paused | Execution was paused |
completed | Execution finished successfully |
completed_with_errors | Finished with partial failures |
failed | Execution finished with an error |
cancelled | Execution was stopped |
Step 4: export the result
Once the execution iscompleted (or completed_with_errors when data still exists), export the dataset.
GET /api/v1/executions/:id/results/export returns a file attachment (raw JSON, NDJSON, or CSV per the format query parameter). It does not use the { success, data } envelope. The default format is json.
Export JSON to a file
- cURL
- Go
- TypeScript
- Python
- Rust
Download CSV
- cURL
- Go
- TypeScript
- Python
- Rust
GET /api/v1/executions/:id/results (metadata) does use the standard success envelope; see the Task Service API group in the API Reference tab (OpenAPI) for the exact data shape.
Step 5: access media if present
If your output schema includes media fields, those fields will contain Titan-managed URLs. Use the execution media download endpoint when you want to resolve those assets directly.End-to-end (one script)
- cURL
- Go
- TypeScript
- Python
- Rust
Troubleshooting
| Problem | Check first |
|---|---|
401 Unauthorized or 403 Forbidden | Token validity and scopes |
| Task created but execution stays queued | Worker availability and scheduler health |
| Execution completed but no data is available | Result export path and ingestion completion |
| Confusing response shapes | API reference overview and HTTP errors and exceptions |