Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/doordash-https-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: 'DoorDash Checkout API Interface Https: API'
x-logo:
url: https://doordash-static.s3-us-west-2.amazonaws.com/media/drive/drive-logo.png
backgroundColor: '#FFFFFF'
altText: Doordash Drive
href: https://www.doordash.com/drive/portal/discover
version: 0.1.6
contact:
name: Drive API Support
email: drive-api-support@doordash.com
description: 'Last updated: Apr 20, 2021
### Release Notes
#### v0.1.8 (effective Apr 20, 2021)
- Clean up Introduction section
- Create Order Session
- Update Extra.tax_excluded_price to now allow negative values
- Update Option.tax_excluded_price to now allow negative values
- Add field_errors.code field
- Remove unused scheduled_delivery_time field
- Get Checkout Page
- Remove content body for 400 bad request (incorrect content)
#### v0.1.7 (effective Mar 10, 2021)
- Added first_name and last_name on…'
tags:
- name: 'Https:'
paths:
https://api.doordash.com/drive/v1/checkout:
post:
summary: Create Order Session
description: Create the order session by passing in order details to receive a order_session_id, which is used to open the Checkout Page webview.
operationId: CreateCheckoutPost
parameters: []
requestBody:
content:
application/json:
schema:
required:
- consumer
- cart
- currency
- delivery_address
- external_store_id
type: object
properties:
cart:
$ref: '#/components/schemas/Cart'
currency:
type: string
enum:
- USD
- AUD
- CAD
- JPY
description: Type of currency of the payment.
example: USD
consumer:
$ref: '#/components/schemas/Consumer'
delivery_address:
$ref: '#/components/schemas/DeliveryAddress'
external_order_id:
type: string
description: Merchant's unique identifier for the order.
example: aer5-ufc9-7865-45ng8-iuywq
external_store_id:
type: string
description: Merchant's unique identifier for a store that this delivery is for.
example: '148767394'
dropoff_preference:
$ref: '#/components/schemas/DropoffPreference'
required: true
description: Request body for checkout endpoint
responses:
'200':
description: Checkout token returned with the given parameters
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/OrderSessionIdResponse'
'400':
description: Bad request
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationFieldErrorResponse'
5XX:
description: '- Please retry all 50x response status codes as the error could be transient. We recommend up to 3 retries with some exponential backoff delay between requests.
- When providing a time to any of the below APIs (i.e. `scheduled_delivery_time`), the format must be UTC.
'
deprecated: false
security:
- Drive API Key Authentication: []
tags:
- 'Https:'
https://order.online/embed/v1/checkout/:
get:
summary: Get Checkout Page
description: Get .html page to open in webview
operationId: GetCheckoutPage
parameters:
- name: order_session_id
in: query
description: UUID of the order session that was created via the Create Checkout call.
required: true
style: simple
explode: false
schema:
type: string
responses:
'200':
description: HTML of webview
headers: {}
content:
application/html:
schema:
$ref: '#/components/schemas/CheckoutPageResponse'
'400':
description: Bad request
headers: {}
5XX:
description: '- Please retry all 50x response status codes as the error could be transient. We recommend up to 3 retries with some exponential backoff delay between requests.
'
deprecated: false
security:
- Drive API Key Authentication: []
tags:
- 'Https:'
components:
schemas:
Item:
title: Item
description: Item object
required:
- merchant_supplied_id
- quantity
- tax_excluded_price
- extras
type: object
properties:
merchant_supplied_id:
type: string
description: Merchant's id for the Item.
example: DELUXE_AMERICAN
quantity:
type: integer
format: int32
example: 3
description: Quantity of Item being ordered.
tax_excluded_price:
type: integer
format: int64
example: 899
description: Tax-excluded price of the Item in cents. Must be 0 or greater.
special_instructions:
type: string
example: Please add any sauces to the side.
description: Any special instructions for this item, typically submitted by the consumer.
extras:
$ref: '#/components/schemas/Extras'
FieldError:
title: FieldError
type: object
description: Single field that is believed to have caused the error.
required:
- field
properties:
code:
type:
- string
- 'null'
description: error code that categorizes the issue causing the error
example: invalid_monetary_field
field:
type: string
description: Input field that has been believed to have caused the error.
example: tax_excluded_price
input_value:
type:
- string
- 'null'
description: Value of the input field that is causing the error.
example: -10
message:
type:
- string
- 'null'
description: Any additional messaging around this field causing the error.
example: item.tax_excluded_price must be greater than or equal to 0. Make sure this field is non-negative.
DropoffPreference:
title: null
description: Details on how Dasher should dropoff to the consumer; consumer preference for their delivery getting dropped off.
type: object
properties:
option:
description: Method of dropoff.
type: string
enum:
- LEAVE_AT_DOOR
- HAND_TO_CONSUMER
example: LEAVE_AT_DOOR
dasher_instructions:
description: Any additional instructions for Dasher to follow when dropping off the delivery.
type: string
example: This is a gated community. Just head over to the gate entrance and on the left there should be a mail package area where you can drop off the order. Thanks!
Items:
title: An array of Item objects for an order.
description: An array of Item objects for an order. There must be at least one item for a valid order.
type: array
items:
$ref: '#/components/schemas/Item'
Options:
title: null
description: An array of Option objects for an order. If there are no Options, set this field to an empty array.
type: array
items:
$ref: '#/components/schemas/Option'
Extras:
title: An array of Extra objects for an order.
description: An array of Extra objects for an order. If there are no Extras, set this field to an empty array.
type: array
items:
$ref: '#/components/schemas/Extra'
Option:
title: null
description: An array of Option objects of an Extra
required:
- merchant_supplied_id
- quantity
- tax_excluded_price
type: object
properties:
merchant_supplied_id:
type: string
description: Merchant's id for the Item Extra Option.
example: ADD_KETCHUP
quantity:
type: integer
format: int32
example: 1
description: Quantity of Option being ordered.
tax_excluded_price:
type: integer
format: int64
example: 50
description: Tax-excluded price of the Item Extra Option in cents.
extras:
$ref: '#/components/schemas/Extras'
ValidationFieldErrorResponse:
title: ValidationFieldErrorResponse
type:
- object
- 'null'
description: The response returned when validation for input field errors are encountered.
readOnly: true
properties:
errors:
$ref: '#/components/schemas/ErrorResponse'
ErrorResponse:
title: ErrorResponse
description: Error response captured when attempting to process the request.
type: object
required:
- code
- summary
- message
- field_errors
properties:
code:
type: string
description: Error code/category of error encountered.
example: INVALID_MONETARY_FIELD
summary:
type: string
description: 1-line summary of error that occurred.
example: Tax-excluded price must not be negative.
message:
type: string
description: Any additional information e.g. suggestions on how to resolve error.
example: Tax-excluded price must not be negative. Please ensure all prices are 0 or greater (in cents).
field_errors:
$ref: '#/components/schemas/FieldErrors'
Cart:
title: The consumer's cart containing their order.
description: An object that represents the cart of order items and which menu type / category the order belongs to.
required:
- category_name
- items
type: object
properties:
category_name:
type: string
description: Category name / menu type e.g. ALLDAY, BREAKFAST, LUNCH, DINNER, etc.
example: BREAKFAST
items:
$ref: '#/components/schemas/Items'
OrderSessionIdResponse:
title: Order Session ID
type: object
properties:
order_session_id:
type: string
example: 24ac000c-3934-11eb-adc1-0242ac120002
description: Order Session ID to open checkout in webview
Extra:
title: Item extra
description: Item extra e.g. Choice of Sauce, Choice of toppings, etc. - merchant_supplied_id - quantity - tax_excluded_price - options
type: object
properties:
merchant_supplied_id:
type: string
description: Merchant's id for the Item Extra.
example: BREAKFAST_CONDIMENTS
quantity:
type: integer
format: int32
example: 0
description: Quantity of Extra being ordered.
tax_excluded_price:
type: integer
format: int64
example: 0
description: Tax-excluded price of the Item Extra in cents.
options:
$ref: '#/components/schemas/Options'
FieldErrors:
title: Field Errors
description: List of field errors detected to have caused the error.
type: array
items:
$ref: '#/components/schemas/FieldError'
CheckoutPageResponse:
title: Webview HTML
description: HTML of checkout screen to be opened in CFA webview
type: .html page
DeliveryAddress:
title: The address where the order needs to be dropped off.
description: The address where the order needs to be dropped off.
required:
- street
- city
- state
- zip_code
- country
type: object
properties:
street:
type: string
description: Street for the delivery address
example: 901 Market Street
unit:
type:
- string
- 'null'
description: Suite, Apartment or Unit number of the address.
example: 'Suite #600'
city:
type: string
description: City for the delivery address.
example: San Francisco
state:
type: string
description: State for the delivery address.
example: California
zip_code:
type: string
description: Zipcode for the address.
example: '94105'
country:
type: string
description: Country of the address.
example: USA
Consumer:
title: Consumer
description: Consumer information.
required:
- external_consumer_id
- email
- phone_number
- address
- first_name
- last_name
type: object
properties:
external_consumer_id:
type: string
description: Merchant's identifier for consumer.
example: '12345678'
email:
type: string
description: The email of the consumer.
example: tonyxu22@doordash.com
phone_number:
type: string
description: Phone number of the consumer.
example: '+16505555555'
address:
type: string
description: Formatted address string.
example: 12345 Oakview Drive, San Francisco, CA 94108
first_name:
type: string
description: 'Given/first name of the customer creating the delivery; cannot contain ~, `, @, #, $, %, ^, &, *, +, =, ?, ;, [, {, ], }'
example: Jane
last_name:
type: string
description: 'Family/last name of the customer creating the delivery; cannot contain ~, `, @, #, $, %, ^, &, *, +, =, ?, ;, [, {, ], }'
example: Goodall
securitySchemes:
Drive_API_Key_Authentication:
type: apiKey
scheme: bearer
in: header
name: Authorization
description: We will be using stateful token based API keys to authenticate clients, passed in the 'Authorization' header as 'Bearer {API_KEY}'.