DoorDash API endpoint
Use Crawlora's DoorDash store discovery feed API to extract supported public DoorDash data as structured JSON. This page includes request parameters, cURL examples, response schema, error behavior, credit cost, and a Playground link for testing before integration.
/doordash/feedReturns nearby stores for a location from the Android mobile guest experience: store ID, name, cover image and tags, plus rating, price range, delivery fee and ETA when the upstream feed surface reports them. Those metric fields are omitted rather than estimated when it does not, so treat their absence as "not reported". No DoorDash account or caller-supplied token is required. Developers commonly use this endpoint for data enrichment, monitoring, research dashboards, internal automation, and agent-native workflows that need repeatable structured public web data. Authentication uses the documented Crawlora headers, and usage is metered with the credit cost shown on this page.
Request parameters are generated from the active endpoint catalog. Required values must be sent before Crawlora can call the upstream public web data source.
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| latitude | number | Yes | Consumer latitude | ||
| longitude | number | Yes | Consumer longitude | ||
| offset | integer | No | Number of stores to skip | ||
| limit | integer | No | Max stores to return | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/doordash/feed?limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
Send your scraping API key in the x-api-key header. Use the console API Keys page to rotate or select the active key.
Endpoint usage is metered in credits. The plan prices, included credits, limits, and overage rates below match the active backend billing configuration.
| Plan | Price | Included credits | Daily cap | Rate limit | Overage |
|---|---|---|---|---|---|
| Free | $0/mo | 2,000 | 500 daily credits | 5/min | No overage |
| Starter | $9/mo | 20,000 | 5,000 daily credits | 15/min | $0.75/1,000 overage credits when enabled |
| Growth | $29/mo | 100,000 | 25,000 daily credits | 45/min | $0.45/1,000 overage credits when enabled |
| Pro | $79/mo | 400,000 | No daily cap | 120/min | $0.30/1,000 overage credits |
| Business | $199/mo | 1,200,000 | No daily cap | 300/min | $0.20/1,000 overage credits |
| Enterprise | $499/mo | 5,000,000 | No daily cap | 1,000/min | $0.12/1,000 overage credits |
This endpoint is executed through Crawlora's managed scraping infrastructure.
Returns store cards containing store ID, name, cover image and tags. Rating, rating count, price range, delivery fee and ETA are returned only when the upstream feed surface supplies them. The consumer feed surface is frequently unavailable to anonymous guest sessions. When it is, this endpoint degrades to nearby stores drawn from the same catalog that backs `/doordash/search`, which carries store identity, cover image and tags but no rating, price range, delivery fee or ETA. Those fields are omitted in that case rather than estimated, so **treat their absence as "not reported", never as a zero or a default**. Callers that need rating and price range for a specific store should follow up with `/doordash/store/{store_id}`. Missing or out-of-range coordinates return `400`; no usable store data from either surface returns `503` rather than an empty successful response. Example response: ```json {"code":200,"msg":"OK","data":{"stores":[{"storeId":"207343","name":"Green Island Restaurant","coverImageUrl":"https://img.cdn4dd.com/example.jpg","tags":["Chinese","Noodles"]}]}} ```
Crawlora does not silently return bad data when the upstream page cannot be used.
| Status | Common failure case |
|---|---|
| 400 | Invalid input or missing required parameter |
| 429 | Plan or endpoint rate limit exceeded |
| 500 | Internal execution error |
| 502 | Upstream platform failed, returned unusable HTML, or served a challenge page that could not be resolved |
When possible, Crawlora returns structured error context so your integration can retry, back off, or inspect the request.
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
{
"code": 200,
"msg": "OK",
"data": {
"stores": [
{
"storeId": "207343",
"name": "Green Island Restaurant",
"coverImageUrl": "https://img.cdn4dd.com/example.jpg",
"tags": [
"Chinese",
"Noodles"
]
}
]
}
}Request schema
No body schema
Response schema
#/definitions/doordash.feedResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | doordash.FeedResponse | No | ||||
| data.stores | array | No | ||||
| data.stores[].averageRating | number | No | ||||
| data.stores[].coverImageUrl | string | No | ||||
| data.stores[].deliveryFee | string | No | ||||
| data.stores[].eta | string | No | ||||
| data.stores[].name | string | No | ||||
| data.stores[].priceRange | string | No | ||||
| data.stores[].ratingCount | string | No | ||||
| data.stores[].storeId | string | No | ||||
| data.stores[].tags | array | No | ||||
| msg | string | No | OK |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/doordash/feed?limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"Crawlora is designed for responsible structured public web data workflows. Customers are responsible for using Crawlora in compliance with applicable laws, third-party rights, target-platform rules, and Crawlora terms.
Read Crawlora terms