silvercar Reporting API

Generic reporting discovery and data retrieval endpoints

Operations 2

POST /reporting/data Returns reporting data for a logical table search #
POST /reporting/metadata Returns reporting metadata for logical tables #

Documentation

Specifications

Schemas & Data

Other Resources

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/silvercar:silvercar-reporting-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

silvercar-reporting-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@dealerware.com
    name: Dealerware Support
    url: https://support.dealerware.com
  description: MOB-API
  termsOfService: support@dealerware.com
  title: MOB Reporting API
  version: 1.0.0
servers:
- url: https://api.dealerware.com
  description: Production server
- url: https://api.dw-tst.com
  description: Staging server
security:
- Auth0: []
tags:
- name: Reporting
  description: Generic reporting discovery and data retrieval endpoints
paths:
  /reporting/data:
    parameters:
    - name: api-version
      in: header
      description: Target API version
      required: true
      schema:
        type: integer
        example: 4
    post:
      summary: Returns reporting data for a logical table search
      description: 'This endpoint executes a report query against a logical table.


        The server builds the query for the client from:

        - `columns`: the exact column labels to include

        - `filters`: equality filters using `{ column_name, value }`

        - `runtime_filters`: advanced runtime filters

        - `runtime_param_override`: parameter overrides


        Access scope:

        - Before querying data, the server resolves `name_patterns` to exactly one logical table available

        to the `custom_reporting` user group.


        Behavior notes:

        1. `/reporting/data.filters` is the simple query-string path and is currently equality-only.

        2. `runtime_filters` supports richer operators. Use metadata to determine which operators are valid

        for a given field.

        3. DATE and DATE_TIME columns may include a date bucket suffix in `columns` and `filters` using

        `Column Name.bucket` syntax. The server sends these to ThoughtSpot as `[Column Name].bucket`.

        Supported buckets are `detailed`, `hourly`, `daily`, `weekly`, `monthly`, `quarterly`, and `yearly`.

        DATE and DATE_TIME columns sent without a suffix default to `detailed`.

        4. ISO 8601 timestamp strings in `runtime_filters` are converted to epoch seconds before the request

        is sent only when they include a time component.

        5. `runtime_param_override` forwards parameter overrides as numbered `param1`, `paramVal1`, etc.

        6. Single-OEM admins may omit `runtime_param_override.oem`; the server infers it from the

        authenticated user.

        7. OEM admins with access to multiple OEMs must send a non-blank `runtime_param_override`

        entry with `name: "oem"`.

        8. Non-OEM admins do not get OEM scoping from `runtime_param_override.oem`; any client-supplied

        `oem` override is stripped and the server injects a runtime filter equivalent to

        `preferred_dealer = true`.

        9. The query filter `[filter_oem]=true` is added only when the effective outgoing

        `runtime_param_override` includes `oem`.

        10. The reporting response is returned with date-like values normalized for API clients.


        Validation rules:

        1. `name_patterns` must include at least one non-blank pattern.

        2. `name_patterns` must resolve to exactly one authorized logical table.

        3. At least one column is required.

        4. Every filter column must also appear in `columns`.

        5. `filters` is equality-only.

        6. `runtime_filters` supports richer operators.

        7. Multi-OEM admins must provide `runtime_param_override.oem`.

        8. Dotted column names must use one of the supported date bucket suffixes.


        Pagination:

        - `page` (1-based) and `per_page` control how many rows are returned in a single response.

        - Total-record counts are not surfaced because they are known to be inaccurate.


        Typical flow:

        1. Call `/reporting/metadata`.

        2. Copy `data_sources[*].name_patterns`.

        3. Choose one or more values from `data_sources[*].column_names`.

        4. Optionally apply equality filters using `data_sources[*].filters`.

        5. Optionally add `runtime_filters` using `data_sources[*].runtime_filters`, for example date ranges

        with `BW_INC`.

        6. Optionally add `runtime_param_override` using `data_sources[*].runtime_parameters`.

        Include `oem` only when the authenticated user has access to multiple OEMs.

        Single-OEM admins may omit `oem`, and non-OEM admins should not rely on sending it.

        7. Call `/reporting/data`.


        Example query generation:

        - Request:

        `columns: ["OEM", "Region"]`

        `filters: [{ "column_name": "Region", "value": "West" }]`

        - Generated query string:

        `[OEM] [Region] [Region]="West"`

        - Date bucket request:

        `columns: ["Actual Pickup At.daily"]`

        - Generated date bucket token:

        `[Actual Pickup At].daily`'
      operationId: postReportingData
      tags:
      - Reporting
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportingDataRequest'
            examples:
              single_oem_admin_infers_oem:
                summary: Single-OEM admin omits oem and the server infers it
                value:
                  name_patterns:
                  - Contracts
                  columns:
                  - DBA Name
                  - Dealer Code
                  - Region
                  filters:
                  - column_name: Region
                    value: West
                  runtime_filters:
                  - column_name: Scheduled Pickup At
                    operator: BW_INC
                    values:
                    - '2026-04-01T00:00:00Z'
                    - '2026-04-30T23:59:59Z'
                  runtime_param_override:
                  - name: Date Filter
                    value: ACTUAL_DROPOFF_AT
                  page: 1
                  per_page: 25
              multi_oem_admin_explicit_oem:
                summary: Multi-OEM admin must send an explicit oem override
                value:
                  name_patterns:
                  - Contracts
                  columns:
                  - DBA Name
                  - Dealer Code
                  - Region
                  filters:
                  - column_name: Region
                    value: West
                  runtime_param_override:
                  - name: oem
                    value: Acura
                  page: 1
                  per_page: 25
              non_oem_admin_oem_is_ignored:
                summary: Non-OEM admins should not rely on client-supplied oem
                value:
                  name_patterns:
                  - Contracts
                  columns:
                  - DBA Name
                  - Dealer Code
                  - Region
                  runtime_param_override:
                  - name: oem
                    value: Acura
                  - name: Date Filter
                    value: ACTUAL_DROPOFF_AT
                  page: 1
                  per_page: 25
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportingDataResponse'
              examples:
                compact_rows:
                  summary: Reporting response
                  value:
                    contents:
                    - column_names:
                      - DBA Name
                      - Dealer Code
                      - Region
                      - Actual Pickup At
                      data_rows:
                      - - Dealer One
                        - D001
                        - West
                        - '2026-04-01T00:00:00Z'
                      - - Dealer Two
                        - D002
                        - West
                        - '2026-04-02T00:00:00Z'
        '400':
          $ref: '#/components/responses/ReportingBadRequest'
        '401':
          $ref: '#/components/responses/ReportingUnauthorized'
        '403':
          $ref: '#/components/responses/ReportingForbidden'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportingErrorResponse'
              examples:
                missing_name_patterns:
                  value:
                    error: name_patterns must include at least one non-blank pattern
                ambiguous_name_patterns:
                  value:
                    error: name_patterns must resolve to exactly one logical table
                missing_columns:
                  value:
                    error: columns must include at least one column name
                unknown_filter_column:
                  value:
                    error: 'Unknown filter column: Region'
                unsupported_date_bucket:
                  value:
                    error: 'Unsupported date bucket: foo. Supported buckets: detailed, hourly, daily, weekly, monthly, quarterly, yearly'
                missing_multi_oem_oem_override:
                  value:
                    error: runtime_param_override must include oem for OEM admins with access to multiple OEMs
  /reporting/metadata:
    parameters:
    - name: api-version
      in: header
      description: Target API version
      required: true
      schema:
        type: integer
        example: 4
    post:
      summary: Returns reporting metadata for logical tables
      description: 'This endpoint is the discovery step for reporting.


        It searches logical tables and returns a reduced response built for API clients:

        - `name_patterns`: the stable selector to send to `/reporting/data`

        - `column_names`: the exact column labels clients may request in `/reporting/data.columns`

        - `filters`: query-string filter metadata for `/reporting/data.filters`

        - `runtime_filters`: column-level runtime filter metadata for `/reporting/data.runtime_filters`

        - `runtime_parameters`: parameter metadata for `/reporting/data.runtime_param_override`


        The response intentionally strips out the large raw metadata detail payload.

        Results are limited to logical tables available to the `custom_reporting` user group.


        Typical flow:

        1. Call `/reporting/metadata` with optional `name_patterns` that match the worksheet or logical table.

        2. Read `data_sources[*].column_names` and let the user choose which columns to include.

        3. Read `data_sources[*].filters[*]` to build `/reporting/data.filters`.

        4. Read `data_sources[*].runtime_filters[*]` to build `/reporting/data.runtime_filters`.

        5. Read `data_sources[*].runtime_parameters[*]` to build `/reporting/data.runtime_param_override`.

        6. Call `/reporting/data` with `name_patterns`, `columns`, and whichever of those three inputs you need.


        Behavior notes:

        1. `column_names` comes from `metadata_detail.columns[*].header.name`.

        2. If only top-level `column_names` are available, the API still returns them but leaves

        `filters` and `runtime_filters` empty because filterability cannot be inferred.

        3. `filters[*].operators` only describes `/reporting/data.filters`, which is currently equality-only.

        4. `runtime_filters[*].operators` describes `/reporting/data.runtime_filters`.

        5. Date and datetime runtime filters expose range operators such as `BW` and `BW_INC`.

        6. `runtime_parameters` is sourced from useful raw parameter metadata when present.

        7. Date-like metadata values are returned as ISO 8601 strings. DATE values use `YYYY-MM-DD`;

        DATE_TIME values use UTC timestamps such as `2026-04-01T00:00:00Z`.


        Pagination:

        - `page` (1-based) and `per_page` control how many logical tables are returned in a single response.

        - Total-record counts are not surfaced because they are known to be inaccurate.


        Access scope:

        - `name_patterns` defaults to `["%"]` when omitted.

        - Results are permission-scoped to the `custom_reporting` user group.'
      operationId: postReportingMetadata
      tags:
      - Reporting
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportingMetadataRequest'
            examples:
              contracts_lookup:
                summary: Discover the Contracts worksheet
                value:
                  name_patterns:
                  - Contracts%
                  page: 1
                  per_page: 10
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportingMetadataResponse'
              examples:
                contracts_metadata:
                  summary: Minimal metadata response for a client UI
                  value:
                    data_sources:
                    - name_patterns:
                      - Contracts
                      logical_table_name: Contracts
                      column_names:
                      - DBA Name
                      - Dealer Code
                      - Region
                      - Contract Duration
                      - Contract Status
                      filters:
                      - name: DBA Name
                        operators:
                        - EQ
                        data_type: VARCHAR
                        allowed_values:
                        - Dealer One
                        - Dealer Two
                      - name: Dealer Code
                        operators:
                        - EQ
                        data_type: VARCHAR
                      - name: Region
                        operators:
                        - EQ
                        data_type: VARCHAR
                      - name: Contract Status
                        operators:
                        - EQ
                        data_type: VARCHAR
                      runtime_filters:
                      - name: Actual Dropoff At
                        operators:
                        - EQ
                        - BW
                        - BW_INC
                        - GT
                        - GTE
                        - LT
                        - LTE
                        data_type: DATE_TIME
                      runtime_parameters:
                      - name: oem
                        operators:
                        - EQ
                        data_type: CHAR
                        default_value: Acura
                        allowed_values:
                        - Acura
                        - Audi
                        - BMW
        '400':
          $ref: '#/components/responses/ReportingBadRequest'
        '401':
          $ref: '#/components/responses/ReportingUnauthorized'
        '403':
          $ref: '#/components/responses/ReportingForbidden'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '422':
          $ref: '#/components/responses/ReportingUnprocessableContent'
components:
  schemas:
    ReportingMetadataRequest:
      type: object
      properties:
        name_patterns:
          type: array
          description: 'Optional stable selectors that match logical tables by name.

            Defaults to `["%"]` when omitted.

            '
          items:
            type: string
          example:
          - Contracts%
        page:
          type: integer
          minimum: 1
          default: 1
          description: 1-based page number for pagination.
        per_page:
          type: integer
          minimum: 1
          description: Number of logical tables to return per page.
          example: 10
      example:
        name_patterns:
        - Contracts%
        page: 1
        per_page: 10
    ReportingDataResponse:
      type: object
      description: 'Reporting response. The server preserves the underlying payload shape

        without adding total-row counts, which are known to be inaccurate. Date-like

        response values are normalized to ISO 8601 strings: DATE values use

        `YYYY-MM-DD`, and DATE_TIME values use UTC timestamps such as

        `2026-04-01T00:00:00Z`.

        '
      additionalProperties: true
      example:
        contents:
        - column_names:
          - DBA Name
          - Dealer Code
          - Region
          - Actual Pickup At
          data_rows:
          - - Dealer One
            - D001
            - West
            - '2026-04-01T00:00:00Z'
          - - Dealer Two
            - D002
            - West
            - '2026-04-02T00:00:00Z'
    ReportingColumnFilter:
      type: object
      required:
      - column_name
      - value
      properties:
        column_name:
          type: string
          description: 'Must be one of the selected values in `columns`. Bucketed date columns use the same

            `Column Name.bucket` syntax as `columns`.

            '
          example: Actual Pickup At.daily
        value:
          description: Equality value for the filter.
          oneOf:
          - type: string
          - type: number
          - type: integer
          - type: boolean
          example: West
    ReportingDataRequest:
      type: object
      required:
      - name_patterns
      - columns
      properties:
        name_patterns:
          type: array
          description: 'Stable selector for the logical table to query. Copy this from

            `POST /reporting/metadata -> data_sources[*].name_patterns`.

            The provided patterns must resolve to exactly one authorized logical table.

            '
          items:
            type: string
          example:
          - Contracts
        columns:
          type: array
          minItems: 1
          description: 'Exact column labels to include. At least one column is required.

            Choose values from `POST /reporting/metadata -> data_sources[*].column_names`.

            DATE and DATE_TIME columns may append one supported bucket suffix using `Column Name.bucket`;

            supported buckets are `detailed`, `hourly`, `daily`, `weekly`, `monthly`, `quarterly`, and `yearly`.

            Omitting the suffix on a DATE or DATE_TIME column defaults it to `detailed`.

            '
          items:
            type: string
          example:
          - DBA Name
          - Dealer Code
          - Actual Pickup At.daily
        filters:
          type: array
          description: 'Equality filters using `{ column_name, value }`.

            Each `filters[*].column_name` must also appear in `columns`.

            Only use values returned by `POST /reporting/metadata -> data_sources[*].filters[*].name`.

            '
          items:
            $ref: '#/components/schemas/ReportingColumnFilter'
          example:
          - column_name: Region
            value: West
        runtime_filters:
          type: array
          description: 'Advanced runtime filters. Intended for advanced cases such as date-range filtering.

            Use metadata to determine which operators are valid for a given field.

            ISO 8601 timestamp strings are converted to epoch seconds only when they include a time component.

            '
          items:
            $ref: '#/components/schemas/ReportingRuntimeFilter'
          example:
          - column_name: Scheduled Pickup At
            operator: BW_INC
            values:
            - '2026-04-01T00:00:00Z'
            - '2026-04-30T23:59:59Z'
        runtime_param_override:
          type: array
          description: "Parameter overrides forwarded as numbered `param1`, `paramVal1`, etc.\nOEM handling depends on the authenticated user:\n- Single-OEM admin: if `oem` is omitted, the server infers it and adds `[filter_oem]=true`.\n- Multi-OEM admin: the request must include a non-blank `oem` override.\n- Non-OEM admin: any client-supplied `oem` override is stripped, and the server injects\n  `preferred_dealer = true` as a runtime filter.\n"
          items:
            $ref: '#/components/schemas/ReportingRuntimeParameter'
          example:
          - name: Date Filter
            value: ACTUAL_DROPOFF_AT
        page:
          type: integer
          minimum: 1
          default: 1
          description: 1-based page number for pagination.
        per_page:
          type: integer
          minimum: 1
          description: Number of rows to return per page.
          example: 25
      example:
        name_patterns:
        - Contracts
        columns:
        - DBA Name
        - Dealer Code
        - Region
        filters:
        - column_name: Region
          value: West
        runtime_filters:
        - column_name: Scheduled Pickup At
          operator: BW_INC
          values:
          - '2026-04-01T00:00:00Z'
          - '2026-04-30T23:59:59Z'
        runtime_param_override:
        - name: Date Filter
          value: ACTUAL_DROPOFF_AT
        page: 1
        per_page: 25
    ReportingMetadataResponse:
      type: object
      required:
      - data_sources
      properties:
        data_sources:
          type: array
          items:
            $ref: '#/components/schemas/ReportingDataSource'
      example:
        data_sources:
        - name_patterns:
          - Contracts
          logical_table_name: Contracts
          column_names:
          - DBA Name
          - Dealer Code
          - Region
          - Contract Duration
          - Contract Status
          filters:
          - name: DBA Name
            operators:
            - EQ
            data_type: VARCHAR
            allowed_values:
            - Dealer One
            - Dealer Two
          - name: Dealer Code
            operators:
            - EQ
            data_type: VARCHAR
          - name: Region
            operators:
            - EQ
            data_type: VARCHAR
          runtime_filters:
          - name: Actual Dropoff At
            operators:
            - EQ
            - BW
            - BW_INC
            - GT
            - GTE
            - LT
            - LTE
            data_type: DATE_TIME
          runtime_parameters:
          - name: oem
            operators:
            - EQ
            data_type: CHAR
            default_value: Acura
            allowed_values:
            - Acura
            - Audi
            - BMW
    ReportingRuntimeFilterDefinition:
      type: object
      required:
      - name
      - operators
      properties:
        name:
          type: string
          description: Exact column label clients may send in `/reporting/data.runtime_filters[*].column_name`.
          example: Actual Dropoff At
        operators:
          type: array
          description: 'Operators supported by `/reporting/data.runtime_filters` for this column.

            Date and datetime columns expose range operators such as `BW` and `BW_INC`.

            '
          items:
            type: string
            enum:
            - EQ
            - BW
            - BW_INC
            - GT
            - GTE
            - LT
            - LTE
          example:
          - EQ
          - BW_INC
        data_type:
          type: string
          description: Reporting data type when available.
          example: DATE_TIME
        allowed_values:
          type: array
          description: Enumerated values when the column metadata exposes them.
          items:
            oneOf:
            - type: string
            - type: number
            - type: integer
            - type: boolean
          example:
          - West
          - East
    ReportingQueryFilterDefinition:
      type: object
      required:
      - name
      - operators
      properties:
        name:
          type: string
          description: Exact column label clients may send in `/reporting/data.filters[*].column_name`.
          example: Region
        operators:
          type: array
          description: 'Operators supported by `/reporting/data.filters` for this column.

            The query-string filter path is currently equality-only.

            '
          items:
            type: string
            enum:
            - EQ
          example:
          - EQ
        data_type:
          type: string
          description: Reporting data type when available.
          example: VARCHAR
        allowed_values:
          type: array
          description: Enumerated values when the column metadata exposes them.
          items:
            oneOf:
            - type: string
            - type: number
            - type: integer
            - type: boolean
          example:
          - West
          - East
    ReportingRuntimeParameter:
      type: object
      required:
      - name
      - value
      properties:
        name:
          type: string
          description: 'Parameter name to override at runtime.

            `oem` is auth-dependent: inferred for single-OEM admins, required for multi-OEM admins,

            and ignored for non-OEM admins.

            '
          example: oem
        value:
          description: Runtime parameter value.
          oneOf:
          - type: string
          - type: number
          - type: integer
          - type: boolean
          example: Acura
    ReportingRuntimeParameterDefinition:
      type: object
      required:
      - name
      - operators
      properties:
        name:
          type: string
          description: Exact parameter name clients may send in `/reporting/data.runtime_param_override[*].name`.
          example: oem
        operators:
          type: array
          items:
            type: string
            enum:
            - EQ
          example:
          - EQ
        data_type:
          type: string
          description: Reporting data type when available.
          example: CHAR
        default_value:
          description: Default value when the parameter metadata exposes one.
          oneOf:
          - type: string
          - type: number
          - type: integer
          - type: boolean
          example: Acura
        allowed_values:
          type: array
          description: Enumerated values when the parameter metadata exposes them.
          items:
            oneOf:
            - type: string
            - type: number
            - type: integer
            - type: boolean
          example:
          - Acura
          - Audi
    ReportingErrorResponse:
      type: object
      required:
      - error
      properties:
        error:
          type: string
          example: name_patterns must include at least one non-blank pattern
    ReportingDataSource:
      type: object
      required:
      - name_patterns
      - column_names
      - filters
      - runtime_filters
      - runtime_parameters
      properties:
        name_patterns:
          type: array
          description: Stable selector to send back to `/reporting/data.name_patterns`.
          items:
            type: string
          example:
          - Contracts
        logical_table_name:
          type: string
          description: Human-readable name of the logical table. Returned for display purposes.
          example: Contracts
        column_names:
          type: array
          description: Exact column labels clients may request in `/reporting/data.columns`.
          items:
            type: string
          example:
          - DBA Name
          - Dealer Code
          - Region
        filters:
          type: array
          description: Query-string filter metadata for `/reporting/data.filters`.
          items:
            $ref: '#/components/schemas/ReportingQueryFilterDefinition'
          example:
          - name: DBA Name
            operators:
            - EQ
            data_type: VARCHAR
          - name: Region
            operators:
            - EQ
            data_type: VARCHAR
        runtime_filters:
          type: array
          description: Column-level runtime filter metadata for `/reporting/data.runtime_filters`.
          items:
            $ref: '#/components/schemas/ReportingRuntimeFilterDefinition'
          example:
          - name: Actual Dropoff At
            operators:
            - EQ
            - BW
            - BW_INC
            - GT
            - GTE
            - LT
            - LTE
            data_type: DATE_TIME
        runtime_parameters:
          type: array
          description: Parameter metadata for `/reporting/data.runtime_param_override`.
          items:
            $ref: '#/components/schemas/ReportingRuntimeParameterDefinition'
          example:
          - name: oem
            operators:
            - EQ
            data_type: CHAR
            default_value: Acura
    ReportingRuntimeFilter:
      type: object
      required:
      - column_name
      - operator
      properties:
        column_name:
          type: string
          description: Column label to filter at runtime.
          example: Scheduled Pickup At
        operator:
          type: string
          description: 'Runtime filter operator. Use one of the operators surfaced by

            `POST /reporting/metadata -> data_sources[*].runtime_filters[*].operators` for this field.

            '
          example: BW_INC
        value:
          description: 'Single runtime filter value.

            ISO 8601 strings are converted to epoch seconds only when they include a time component.

            '
          oneOf:
          - type: string
          - type: number
          - type: integer
          - type: boolean
          example: West
        values:
          type: array
          description: 'Multiple runtime filter values, for example a date range.

            ISO 8601 strings are converted to epoch seconds only when they include a time component.

            '
          items:
            oneOf:
            - type: string
            - type: number
            - type: integer
            - type: boolean
          example:
          - '2026-04-01T00:00:00Z'
          - '2026-04-30T23:59:59Z'
  responses:
    ReportingUnprocessableContent:
      description: Unprocessable Content
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReportingErrorResponse'
    ReportingForbidden:
      description: Forbidden
    ReportingUnauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReportingErrorResponse'
          example:
            error: Your session has expired. Please sign in again.
    NotAcceptable:
      description: Not Acceptable
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Missing headers in request
              code:
                type: integer
                example: 6789
    ReportingBadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ReportingErrorResponse'
          example:
            error: User must have a valid email
  securitySchemes:
    Auth0:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://dealerware.auth0.com/oauth/token
          scopes: {}
x-provenance:
  method: searched
  source: https://developer.dealerware.com/reference
  harvested: '2026-10-14'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://developer.dealerware.com/reference/admincustomerget-1.md
  - https://developer.dealerware.com/reference/createblacklist-1.md
  - https://developer.dealerware.com/reference/deleteadmincontractcancel-1.md
  - https://developer.dealerware.com/reference/deleteadmincontractsplitbill-1.md
  - https://developer.dealerware.com/reference/deleteadmincontractsplitbillpayment-1.md
  - https://developer.dealerware.com/reference/deleteadmincontractswarranty-1.md
  - https://developer.dealerware.com/reference/deleteadmindealershipwebhook.md


# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/silvercar/refs/heads/main/openapi/silvercar-reporting-api-openapi.yml