const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
input: {
mode: 'scrape',
data: {
urls: [
{
url: 'https://example.com/products/anvil',
itemId: 'sku-1',
meta: {category: 'tools'}
},
{url: 'https://example.com/products/hammer', itemId: 'sku-2'}
],
formats: {markdown: true, html: true},
sharedParams: {mainContentOnly: true}
}
}
})
};
fetch('https://api.context.dev/v1/batch/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
{
"id": "batch_9f2c8a",
"status": "pending",
"mode": "scrape",
"tags": [
"docs"
],
"crawl": {
"source": {
"type": "start_url",
"url": "https://example.com/docs"
},
"max_pages": 500,
"max_depth": 0,
"follow_subdomains": true,
"url_pattern": "^https://example\\.com/docs/",
"exclude_url_pattern": "/tag/|/author/",
"languages": "same_as_start_url"
},
"input": {
"reserved": 24817,
"reserved_is_ceiling": false,
"submitted": 25000,
"duplicates": 183,
"invalid": 0
},
"credits": {
"reserved": 24817
},
"created_at": "<string>",
"invalid_urls": [
{
"url": "<string>",
"reason": "Must be a public http:// or https:// URL"
}
],
"cache_metadata": {
"status": "hit",
"age_ms": 1
},
"formats": {
"html": true,
"markdown": true
},
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"webhook_secret": "<string>",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "PROFILE_NOT_FOUND",
"error_data": {
"is_authenticated": true,
"should_retry": false,
"retry_condition": "sufficient_credits",
"info_url": "https://context.dev/dashboard/subscription",
"credits_remaining": 1,
"credits_required": 1,
"is_credits_required_estimated": true,
"credits_charged": 1,
"next_refill_at": "2023-11-07T05:31:56Z",
"next_refill_credits": 123
},
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "PROFILE_NOT_FOUND",
"error_data": {
"is_authenticated": true,
"should_retry": false,
"retry_condition": "sufficient_credits",
"info_url": "https://context.dev/dashboard/subscription",
"credits_remaining": 1,
"credits_required": 1,
"is_credits_required_estimated": true,
"credits_charged": 1,
"next_refill_at": "2023-11-07T05:31:56Z",
"next_refill_credits": 123
},
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "PROFILE_NOT_FOUND",
"error_data": {
"is_authenticated": true,
"should_retry": false,
"retry_condition": "sufficient_credits",
"info_url": "https://context.dev/dashboard/subscription",
"credits_remaining": 1,
"credits_required": 1,
"is_credits_required_estimated": true,
"credits_charged": 1,
"next_refill_at": "2023-11-07T05:31:56Z",
"next_refill_credits": 123
},
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "PROFILE_NOT_FOUND",
"error_data": {
"is_authenticated": true,
"should_retry": false,
"retry_condition": "sufficient_credits",
"info_url": "https://context.dev/dashboard/subscription",
"credits_remaining": 1,
"credits_required": 1,
"is_credits_required_estimated": true,
"credits_charged": 1,
"next_refill_at": "2023-11-07T05:31:56Z",
"next_refill_credits": 123
},
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "PROFILE_NOT_FOUND",
"error_data": {
"is_authenticated": true,
"should_retry": false,
"retry_condition": "sufficient_credits",
"info_url": "https://context.dev/dashboard/subscription",
"credits_remaining": 1,
"credits_required": 1,
"is_credits_required_estimated": true,
"credits_charged": 1,
"next_refill_at": "2023-11-07T05:31:56Z",
"next_refill_credits": 123
},
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "PROFILE_NOT_FOUND",
"error_data": {
"is_authenticated": true,
"should_retry": false,
"retry_condition": "sufficient_credits",
"info_url": "https://context.dev/dashboard/subscription",
"credits_remaining": 1,
"credits_required": 1,
"is_credits_required_estimated": true,
"credits_charged": 1,
"next_refill_at": "2023-11-07T05:31:56Z",
"next_refill_credits": 123
},
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "PROFILE_NOT_FOUND",
"error_data": {
"is_authenticated": true,
"should_retry": false,
"retry_condition": "sufficient_credits",
"info_url": "https://context.dev/dashboard/subscription",
"credits_remaining": 1,
"credits_required": 1,
"is_credits_required_estimated": true,
"credits_charged": 1,
"next_refill_at": "2023-11-07T05:31:56Z",
"next_refill_credits": 123
},
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}Batches
Submit a batch
Scrape up to 100,000 URLs, or crawl a site, asynchronously. Poll the batch ID or receive a webhook when it finishes.
POST
/
batch
/
submit
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
input: {
mode: 'scrape',
data: {
urls: [
{
url: 'https://example.com/products/anvil',
itemId: 'sku-1',
meta: {category: 'tools'}
},
{url: 'https://example.com/products/hammer', itemId: 'sku-2'}
],
formats: {markdown: true, html: true},
sharedParams: {mainContentOnly: true}
}
}
})
};
fetch('https://api.context.dev/v1/batch/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
{
"id": "batch_9f2c8a",
"status": "pending",
"mode": "scrape",
"tags": [
"docs"
],
"crawl": {
"source": {
"type": "start_url",
"url": "https://example.com/docs"
},
"max_pages": 500,
"max_depth": 0,
"follow_subdomains": true,
"url_pattern": "^https://example\\.com/docs/",
"exclude_url_pattern": "/tag/|/author/",
"languages": "same_as_start_url"
},
"input": {
"reserved": 24817,
"reserved_is_ceiling": false,
"submitted": 25000,
"duplicates": 183,
"invalid": 0
},
"credits": {
"reserved": 24817
},
"created_at": "<string>",
"invalid_urls": [
{
"url": "<string>",
"reason": "Must be a public http:// or https:// URL"
}
],
"cache_metadata": {
"status": "hit",
"age_ms": 1
},
"formats": {
"html": true,
"markdown": true
},
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"webhook_secret": "<string>",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "PROFILE_NOT_FOUND",
"error_data": {
"is_authenticated": true,
"should_retry": false,
"retry_condition": "sufficient_credits",
"info_url": "https://context.dev/dashboard/subscription",
"credits_remaining": 1,
"credits_required": 1,
"is_credits_required_estimated": true,
"credits_charged": 1,
"next_refill_at": "2023-11-07T05:31:56Z",
"next_refill_credits": 123
},
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "PROFILE_NOT_FOUND",
"error_data": {
"is_authenticated": true,
"should_retry": false,
"retry_condition": "sufficient_credits",
"info_url": "https://context.dev/dashboard/subscription",
"credits_remaining": 1,
"credits_required": 1,
"is_credits_required_estimated": true,
"credits_charged": 1,
"next_refill_at": "2023-11-07T05:31:56Z",
"next_refill_credits": 123
},
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "PROFILE_NOT_FOUND",
"error_data": {
"is_authenticated": true,
"should_retry": false,
"retry_condition": "sufficient_credits",
"info_url": "https://context.dev/dashboard/subscription",
"credits_remaining": 1,
"credits_required": 1,
"is_credits_required_estimated": true,
"credits_charged": 1,
"next_refill_at": "2023-11-07T05:31:56Z",
"next_refill_credits": 123
},
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "PROFILE_NOT_FOUND",
"error_data": {
"is_authenticated": true,
"should_retry": false,
"retry_condition": "sufficient_credits",
"info_url": "https://context.dev/dashboard/subscription",
"credits_remaining": 1,
"credits_required": 1,
"is_credits_required_estimated": true,
"credits_charged": 1,
"next_refill_at": "2023-11-07T05:31:56Z",
"next_refill_credits": 123
},
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "PROFILE_NOT_FOUND",
"error_data": {
"is_authenticated": true,
"should_retry": false,
"retry_condition": "sufficient_credits",
"info_url": "https://context.dev/dashboard/subscription",
"credits_remaining": 1,
"credits_required": 1,
"is_credits_required_estimated": true,
"credits_charged": 1,
"next_refill_at": "2023-11-07T05:31:56Z",
"next_refill_credits": 123
},
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "PROFILE_NOT_FOUND",
"error_data": {
"is_authenticated": true,
"should_retry": false,
"retry_condition": "sufficient_credits",
"info_url": "https://context.dev/dashboard/subscription",
"credits_remaining": 1,
"credits_required": 1,
"is_credits_required_estimated": true,
"credits_charged": 1,
"next_refill_at": "2023-11-07T05:31:56Z",
"next_refill_credits": 123
},
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "PROFILE_NOT_FOUND",
"error_data": {
"is_authenticated": true,
"should_retry": false,
"retry_condition": "sufficient_credits",
"info_url": "https://context.dev/dashboard/subscription",
"credits_remaining": 1,
"credits_required": 1,
"is_credits_required_estimated": true,
"credits_charged": 1,
"next_refill_at": "2023-11-07T05:31:56Z",
"next_refill_credits": 123
},
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}From 1 credit per page
Requires
batches:write permission. See the guide for examples and usage.Authorizations
Headers
Body
application/json
Create an asynchronous scraping job.
Response
Batch stored. Reserved page counts and credits remain zero until background preparation finishes. Read progress and results from GET /batch/{batch_id}.
Current state. pending means waiting for execution capacity or background validation. Capacity-limited batches remain pending until a slot opens. completed, cancelled, and failed are final.
Available options:
pending, queued, running, cancelling, completed, cancelled, failed Was this page helpful?