Doordash New Verticals Self Serve Integration Endpoints API

Endpoints for new verticals self-serve integration onboarding

Operations 2

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /api/v2/managed_merchant_connect_url Generate an onboarding URL for one merchant · Generate managed merchant onboarding URL #
Ask an LLM
“How do I generate an onboarding link for a merchant location?”
“What merchant details are required to create an onboarding URL?”
Tell an agent
Generate an onboarding URL for location {location_id} in group {location_group_id} for store {store_name}.
Create a merchant connect link for {email} at location {location_id}.
POST /api/v2/nv_multi_location_onboarding_intent Submit onboarding for many locations at once · Submit onboarding intent for multiple store locations in a single batch #
Ask an LLM
“Can I submit onboarding for many store locations in one batch?”
“Does the batch onboarding submission return an onboarding URL?”
Tell an agent
Submit onboarding intent for these locations: {requests}.
Batch onboard multiple store locations with {requests}.

Work with this as data

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-newverticalsselfserveintegrationendpoints-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 Specification

doordash-newverticalsselfserveintegrationendpoints-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: API to manage item catalog, inventory, pricing and other attributes.
  version: '2.0'
  title: Doordash Item management API Specification New Verticals…
  x-logo:
    url: https://cdn.doordash.com/static/img/merchant/logo-red@3x.png
    backgroundColor: '#FFFFFF'
    altText: Doordash Marketplace
    href: https://developer.doordash.com/
servers:
- url: https://openapi.doordash.com/marketplace
tags:
- name: NewVerticalsSelfServeIntegrationEndpoints
  x-displayName: New Verticals Self-Serve Integration Onboarding
  description: Endpoints for new verticals self-serve integration onboarding
paths:
  /api/v2/managed_merchant_connect_url:
    post:
      tags:
      - NewVerticalsSelfServeIntegrationEndpoints
      summary: Generate managed merchant onboarding URL
      description: Creates a managed merchant onboarding URL for NV SSIO partner-initiated merchant onboarding. The partner must redirect the merchant to the returned URL, where DoorDash hosts and manages the full onboarding flow including authentication, store creation, and provider linking.
      operationId: createManagedMerchantConnectUrl
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedMerchantConnectRequest'
      responses:
        '200':
          description: Successfully generated managed merchant connect URL
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManagedMerchantConnectResponse'
        '400':
          description: Request Validation Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldError'
        '401':
          description: Request unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '409':
          description: Conflict - Store already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreAlreadyExistsError'
        '429':
          description: Request is rate limited
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestRateLimitedError'
        '500':
          description: Internal service failure, please try again later
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/server_fault'
      x-codegen-request-body-name: body
      deprecated: false
  /api/v2/nv_multi_location_onboarding_intent:
    post:
      tags:
      - NewVerticalsSelfServeIntegrationEndpoints
      summary: Submit onboarding intent for multiple store locations in a single batch
      description: Batch sibling of managed_merchant_connect_url for NV SSIO partner-initiated merchant onboarding - submits onboarding intent for multiple store locations in one call. Unlike managed_merchant_connect_url, no onboarding URL is returned; onboarding completion for accepted locations is a manual DoorDash-rep follow-up. Each location in the batch is processed independently, so a per-location failure does not fail the rest of the batch - see the results array in the response.
      operationId: submitMultiLocationOnboardingIntent
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiLocationOnboardingIntentRequest'
      responses:
        '200':
          description: Batch received - see the per-location results array for individual outcomes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiLocationOnboardingIntentResponse'
        '400':
          description: Request Validation Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldError'
        '401':
          description: Request unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '429':
          description: Request is rate limited
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestRateLimitedError'
        '500':
          description: Internal service failure, please try again later
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/server_fault'
      x-codegen-request-body-name: body
      deprecated: false
components:
  schemas:
    RequestRateLimitedError:
      x-error: true
      type: object
      description: Request was rate limited.
      required:
      - code
      - message
      properties:
        code:
          type: string
          enum:
          - request_rate_limited
        message:
          type: string
          example: Request was rate limited. You may be calling the API too much in a short time.
    MerchantAddress:
      type: object
      required:
      - line_1
      - city
      - state
      - zip
      properties:
        line_1:
          type: string
          description: Street address
        line_2:
          type: string
          description: Apartment, suite, etc.
        city:
          type: string
          description: City
        state:
          type: string
          description: State (2-letter code)
          pattern: ^[A-Z]{2}$
        zip:
          type: string
          description: ZIP/postal code
    MultiLocationOnboardingIntentResponse:
      type: object
      properties:
        results:
          type: array
          description: One result per submitted location, positionally matching the request list and identifiable by location_id. Per-location business failures (e.g. invalid address) do not fail the whole batch.
          items:
            $ref: '#/components/schemas/MultiLocationOnboardingIntentResult'
    AuthenticationError:
      x-error: true
      type: object
      description: 'Authentication error: the token provided with the request doesn''t work for the requested operation'
      required:
      - code
      - message
      properties:
        code:
          type: string
          enum:
          - authentication_error
          default: authentication_error
        message:
          type: string
          example: The [exp] is in the past; the JWT is expired
          default: The [exp] is in the past; the JWT is expired
    ManagedMerchantConnectRequest:
      type: object
      required:
      - location_id
      - location_group_id
      - store_name
      - address
      - first_name
      - last_name
      - email
      - merchant_decision_maker_email
      - order_protocol
      - fulfillment_protocol
      - locale
      properties:
        location_id:
          type: string
          description: Unique identifier of the store in partner system (becomes location_id in API calls)
        location_group_id:
          type: string
          description: Unique identifier of the parent business in partner system
        store_name:
          type: string
          description: Customer-facing name of the store (e.g., "Burger Shack")
        location_name:
          type: string
          description: Location-specific context (e.g., "Burger Shack - Las Vegas")
        address:
          $ref: '#/components/schemas/MerchantAddress'
        first_name:
          type: string
          description: First name of user on partner side initiating request
        last_name:
          type: string
          description: Last name of user on partner side
        email:
          type: string
          format: email
          description: Email for user on partner side (receives status updates)
        business_phone:
          type: string
          description: Phone number for requestor
        expected_go_live_date:
          type: string
          format: date
          description: Expected activation date (YYYY-MM-DD, best effort)
          example: '2026-01-15'
        merchant_decision_maker_email:
          type: string
          format: email
          description: Merchant email (must be Business Admin in DoorDash Merchant Portal)
        order_protocol:
          type: string
          enum:
          - POS
          - TABLET
          description: POS - Merchant receives and fulfills orders via their POS; TABLET - Merchant will be sent a DD tablet and orders will not go to their POS
        fulfillment_protocol:
          type: string
          enum:
          - MERCHANT_PICK
          - DASHER_PICK
          description: MERCHANT_PICK - merchant picks; DASHER_PICK - dasher shops and delivers
        locale:
          type: string
          enum:
          - en-US
          description: Locale for the merchant onboarding experience
    ManagedMerchantConnectResponse:
      type: object
      properties:
        managed_merchant_connect_url:
          type: string
          format: uri
          description: Managed Merchant Onboarding URL. The partner must redirect the merchant to this URL where DoorDash hosts the full onboarding flow. After completion, DoorDash displays a confirmation page and the merchant should close the tab and return to the partner portal.
    ValidationFieldError:
      x-error: true
      title: ValidationFieldError
      type: object
      description: One or more request values couldn't be validated.
      required:
      - code
      - message
      - field_errors
      properties:
        code:
          type: string
          enum:
          - validation_error
        message:
          type: string
          description: One or more request values couldn't be validated.
          example: One or more request values couldn't be validated.
        field_errors:
          type: array
          description: The list of fields whose values couldn't be validated. See more [error examples](https://developer.doordash.com/en-US/docs/drive/reference/errors)
          items:
            $ref: '#/components/schemas/FieldError'
          readOnly: true
    FieldError:
      title: FieldError
      type: object
      description: A field whose value couldn't be validated.
      required:
      - field
      - error
      properties:
        field:
          type: string
          description: Name of the field whose value couldn't be validated.
          example: pickup_phone_number
        error:
          type: string
          description: The error that was encountered when validating the field's value.
          example: Invalid phone number format
    server_fault:
      x-error: true
      type: object
      description: Internal service failure, please try again later.
      required:
      - code
      - message
      properties:
        code:
          type: string
          enum:
          - service_fault
          default: service_fault
        message:
          type: string
          example: Internal service failure, please try again later.
          default: Internal service failure, please try again later.
    StoreAlreadyExistsError:
      x-error: true
      type: object
      description: Store with the provided partner_store_id is already onboarded
      required:
      - code
      - message
      properties:
        code:
          type: string
          enum:
          - store_already_exists
          default: store_already_exists
        message:
          type: string
          example: Store with partner_store_id 'shopify_store_456' is already onboarded
    AuthorizationError:
      x-error: true
      type: object
      description: 'Authorization error: the credentials provided with the request don''t work for the requested operation'
      required:
      - code
      - message
      properties:
        code:
          type: string
          enum:
          - authorization_error
          default: authorization_error
        message:
          type: string
          example: 'Authorization error: the credentials provided with the request don''t work for the requested operation'
          default: 'Authorization error: the credentials provided with the request don''t work for the requested operation'
    MultiLocationOnboardingIntentResult:
      type: object
      properties:
        location_id:
          type: string
          description: Echoes the location_id from the corresponding request
        code:
          type: string
          description: gRPC status code name. "OK" means DoorDash accepted the onboarding intent for this location. No managed_merchant_connect_url is ever returned by this endpoint - onboarding completion for accepted locations is a manual follow-up.
          example: OK
        error:
          type: string
          description: Present only when code is not "OK"
    MultiLocationOnboardingIntentRequest:
      type: object
      required:
      - requests
      properties:
        requests:
          type: array
          minItems: 1
          maxItems: 100
          description: One onboarding intent request per store location, submitted as a single batch
          items:
            $ref: '#/components/schemas/ManagedMerchantConnectRequest'