{
  "documentationLink": "https://developers.google.com/bid-manager/",
  "revision": "20260415",
  "protocol": "rest",
  "description": "DoubleClick Bid Manager API allows users to manage and create campaigns and reports.",
  "title": "DoubleClick Bid Manager API",
  "batchPath": "batch",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/doubleclickbidmanager": {
          "description": "View and manage your reports in DoubleClick Bid Manager"
        }
      }
    }
  },
  "canonicalName": "DoubleClick Bid Manager",
  "name": "doubleclickbidmanager",
  "version": "v2",
  "discoveryVersion": "v1",
  "id": "doubleclickbidmanager:v2",
  "ownerDomain": "google.com",
  "resources": {
    "queries": {
      "resources": {
        "reports": {
          "methods": {
            "get": {
              "parameterOrder": [
                "queryId",
                "reportId"
              ],
              "flatPath": "queries/{queryId}/reports/{reportId}",
              "parameters": {
                "queryId": {
                  "type": "string",
                  "format": "int64",
                  "description": "Required. The ID of the query that generated the report.",
                  "location": "path",
                  "required": true
                },
                "reportId": {
                  "description": "Required. The ID of the query to retrieve.",
                  "format": "int64",
                  "type": "string",
                  "required": true,
                  "location": "path"
                }
              },
              "httpMethod": "GET",
              "description": "Retrieves a report.",
              "response": {
                "$ref": "Report"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclickbidmanager"
              ],
              "id": "doubleclickbidmanager.queries.reports.get",
              "path": "queries/{queryId}/reports/{reportId}"
            },
            "list": {
              "description": "Lists reports generated by the provided query.",
              "parameters": {
                "queryId": {
                  "location": "path",
                  "required": true,
                  "description": "Required. The ID of the query that generated the reports.",
                  "type": "string",
                  "format": "int64"
                },
                "pageSize": {
                  "format": "int32",
                  "type": "integer",
                  "description": "Maximum number of results per page. Must be between `1` and `100`. Defaults to `100` if unspecified.",
                  "location": "query"
                },
                "pageToken": {
                  "type": "string",
                  "description": "A token identifying which page of results the server should return. Typically, this is the value of nextPageToken returned from the previous call to the `queries.reports.list` method. If unspecified, the first page of results is returned.",
                  "location": "query"
                },
                "orderBy": {
                  "type": "string",
                  "description": "Field to sort the list by. Accepts the following values: * `key.reportId` (default) The default sorting order is ascending. To specify descending order for a field, add the suffix `desc` to the field name. For example, `key.reportId desc`.",
                  "location": "query"
                }
              },
              "httpMethod": "GET",
              "flatPath": "queries/{queryId}/reports",
              "parameterOrder": [
                "queryId"
              ],
              "id": "doubleclickbidmanager.queries.reports.list",
              "path": "queries/{queryId}/reports",
              "response": {
                "$ref": "ListReportsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/doubleclickbidmanager"
              ]
            }
          }
        }
      },
      "methods": {
        "delete": {
          "scopes": [
            "https://www.googleapis.com/auth/doubleclickbidmanager"
          ],
          "parameterOrder": [
            "queryId"
          ],
          "flatPath": "queries/{queryId}",
          "parameters": {
            "queryId": {
              "type": "string",
              "format": "int64",
              "description": "Required. The ID of the query to delete.",
              "location": "path",
              "required": true
            }
          },
          "httpMethod": "DELETE",
          "description": "Deletes an existing query as well as its generated reports.",
          "id": "doubleclickbidmanager.queries.delete",
          "path": "queries/{queryId}"
        },
        "list": {
          "response": {
            "$ref": "ListQueriesResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclickbidmanager"
          ],
          "id": "doubleclickbidmanager.queries.list",
          "path": "queries",
          "flatPath": "queries",
          "parameterOrder": [],
          "description": "Lists queries created by the current user.",
          "parameters": {
            "pageSize": {
              "description": "Maximum number of results per page. Must be between `1` and `100`. Defaults to `100` if unspecified.",
              "location": "query",
              "format": "int32",
              "type": "integer"
            },
            "orderBy": {
              "type": "string",
              "description": "Field to sort the list by. Accepts the following values: * `queryId` (default) * `metadata.title` The default sorting order is ascending. To specify descending order for a field, add the suffix `desc` to the field name. For example, `queryId desc`.",
              "location": "query"
            },
            "pageToken": {
              "description": "A token identifying which page of results the server should return. Typically, this is the value of nextPageToken, returned from the previous call to the `queries.list` method. If unspecified, the first page of results is returned.",
              "location": "query",
              "type": "string"
            }
          },
          "httpMethod": "GET"
        },
        "run": {
          "id": "doubleclickbidmanager.queries.run",
          "path": "queries/{queryId}:run",
          "request": {
            "$ref": "RunQueryRequest"
          },
          "response": {
            "$ref": "Report"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclickbidmanager"
          ],
          "description": "Runs an existing query to generate a report.",
          "parameters": {
            "queryId": {
              "format": "int64",
              "type": "string",
              "description": "Required. The ID of the query to run.",
              "required": true,
              "location": "path"
            },
            "synchronous": {
              "description": "Whether the query should be run synchronously. When `true`, the request won't return until the resulting report has finished running. This parameter is `false` by default. Setting this parameter to `true` is **not recommended**.",
              "location": "query",
              "type": "boolean"
            }
          },
          "httpMethod": "POST",
          "flatPath": "queries/{queryId}:run",
          "parameterOrder": [
            "queryId"
          ]
        },
        "create": {
          "parameters": {},
          "httpMethod": "POST",
          "description": "Creates a new query.",
          "parameterOrder": [],
          "flatPath": "queries",
          "request": {
            "$ref": "Query"
          },
          "id": "doubleclickbidmanager.queries.create",
          "path": "queries",
          "response": {
            "$ref": "Query"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclickbidmanager"
          ]
        },
        "get": {
          "parameterOrder": [
            "queryId"
          ],
          "flatPath": "queries/{queryId}",
          "httpMethod": "GET",
          "parameters": {
            "queryId": {
              "location": "path",
              "required": true,
              "type": "string",
              "format": "int64",
              "description": "Required. The ID of the query to retrieve."
            }
          },
          "description": "Retrieves a query.",
          "response": {
            "$ref": "Query"
          },
          "scopes": [
            "https://www.googleapis.com/auth/doubleclickbidmanager"
          ],
          "id": "doubleclickbidmanager.queries.get",
          "path": "queries/{queryId}"
        }
      }
    }
  },
  "baseUrl": "https://doubleclickbidmanager.googleapis.com/v2/",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "parameters": {
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "alt": {
      "location": "query",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "description": "Data format for response.",
      "type": "string",
      "default": "json"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean",
      "default": "true"
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query",
      "type": "string"
    },
    "access_token": {
      "description": "OAuth access token.",
      "location": "query",
      "type": "string"
    },
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query",
      "type": "string"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "$.xgafv": {
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "enum": [
        "1",
        "2"
      ],
      "description": "V1 error format.",
      "type": "string"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "type": "string"
    }
  },
  "servicePath": "v2/",
  "rootUrl": "https://doubleclickbidmanager.googleapis.com/",
  "kind": "discovery#restDescription",
  "mtlsRootUrl": "https://doubleclickbidmanager.mtls.googleapis.com/",
  "ownerName": "Google",
  "schemas": {
    "Parameters": {
      "type": "object",
      "properties": {
        "metrics": {
          "type": "array",
          "description": "Metrics to define the data populating the report. Defined by [Metric](/bid-manager/reference/rest/v2/filters-metrics#metrics) values.",
          "items": {
            "type": "string"
          }
        },
        "filters": {
          "description": "Filters to limit the scope of reported data.",
          "items": {
            "$ref": "FilterPair"
          },
          "type": "array"
        },
        "options": {
          "description": "Additional report parameter options.",
          "$ref": "Options"
        },
        "groupBys": {
          "items": {
            "type": "string"
          },
          "description": "Dimensions by which to segment and group the data. Defined by [Filter](/bid-manager/reference/rest/v2/filters-metrics#filters) values.",
          "type": "array"
        },
        "type": {
          "type": "string",
          "description": "The type of the report. The type of the report determines the dimesions, filters, and metrics that can be used.",
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false,
            true,
            true
          ],
          "enum": [
            "REPORT_TYPE_UNSPECIFIED",
            "STANDARD",
            "INVENTORY_AVAILABILITY",
            "AUDIENCE_COMPOSITION",
            "FLOODLIGHT",
            "YOUTUBE",
            "GRP",
            "YOUTUBE_PROGRAMMATIC_GUARANTEED",
            "REACH",
            "UNIQUE_REACH_AUDIENCE",
            "FULL_PATH",
            "PATH_ATTRIBUTION"
          ],
          "enumDescriptions": [
            "Default value when report type is not specified or is unknown in this version.",
            "Standard report.",
            "Inventory Availability report.",
            "Audience Composition report.",
            "Floodlight report.",
            "YouTube report.",
            "GRP report.",
            "YouTube Programmatic Guaranteed report.",
            "Reach report.",
            "Unique Reach Audience report.",
            "Full Path report.",
            "Path Attribution report."
          ]
        }
      },
      "id": "Parameters",
      "description": "Parameters of a generated report."
    },
    "ListReportsResponse": {
      "id": "ListReportsResponse",
      "type": "object",
      "properties": {
        "reports": {
          "items": {
            "$ref": "Report"
          },
          "description": "The list of reports. This field will be absent if empty.",
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `queries.reports.list` method to retrieve the next page of results.",
          "type": "string"
        }
      }
    },
    "QuerySchedule": {
      "description": "Settings on when and how frequently to run a query.",
      "id": "QuerySchedule",
      "type": "object",
      "properties": {
        "frequency": {
          "type": "string",
          "enum": [
            "FREQUENCY_UNSPECIFIED",
            "ONE_TIME",
            "DAILY",
            "WEEKLY",
            "SEMI_MONTHLY",
            "MONTHLY",
            "QUARTERLY",
            "YEARLY"
          ],
          "enumDescriptions": [
            "Default value when frequency is not specified or is unknown in this version.",
            "Only when the query is run manually.",
            "Once a day.",
            "Once a week.",
            "Twice a month.",
            "Once a month.",
            "Once a quarter.",
            "Once a year."
          ],
          "description": "How frequently to run the query. If set to `ONE_TIME`, the query will only be run when queries.run is called."
        },
        "endDate": {
          "$ref": "Date",
          "description": "The date on which to end the scheduled runs. This field is required if frequency is not set to `ONE_TIME`. Otherwise, it will be ignored."
        },
        "startDate": {
          "description": "The date on which to begin the scheduled runs. This field is required if frequency is not set to `ONE_TIME`. Otherwise, it will be ignored.",
          "$ref": "Date"
        },
        "nextRunTimezoneCode": {
          "description": "The canonical code for the timezone the query schedule is based on. Scheduled runs are usually conducted in the morning of a given day. Defaults to `America/New_York`.",
          "type": "string"
        }
      }
    },
    "ListQueriesResponse": {
      "type": "object",
      "properties": {
        "queries": {
          "type": "array",
          "items": {
            "$ref": "Query"
          },
          "description": "The list of queries. This field will be absent if empty."
        },
        "nextPageToken": {
          "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `queries.list` method to retrieve the next page of results.",
          "type": "string"
        }
      },
      "id": "ListQueriesResponse"
    },
    "ReportKey": {
      "type": "object",
      "properties": {
        "reportId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The unique ID of the report.",
          "readOnly": true
        },
        "queryId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The unique ID of the query that generated the report.",
          "readOnly": true
        }
      },
      "id": "ReportKey",
      "description": "Identifying information of a report."
    },
    "Date": {
      "type": "object",
      "properties": {
        "year": {
          "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
          "format": "int32",
          "type": "integer"
        },
        "day": {
          "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.",
          "format": "int32",
          "type": "integer"
        },
        "month": {
          "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.",
          "type": "integer",
          "format": "int32"
        }
      },
      "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp",
      "id": "Date"
    },
    "ReportStatus": {
      "type": "object",
      "properties": {
        "finishTime": {
          "description": "Output only. The timestamp of when report generation finished successfully or in failure. This field will not be set unless state is `DONE` or `FAILED`.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "format": {
          "type": "string",
          "enum": [
            "FORMAT_UNSPECIFIED",
            "CSV",
            "XLSX"
          ],
          "enumDescriptions": [
            "Default value when format is not specified or is unknown in this version.",
            "CSV.",
            "Excel."
          ],
          "description": "The format of the generated report file."
        },
        "state": {
          "enum": [
            "STATE_UNSPECIFIED",
            "QUEUED",
            "RUNNING",
            "DONE",
            "FAILED"
          ],
          "readOnly": true,
          "enumDescriptions": [
            "Default value when state is not specified or is unknown in this version.",
            "The report is queued to run.",
            "The report is currently running.",
            "The report has finished running successfully.",
            "The report has finished running in failure."
          ],
          "type": "string",
          "description": "Output only. The state of the report generation."
        }
      },
      "description": "The status of a report.",
      "id": "ReportStatus"
    },
    "DataRange": {
      "description": "The date range to be reported on.",
      "id": "DataRange",
      "type": "object",
      "properties": {
        "range": {
          "type": "string",
          "enum": [
            "RANGE_UNSPECIFIED",
            "CUSTOM_DATES",
            "CURRENT_DAY",
            "PREVIOUS_DAY",
            "WEEK_TO_DATE",
            "MONTH_TO_DATE",
            "QUARTER_TO_DATE",
            "YEAR_TO_DATE",
            "PREVIOUS_WEEK",
            "PREVIOUS_MONTH",
            "PREVIOUS_QUARTER",
            "PREVIOUS_YEAR",
            "LAST_7_DAYS",
            "LAST_30_DAYS",
            "LAST_90_DAYS",
            "LAST_365_DAYS",
            "ALL_TIME",
            "LAST_14_DAYS",
            "LAST_60_DAYS"
          ],
          "enumDescriptions": [
            "Default value when range is not specified or is unknown in this version.",
            "Custom date range.",
            "Current day.",
            "Previous day.",
            "All days, including the current day, since the most recent Sunday.",
            "All days, including the current day, since the start of the current month.",
            "All days, including the current day, since the start of the current quarter.",
            "All days, including the current day, since the start of the current calendar year.",
            "The previous completed week, beginning from Sunday.",
            "The previous completed calendar month.",
            "The previous completed quarter.",
            "The previous completed calendar year.",
            "The previous 7 days, excluding the current day.",
            "The previous 30 days, excluding the current day.",
            "The previous 90 days, excluding the current day.",
            "The previous 365 days, excluding the current day.",
            "All time for which data is available, excluding the current day.",
            "The previous 14 days, excluding the current day.",
            "The previous 60 days, excluding the current day."
          ],
          "description": "The preset date range to be reported on. If `CUSTOM_DATES` is assigned to this field, fields custom_start_date and custom_end_date must be set to specify the custom date range."
        },
        "customEndDate": {
          "description": "If `CUSTOM_DATES` is assigned to range, this field specifies the end date for the date range that is reported on. This field is required if using `CUSTOM_DATES` range and will be ignored otherwise.",
          "$ref": "Date"
        },
        "customStartDate": {
          "description": "If `CUSTOM_DATES` is assigned to range, this field specifies the starting date for the date range that is reported on. This field is required if using `CUSTOM_DATES` range and will be ignored otherwise.",
          "$ref": "Date"
        }
      }
    },
    "ReportMetadata": {
      "type": "object",
      "properties": {
        "reportDataEndDate": {
          "$ref": "Date",
          "description": "The end date of the report data date range."
        },
        "googleCloudStoragePath": {
          "description": "Output only. The location of the generated report file in Google Cloud Storage. This field will be absent if status.state is not `DONE`.",
          "readOnly": true,
          "type": "string"
        },
        "status": {
          "$ref": "ReportStatus",
          "description": "The status of the report."
        },
        "reportDataStartDate": {
          "$ref": "Date",
          "description": "The start date of the report data date range."
        }
      },
      "id": "ReportMetadata",
      "description": "The metadata of a report."
    },
    "Query": {
      "description": "A single query used to generate a report.",
      "id": "Query",
      "type": "object",
      "properties": {
        "metadata": {
          "description": "The metadata of the query.",
          "$ref": "QueryMetadata"
        },
        "queryId": {
          "format": "int64",
          "type": "string",
          "description": "Output only. The unique ID of the query.",
          "readOnly": true
        },
        "params": {
          "$ref": "Parameters",
          "description": "The parameters of the report generated by the query."
        },
        "schedule": {
          "$ref": "QuerySchedule",
          "description": "When and how often the query is scheduled to run. If the frequency field is set to `ONE_TIME`, the query will only run when queries.run is called."
        }
      }
    },
    "Options": {
      "id": "Options",
      "description": "Report parameter options.",
      "type": "object",
      "properties": {
        "includeOnlyTargetedUserLists": {
          "description": "Whether to include data for audience lists specifically targeted by filtered line items or insertion orders. Requires the use of `FILTER_INSERTION_ORDER` or `FILTER_LINE_ITEM` filters.",
          "type": "boolean"
        }
      }
    },
    "FilterPair": {
      "description": "Represents a single filter rule.",
      "id": "FilterPair",
      "type": "object",
      "properties": {
        "type": {
          "description": "The type of value to filter by. Defined by a [Filter](/bid-manager/reference/rest/v2/filters-metrics#filters) value.",
          "type": "string"
        },
        "value": {
          "description": "The identifying value to filter by, such as a relevant resource ID.",
          "type": "string"
        }
      }
    },
    "QueryMetadata": {
      "type": "object",
      "properties": {
        "title": {
          "description": "The display name of the query. This value will be used in the file name of reports generated by the query.",
          "type": "string"
        },
        "dataRange": {
          "description": "The date range the report generated by the query will report on. This date range will be defined by the time zone as used by the advertiser.",
          "$ref": "DataRange"
        },
        "shareEmailAddress": {
          "items": {
            "type": "string"
          },
          "description": "List of additional email addresses with which to share the query. If send_notification is `true`, these email addresses will receive a notification when a report generated by the query is ready. If these email addresses are connected to Display & Video 360 users, the query will be available to them in the Display & Video 360 interface.",
          "type": "array"
        },
        "format": {
          "type": "string",
          "enum": [
            "FORMAT_UNSPECIFIED",
            "CSV",
            "XLSX"
          ],
          "enumDescriptions": [
            "Default value when format is not specified or is unknown in this version.",
            "CSV.",
            "Excel."
          ],
          "description": "The format of the report generated by the query."
        },
        "sendNotification": {
          "description": "Whether an email notification is sent to the query creator when a report generated by the query is ready. This value is `false` by default.",
          "type": "boolean"
        }
      },
      "description": "The metadata of the query.",
      "id": "QueryMetadata"
    },
    "Report": {
      "id": "Report",
      "description": "A single report generated by its parent report.",
      "type": "object",
      "properties": {
        "key": {
          "$ref": "ReportKey",
          "description": "The key information identifying the report."
        },
        "metadata": {
          "$ref": "ReportMetadata",
          "description": "The metadata of the report."
        },
        "params": {
          "description": "The parameters of the report.",
          "$ref": "Parameters"
        }
      }
    },
    "RunQueryRequest": {
      "type": "object",
      "properties": {
        "dataRange": {
          "$ref": "DataRange",
          "description": "The date range used by the query to generate the report. If unspecified, the query's original data_range is used."
        }
      },
      "description": "Details specifying how to run a query.",
      "id": "RunQueryRequest"
    }
  },
  "basePath": "/v2/"
}
