Doordash Report API

The Report API from Doordash — 3 operation(s) for report.

Operations 3

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 /ads/api/v1/sp/reports/{recordType}/create Create an ads performance report · Create report #
Ask an LLM
“How do I create an ads performance report for a date range?”
“How far back can an ads report go?”
Tell an agent
Create a {recordType} report named {reportName} from {startDate} to {endDate}.
Create a {recordType} report {reportName} for {startDate} to {endDate} as {fileType}.
GET /ads/api/v1/sp/reports/download/{reportId} Download an ads report · Download report #
Ask an LLM
“Where do I download an ads report once it is ready?”
“Can I fetch a finished ads report file by its ID?”
Tell an agent
Download ads report {reportId}.
Fetch the file for ads report {reportId}.
GET /ads/api/v1/sp/reports/list List my ads reports · Get reports #
Ask an LLM
“Which ads reports have I created recently?”
“Can I filter my reports by status or name?”
Tell an agent
List ads reports created since {startDate}.
List reports since {startDate} whose name contains {reportNameContains}.

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-report-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-report-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.29
  title: DoorDash Ads Report API
  description: DoorDash Ads API for Sponsored Products for campaign management and reporting operations.
servers:
- url: https://openapi.doordash.com
security:
- Ads API Key Authentication: []
tags:
- name: Report
paths:
  /ads/api/v1/sp/reports/{recordType}/create:
    post:
      tags:
      - Report
      operationId: createReport
      summary: Create report
      description: Create a single report. See request samples for example report requests. Note that there is a 3 year rolling window for reports (`startDate` cannot be more than three years ago).
      parameters:
      - name: recordType
        in: path
        required: true
        schema:
          $ref: '#/components/parameters/recordType'
        examples:
          Campaign:
            value: CAMPAIGN
            summary: Campaign Report (SB, SP)
          CampaignPerformanceAndPlacement:
            value: ADGROUP
            summary: Campaign Performance Report (SB, SP), Placement Report (SP)
          Product:
            value: PRODUCT
            summary: Product Report (SB, SP)
          Keyword:
            value: KEYWORD
            summary: Keyword Report (SP)
          CategoryShare:
            value: CATEGORY_SHARE
            summary: Category Share Report
          ProductSales:
            value: PRODUCT_SALES
            summary: Product Sales Report
          Catalog:
            value: CATALOG
            summary: Catalog Report
          InterestInsight:
            value: INTEREST_INSIGHTS
            summary: Interest Insight Report
      requestBody:
        description: Report request parameters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateReportRequest'
            examples:
              CampaignSB:
                summary: Sponsored Brand Campaign Report
                value:
                  reportName: Sponsored Brand Campaign Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  campaignTypes:
                  - SPONSORED_BRAND
              CampaignPerformanceSB:
                summary: Sponsored Brand Campaign Performance Report
                value:
                  reportName: Sponsored Brand Campaign Performance Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  campaignTypes:
                  - SPONSORED_BRAND
              CampaignPerformanceSBDayparted:
                summary: Sponsored Brand Dayparted Campaign Performance Report
                value:
                  reportName: Sponsored Brand Dayparted Campaign Performance Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  campaignTypes:
                  - SPONSORED_BRAND
                  timeGranularity: HOUR
              ProductSB:
                summary: Sponsored Brand Product Report
                value:
                  reportName: Sponsored Brand Product Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  campaignTypes:
                  - SPONSORED_BRAND
              ProductSBDayparted:
                summary: Sponsored Brand Dayparted Product Report
                value:
                  reportName: Sponsored Brand Dayparted Product Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  campaignTypes:
                  - SPONSORED_BRAND
                  timeGranularity: HOUR
              CampaignSP:
                summary: Sponsored Products Campaign Report
                value:
                  reportName: Sponsored Products Campaign Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  campaignTypes:
                  - SPONSORED_PRODUCTS
              CampaignPerformanceSP:
                summary: Sponsored Products Campaign Performance Report
                value:
                  reportName: Sponsored Products Campaign Performance Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  campaignTypes:
                  - SPONSORED_PRODUCTS
              CampaignPerformanceSPDayparted:
                summary: Sponsored Products Dayparted Campaign Performance Report
                value:
                  reportName: Sponsored Products Dayparted Campaign Performance Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  campaignTypes:
                  - SPONSORED_PRODUCTS
                  timeGranularity: HOUR
              ProductSP:
                summary: Sponsored Products Product Report
                value:
                  reportName: Sponsored Products Product Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  campaignTypes:
                  - SPONSORED_PRODUCTS
              ProductSPDayparted:
                summary: Sponsored Products Dayparted Product Report
                value:
                  reportName: Sponsored Products Dayparted Product Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  campaignTypes:
                  - SPONSORED_PRODUCTS
                  timeGranularity: HOUR
              Placement:
                summary: Sponsored Products Placement Report
                value:
                  reportName: Sponsored Products Placement Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  segment: SEGMENT
                  campaignTypes:
                  - SPONSORED_PRODUCTS
              PlacementDayparted:
                summary: Sponsored Products Dayparted Placement Report
                value:
                  reportName: Sponsored Products Dayparted Placement Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  segment: SEGMENT
                  campaignTypes:
                  - SPONSORED_PRODUCTS
                  timeGranularity: HOUR
              Keyword:
                summary: Sponsored Products Keyword Report
                value:
                  reportName: Sponsored Products Keyword Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  campaignTypes:
                  - SPONSORED_PRODUCTS
              CategoryShareWeekly:
                summary: Category Share Weekly Nielsen Report
                value:
                  reportName: Category Share Weekly Nielsen Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  groupBys: '[BRAND, VERTICAL]'
                  timeGranularity: '[WEEK]'
                  categoryProvider: NIELSEN
              CategoryShareMonthly:
                summary: Category Share Monthly Circana Report
                value:
                  reportName: Category Share Monthly Circana Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  groupBys: '[BRAND, VERTICAL, CATEGORY]'
                  timeGranularity: '[MONTH]'
                  categoryProvider: CIRCANA
              ProductSalesDaily:
                summary: Product Sales Daily Report
                value:
                  reportName: Product Sales Daily Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  groupBys: '[BRAND, VERTICAL, ITEM]'
                  timeGranularity: '[DAY]'
              ProductSalesWeekly:
                summary: Product Sales Weekly Report
                value:
                  reportName: Product Sales Weekly Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  groupBys: '[BRAND, VERTICAL, ITEM]'
                  timeGranularity: '[WEEK]'
              ProductSalesMonthly:
                summary: Product Sales Monthly Report
                value:
                  reportName: Product Sales Monthly Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  groupBys: '[BRAND, VERTICAL, ITEM]'
                  timeGranularity: '[MONTH]'
              ProductSalesRetailer:
                summary: Product Sales Retailer Report
                value:
                  reportName: Product Sales Retailer Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  groupBys: '[RETAILER]'
                  timeGranularity: '[MONTH]'
              Catalog:
                summary: Catalog Report
                value:
                  reportName: Catalog Report
                  startDate: '2025-11-01 00:00:00'
                  endDate: '2025-11-01 00:00:00'
                  filters:
                  - field: L1_BRAND
                    terms:
                    - 1
                    - 2
                  - field: STATUS
                    terms:
                    - ACTIVE
                    - INACTIVE
                  - field: SEARCH_TERM
                    terms:
                    - bottle
              InterestInsightsDish:
                summary: Interest Insights Dish Report
                value:
                  reportName: Interest Insights Dish Report
                  startDate: '2025-01-01 00:00:00'
                  endDate: '2025-04-01 00:00:00'
                  groupBys: '[DISH]'
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateReportResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /ads/api/v1/sp/reports/download/{reportId}:
    get:
      tags:
      - Report
      operationId: downloadReportRequest
      summary: Download report
      description: Download a single report by the provided identifier.
      parameters:
      - name: reportId
        in: path
        description: The identifier for a report.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DownloadReportResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /ads/api/v1/sp/reports/list:
    get:
      tags:
      - Report
      operationId: listReports
      summary: Get reports
      description: Get a list of reports, optionally filtered by status or report type.
      parameters:
      - name: startDate
        in: query
        description: Get all reports requested after this date.
        required: true
        schema:
          type: string
        example: '2025-11-01 00:00:00'
      - name: endDate
        in: query
        description: Get all reports requested before this date.
        schema:
          type: string
        example: '2025-11-01 00:00:00'
      - $ref: '#/components/parameters/startIndex'
      - $ref: '#/components/parameters/count'
      - name: status
        in: query
        description: Filter report by status.
        schema:
          $ref: '#/components/schemas/ReportStatus'
      - name: reportNameContains
        in: query
        description: Get all report names requested containing this substring, case-insensitive and trimmed.
        schema:
          type: string
      - name: sortCol
        in: query
        description: Sort reports by this column.
        schema:
          type: string
          enum:
          - name
          - type
          - startDate
          - dateGenerated
          - status
          default: dateGenerated
      - name: sortDir
        in: query
        description: Sort reports by this direction.
        schema:
          type: string
          enum:
          - ASC
          - DESC
          default: DESC
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListReportsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    Name:
      description: Resource name.
      type: string
    CatalogReportFilter:
      type: object
      properties:
        field:
          description: Product filter types for catalog reporting.
          type: string
          enum:
          - L1_BRAND
          - STATUS
          - SEARCH_TERM
        terms:
          type: array
          items:
            type: string
    FileType:
      description: Report file type.
      type: string
      enum:
      - CSV
    ListReportsResponse:
      properties:
        totalCount:
          type: integer
        reports:
          type: array
          items:
            $ref: '#/components/schemas/ReportResponse'
    CategoryProvider:
      description: Data provider for product category definitions. Only applicable for Category Share reports. Note that Circana is only available to US advertisers.
      type: string
      enum:
      - NIELSEN
      - CIRCANA
      example: CIRCANA
    Date:
      description: A date string in format of yyyy-MM-dd HH:mm:ss
      type: string
      example: '2025-11-01 00:00:00'
    ReportCampaignType:
      type: string
      enum:
      - SPONSORED_PRODUCTS
      - SPONSORED_BRAND
    ReportStatus:
      type: string
      enum:
      - SCHEDULED
      - PROCESSING
      - COMPLETED
      - ERROR
      example: COMPLETED
    CreateReportRequest:
      required:
      - reportName
      - startDate
      - endDate
      properties:
        reportName:
          description: Name of the report
          type: string
        fileType:
          $ref: '#/components/schemas/FileType'
        startDate:
          $ref: '#/components/schemas/Date'
        endDate:
          $ref: '#/components/schemas/Date'
        segment:
          $ref: '#/components/schemas/Segment'
        groupBys:
          description: '- <code>"CATEGORY"</code> only available for Nielsen Category Share reports for Alcohol and non-US advertisers, and Circana Category Share reports for US advertisers.

            - <code>"RETAILER"</code> only available to Product Sales and Category Share reports for Diamond and Gold tier advertisers.

            - <code>"RETAILER"</code> and <code>"VERTICAL"</code> cannot be both requested in the same report.

            - <code>"DISH"</code> only available for Interest Insights reports.

            '
          type: array
          items:
            $ref: '#/components/schemas/GroupBy'
        timeGranularity:
          $ref: '#/components/schemas/TimeGranularity'
        filters:
          type: array
          items:
            $ref: '#/components/schemas/CatalogReportFilter'
        campaignTypes:
          $ref: '#/components/schemas/ReportCampaignTypes'
        categoryProvider:
          $ref: '#/components/schemas/CategoryProvider'
    DownloadReportResponse:
      required:
      - reportId
      - url
      - name
      - requestedAt
      - reportExpiresAt
      - status
      properties:
        reportId:
          $ref: '#/components/schemas/ReportId'
        url:
          type: string
          description: URL to download the report. This URL expires approximately 30 minutes after it is generated, so download the report within that window. Once the URL has expired, accessing it returns an `ExpiredToken` error ("The provided token has expired"). To obtain a fresh URL, call the download report endpoint again.
          example: https://doordash-marketing-save-report-prod.s3.us-west-2.amazonaws.com/...
        name:
          $ref: '#/components/schemas/Name'
        requestedAt:
          $ref: '#/components/schemas/Date'
        reportExpiresAt:
          $ref: '#/components/schemas/Date'
        status:
          $ref: '#/components/schemas/ReportStatus'
        recordType:
          $ref: '#/components/schemas/RecordType'
        groupBys:
          type: array
          items:
            $ref: '#/components/schemas/GroupBy'
        timeGranularity:
          $ref: '#/components/schemas/TimeGranularity'
        campaignTypes:
          $ref: '#/components/schemas/ReportCampaignTypes'
        categoryProvider:
          $ref: '#/components/schemas/CategoryProvider'
    Error:
      properties:
        code:
          description: An enumerated error for machine use.
          type: string
          readOnly: true
        details:
          description: A human-readable description of the error.
          type: string
          readOnly: true
    Segment:
      description: A secondary dimension used to further segment certain types of reports.
      type: string
      enum:
      - PLACEMENT
      - NONE
    RecordType:
      type: string
      enum:
      - CAMPAIGN
      - ADGROUP
      - PRODUCT
      - KEYWORD
      - PRODUCT_SALES
      - CATEGORY_SHARE
      - CATALOG
      - INTEREST_INSIGHTS
    TimeGranularity:
      description: '- HOUR (for dayparted reports) is currently in **Beta**.

        - Category Share supports Week or Month grain

        - Product Sales supports Day, Week, or Month grain

        '
      type: string
      enum:
      - HOUR
      - DAY
      - WEEK
      - MONTH
      - NONE
    CreateReportResponse:
      required:
      - reportId
      properties:
        reportId:
          $ref: '#/components/schemas/ReportId'
    ReportCampaignTypes:
      description: '- Type of campaigns to include in the report.

        - Only relevant for Marketing reports (when recordType is one of <code>{CAMPAIGN, ADGROUP, PRODUCT, KEYWORD}</code>).

        - Only one campaign type may be specified per report request.

        '
      type: array
      maxItems: 1
      items:
        $ref: '#/components/schemas/ReportCampaignType'
    ReportId:
      description: Unique report identifier.
      type: string
    ReportResponse:
      required:
      - reportId
      - name
      - status
      - startDate
      - endDate
      - dateGenerated
      properties:
        reportId:
          $ref: '#/components/schemas/ReportId'
        name:
          $ref: '#/components/schemas/Name'
        status:
          $ref: '#/components/schemas/ReportStatus'
        recordType:
          $ref: '#/components/schemas/RecordType'
        segment:
          $ref: '#/components/schemas/Segment'
        groupBys:
          type: array
          items:
            $ref: '#/components/schemas/GroupBy'
        startDate:
          $ref: '#/components/schemas/Date'
        endDate:
          $ref: '#/components/schemas/Date'
        dateGenerated:
          $ref: '#/components/schemas/Date'
        categoryProvider:
          $ref: '#/components/schemas/CategoryProvider'
    GroupBy:
      type: string
      enum:
      - BRAND
      - VERTICAL
      - CATEGORY
      - ITEM
      - RETAILER
      - DISH
  responses:
    InternalServerError:
      description: One or more query parameters contained an invalid value.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Bad request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    startIndex:
      name: startIndex
      in: query
      description: 0-indexed record offset for the result set. Defaults to 0.
      schema:
        type: number
        default: 0
    recordType:
      name: recordType
      in: query
      description: 'one of: CAMPAIGN, ADGROUP, PRODUCT, KEYWORD, CATEGORY_SHARE, PRODUCT_SALES, CATALOG, INTEREST_INSIGHTS'
      required: true
      schema:
      - $ref: '#/components/schemas/RecordType'
    count:
      name: count
      in: query
      description: Number of records to include in the paged response.
      required: false
      schema:
        type: number
  securitySchemes:
    Ads_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}'.