Three lines

Uber

Developers

[API] Generate Report

Privileged and Confidential This endpoint design has been confidentially shared with you. It is still under development and is subject to change without notice. Please do not share this document or API endpoint details with anyone who is not authorized to have access. For more information read about scopes.

Generate a report based on the report type for the organization. The report fetches the data for all the child orgs in the org hierarchy based on the organisation uuid passed in the request.

Resource

v1/vehicle-suppliers/suppliers/:org_id/reports

HTTP Method

POST

Access Method

Client Credentials

Required scopes

Primary - solutions.suppliers.reports

Usage

The client should access the Get Organizations API that fetches the child organizations for the given organisation. This API returns the encrypted IDs for the linked organizations . The clients can then use the encrypted organization ID in the below request for the generateReport API for generating the report. For getting the master organisation’s encrypted uuid please reach out to support team.

Example Request
curl --location 'https://api.uber.com/v1/vehicle-suppliers/suppliers/<org_id>/reports' \
--header "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
--data '{
    "reportType": "<report_type>",
    "filters": [
            {
            "field": "dateRange",
            "operator": "OPERATOR_IN_RANGE",
            "value": [
                  "1687559400000",
                  "1687732199000"
              ]
            }
          ]
    }'
Request Path Parameters
Name Type Required Description
org_id string Y Encrypted organisation UUID.
Request Body Parameters
Name Type Required Description
filters Array of Filter N This has a list of filters that needs to be added for specific report types to be generated.
reportType string Y This is an enum . Values are mentioned in ReportType

Filter

Name Type Required Description
field string N This represents the field on which the filter needs to be applied. (example:- “dateRange”)
operator Enum Operator Y This is an enum which represents eligible operators.
value List of strings Y Values which need to be applied as filters.
Example Response
{
  "report": {
    "id": "dsuirhwiuhrfbryrurptpt",
    "fileName": "abcs.csv",
    "orgId": "qoiewoifpwionfwoinwovmow4ivmp",
    "reportType": "REPORT_TYPE_DRIVER_QUALITY",
    "startTime": "2023-03-30T00:13:55.926Z",
    "endTime": "2023-03-30T00:13:55.926Z",
    "status": "REPORT_STATUS_IN_PROGRESS",
    "failedReason": "REPORT_GENERATION_FAILED_REASON_NONE",
    "createdAt": "2023-06-30T00:13:55.926Z",
    "updatedAt": "2023-06-30T00:13:55.926Z",
    "completedAt": "2023-06-30T00:13:58.926Z"
  }
}
Response Fields
Name Type Description
report Object of Report Report
Request Entities

Operator

Name Value Description
OPERATOR_IN_RANGE OPERATOR_IN_RANGE Operator to be used for range filters (example date range filter to add filter between 2 date range a,b)
OPERATOR_IN OPERATOR_IN Operator to be used for in filters
Response Entities

Report

Name type Description
id string This is the report id.
fileName string This is the file name for requested report.
orgId string This is organization id (obfuscated).
reportType string Represents the type of the report ReportType.
startTime string ISO UTC time format for example 2023-03-30T00:13:55.926Z.
endTime string ISO UTC time format for example 2023-03-30T00:13:55.926Z.
status string Represents the generation status of the report ReportStatus.
failedReason string One of the values in FailedReason.
createdAt string ISO UTC time format for example 2023-03-30T00:13:55.926Z.
updatedAt string ISO UTC time format for example 2023-03-30T00:13:55.926Z.
completedAt string ISO UTC time format for example 2023-03-30T00:13:55.926Z, represents the time when the report generation was completed.

ReportType

Name Description
REPORT_TYPE_ORGANIZATION List of organizations.
REPORT_TYPE_PAYMENTS_ORDER Report having payment information for orders.
REPORT_TYPE_PAYMENTS_DRIVER Report having payment information for driver.
REPORT_TYPE_PAYMENTS_ORGANIZATION Report having payment information for organization.
REPORT_TYPE_DRIVER_QUALITY Report having driver quality related information.
REPORT_TYPE_DRIVER_ACTIVITY Report having driver activity related information.
REPORT_TYPE_TRIP_ACTIVITY Report having trips related information.
REPORT_TYPE_DRIVER_STATUS Report having driver realtime status and onboarding status related information.
REPORT_TYPE_DRIVER Report having driver information.
REPORT_TYPE_TRIP Report having trip information.
REPORT_TYPE_VEHICLE_PERFORMANCE Report having vehicle performance related information.
REPORT_TYPE_DRIVER_PERFORMANCE Report having driver performance related information.
REPORT_TYPE_BACKFILL_REALTIME_DRIVER_STATUS_CHANGE_WEBHOOK_EVENTS Report containing failed delivery events for REALTIME_DRIVER_STATUS_CHANGE webhook

ReportStatus

Name Description
REPORT_STATUS_COMPLETED Report generation is completed.
REPORT_STATUS_FAILED Report generation failed due to some issue.
REPORT_STATUS_IN_PROGRESS Report generation is in progress.

FailedReason

Name Description
REPORT_GENERATION_FAILED_REASON_INTERNAL_SERVER_ERROR Failed due to some internal error.
REPORT_GENERATION_FAILED_REASON_NONE No failure occured.
Notes
  • DateRange to be passed in request should be in epoch format(milliseconds) and UTC timezone.
    • For example, if we intend to download the report for date 24th June 2023 to 25th June 2023 IST timezone, then the epoch values to be sent in the filter request should be 1687559400000, 1687645800000.
    • The date represented in the supplier portal List view for reports generated through this endpoint will have a date in yyyy-mm-dd format with the supplier’s configured timezone.
  • In 3hour time frame (computed from the request time for the latest request), there can be only six reports(irrespective of reportType) in progress status per organization uuid. Hence, we can have six reports concurrently generated per organization uuid. The additional generate request will error out and won’t perform report generation.
Rate Limit
  • Rate limit for this endpoint is 600 requests per 10 minutes per Developer Application.
Endpoint Specific Errors
Http Status Code Code Message
400 bad_request The request parameters are invalid.
500 internal_server_error Internal server error.
403 unauthenticated User does not have permission.
429 rate_limited Number of requests exceeds allowed limit.
503 service_unavailable Service unavailable.
401 unauthorized Invalid OAuth 2.0 credentials.

Uber

Developers
© 2023 Uber Technologies Inc.