Parser API reference

DoorDash Scraper

Collect a DoorDash restaurant or store from its link: name, rating and number of ratings, price level, cuisines, address with coordinates, phone, website, opening hours, delivery fee and ETA. Add the full menu with categories, prices, photos, "most ordered" items and like ratings, and up to 20 public reviews with the rating histogram.

Queue a task

Send JSON with this parser’s settings inside input. Use your Extracto API key in the X-API-KEY header. The queue returns a saved task ID so you can retrieve the result when it is ready. Replace the example Idempotency-Key with a new unique key for each intentional task and reuse it only for retries of that task.

Current pricing: 100 credits/run
Review the estimate before running. Sending this example starts a real task and can spend credits.
POST · queue endpoint
https://extracto.cloud/api/v1/parsers/doordash-scraper/queue
cURL · queue a task
curl --request POST 'https://extracto.cloud/api/v1/parsers/doordash-scraper/queue' \
  --header 'X-API-KEY: ext_your_api_key' \
  --header 'Idempotency-Key: replace_with_a_new_unique_task_key' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --data-binary @- <<'JSON'
{
  "input": {
    "url": "https://www.doordash.com/store/juniors-restaurant-new-york-704090/",
    "mode": "full",
    "maxReviews": 10
  }
}
JSON

The following response is illustrative. Save the actual run.id returned by your request.

202 Accepted · example response
{
  "success": true,
  "queued": true,
  "run": {
    "id": "7e1e15c2-2db4-4c17-a713-5432f47fb40f",
    "tool": "doordash-scraper",
    "status": "queued"
  },
  "status_url": "https://extracto.cloud/api/v1/parser-runs/7e1e15c2-2db4-4c17-a713-5432f47fb40f",
  "result_url": "https://extracto.cloud/api/v1/parser-runs/7e1e15c2-2db4-4c17-a713-5432f47fb40f/results"
}

Get your results

Check status about once every five seconds while the task is queued or running. Stop at ok, partial, cancelled or error. Both requests require the API key of the account that created the task.

cURL · check status
curl 'https://extracto.cloud/api/v1/parser-runs/7e1e15c2-2db4-4c17-a713-5432f47fb40f?include_result=0' \
  --header 'X-API-KEY: ext_your_api_key' \
  --header 'Accept: application/json'
cURL · read saved results
curl 'https://extracto.cloud/api/v1/parser-runs/7e1e15c2-2db4-4c17-a713-5432f47fb40f/results?limit=100' \
  --header 'X-API-KEY: ext_your_api_key' \
  --header 'Accept: application/json'

Result pages contain items. Pass next_cursor as the next request’s cursor until it is null. Read run.error in the status response when a task fails.

See the shared guides for result webhooks, safe retries, and errors and limits.

Overview

Collect a DoorDash restaurant or store from its link: name, rating and number of ratings, price level, cuisines, address with coordinates, phone, website, opening hours, delivery fee and ETA. Add the full menu with categories, prices, photos, "most ordered" items and like ratings, and up to 20 public reviews with the rating histogram.

Collection scope

One store per task: paste a link to a single DoorDash store (menu and review page links are accepted); search pages and business chains are not supported. Up to 20 public reviews per store; DoorDash shows written reviews for only part of its ratings, so some stores return few or none. Prices, fees and ETA are what DoorDash shows for the store at collection time and can differ by delivery address.

Using Extracto

Extracto provides a web interface and HTTP API for submitting scraping tasks, tracking their status and retrieving structured results. Some parsers use third-party scraping providers for execution. Your Extracto account, API key and credit balance are managed at extracto.cloud.

Create an account at https://extracto.cloud/register, confirm your email and create an API key at https://extracto.cloud/api-keys. You can also configure and run this parser in the web interface at https://extracto.cloud/marketplace/doordash-scraper.

Pricing and credits

Current Extracto price: 100 credits/run. Extracto charges your credit balance for parser usage. Your package or top-up amount determines the purchase price per 1,000 credits. Listed parser prices use the base credit rate; volume discounts reduce the effective cash cost. The displayed rate includes Extracto pricing; additional enabled options are shown in the estimate. Verified accounts receive 2,500 free credits every month. The free balance resets to 2,500 on the first day of each month at 00:00 UTC, without rollover. Free credits are spent first. Purchased credits do not expire. Free credits held for an active task remain reserved until it finishes; unused amounts from an expired month then expire. Review the cost estimate in the web interface or POST your request body to https://extracto.cloud/api/v1/parsers/doordash-scraper/estimate before launching a task. An estimate does not start scraping. Credit packages are listed at https://extracto.cloud/pricing; billing details are at https://extracto.cloud/docs#billing.

Input

Send JSON with the parser settings inside an input object. The example is a starting point: replace the sources and limits with your own permitted targets. Launching it starts a real task and can spend credits.

JSON · Input
{
    "input": {
        "url": "https://www.doordash.com/store/juniors-restaurant-new-york-704090/",
        "mode": "full",
        "maxReviews": 10
    }
}
  • url (string, required)
  • mode (string, optional)
  • maxReviews (integer, optional)

Requests and authentication

Use your Extracto key in the X-API-KEY header. Send Content-Type: application/json and Accept: application/json. Keep the key private on your server.

POST https://extracto.cloud/api/v1/parsers/doordash-scraper?wait=1 — explicitly request a synchronous result. Successful output is in data, with the result count in count and usage in meta.credits. POST https://extracto.cloud/api/v1/parsers/doordash-scraper/queue — submit a queued task. Save run.id from the HTTP 202 response. GET https://extracto.cloud/api/v1/parser-runs/{run_id}/results?limit=100 — retrieve saved items in pages. Pass next_cursor as cursor until it is null. Results require the task owner account API key. GET https://extracto.cloud/api/v1/parser-runs?status=ready — list terminal tasks; restart each polling cycle without a cursor to include older tasks that finished later. GET https://extracto.cloud/api/v1/parser-runs/{run_id} — check a saved task using the same account's API key. Poll about once every five seconds while its status is queued or running. Stop at ok, partial, cancelled or error. Saved results are in run.result; failures are described in run.error.

Integration examples, response formats, errors and limits: https://extracto.cloud/docs.

Output

Returned fields depend on the parser, input and source availability. A successful task can return no matching records. Availability and completion time can change when the source website changes. The following sample is illustrative documentation data, not a customer run or a guarantee of results:

JSON · Output
[
    {
        "storeId": "704090",
        "name": "Junior's Restaurant",
        "url": "https://www.doordash.com/store/704090/",
        "description": "Bakery",
        "rating": 4.6,
        "ratingCount": 1688,
        "priceTier": "$$",
        "cuisines": [
            "American",
            "Seafood",
            "Sandwiches",
            "Salads",
            "Dessert"
        ],
        "offersDelivery": true,
        "offersPickup": true,
        "isDashpass": true,
        "etaMinutes": 43,
        "deliveryFee": "$0 delivery fee, first order",
        "phone": "+12123022000",
        "website": "https://www.juniorscheesecake.com/pages/45th-st-nyc",
        "displayAddress": "1515 Broadway, New York, NY 10003, USA",
        "latitude": 40.758083,
        "longitude": -73.986689,
        "timezone": "US/Eastern",
        "contact": {
            "hours": [
                {
                    "day": "MONDAY",
                    "slots": [
                        "7 AM - 10 PM"
                    ]
                },
                {
                    "day": "TUESDAY",
                    "slots": [
                        "7 AM - 11 PM"
                    ]
                }
            ]
        },
        "menuItemCount": 75,
        "menu": {
            "categories": [
                {
                    "id": "popular-items",
                    "name": "Most Ordered",
                    "numItems": 8
                },
                {
                    "id": "98490233",
                    "name": "+6\" Cake**",
                    "numItems": 10
                }
            ],
            "items": [
                {
                    "id": "10714704836",
                    "name": "Strawberry",
                    "category": "Most Ordered",
                    "description": "",
                    "price": "$10.25",
                    "imageUrl": "https://img.cdn4dd.com/cdn-cgi/image/fit=contain,width=1200,height=672,format=auto/https://doordash-static.s3.amazonaws.com/media/photosV2/45982035-8a06-40b0-a27c-466f662aea8e-retina-large.jpg",
                    "rating": "86% (43)",
                    "badges": [
                        "#1 Most liked"
                    ],
                    "dietaryTags": []
                }
            ],
            "popularItems": [
                {
                    "id": "10714741538",
                    "name": "8\" Plain Cheesecake",
                    "price": "$45.00"
                },
                {
                    "id": "10714741539",
                    "name": "8\" Strawberry Cheesecake",
                    "price": "$59.00"
                }
            ]
        },
        "reviews": {
            "avgRating": 4.6,
            "numRatings": 1688,
            "numReviews": 44,
            "histogram": {
                "1": 61,
                "2": 44,
                "3": 58,
                "4": 228,
                "5": 1245
            },
            "items": [
                {
                    "reviewer": "Ralph J",
                    "stars": 5,
                    "text": "The Corned Beef and Pastrami are the Best from Juniors.. You Guys gets No Love for your Sandwiches. Also You Guys Don't Play around when you are Giving out your Cheese Cakes!! It's a Great (Big Slice)!! Kudos Kudos!! To Juniors!! Always Great Eats!!\n\nRalph J",
                    "isVerified": true,
                    "reviewedAt": "2024-09-10T00:18:10.677Z",
                    "ratingTag": "Loved"
                }
            ]
        },
        "scrapedAt": "2026-11-10T10:58:05Z"
    }
]
  • storeId (string): DoorDash store ID.
  • name (string): Store name.
  • url (string): DoorDash store page.
  • rating (number): Average DoorDash rating (1-5).
  • ratingCount (number): Number of ratings.
  • priceTier (string): Price level ($-$$$$).
  • cuisines (array): Cuisine tags.
  • offersDelivery / offersPickup (boolean): Delivery and pickup availability.
  • deliveryFee (string): Delivery fee as shown on DoorDash.
  • etaMinutes (number): Estimated delivery time in minutes.
  • phone (string): Phone number.
  • website (string): Restaurant website when listed.
  • displayAddress (string): Full address; street, city, state, country, latitude and longitude are also returned.
  • contact.hours (array): Opening hours by day.
  • menu.categories (array): Menu categories with item counts.
  • menu.items (array): Menu items: name, category, description, price, photo, like rating, badges and dietary tags.
  • menu.popularItems (array): "Most ordered" items with prices.
  • reviews.histogram (object): Rating counts by star (1-5).
  • reviews.items (array): Public reviews: reviewer, stars, text, date, verified flag and tag.
  • scrapedAt (string): Collection time (UTC).

Example uses

  • Monitor a competitor's DoorDash menu and prices over time.
  • Build a menu and price dataset for restaurants in your market.
  • Track DoorDash ratings, review volume and delivery fees for your own locations.
  • Enrich restaurant records with phone, website, hours and coordinates from DoorDash.
  • Find the most ordered and most liked dishes of a restaurant.

Responsible use and support

Use this parser only for data you are permitted to access and process. Follow applicable laws, source website terms and Extracto's acceptable-use policy: https://extracto.cloud/acceptable-use. For help, email [email protected] and include the parser name and run ID. Never send your API key. Terms: https://extracto.cloud/terms Privacy: https://extracto.cloud/privacy Refund policy: https://extracto.cloud/refund-policy