openapi: 3.2.0 info: title: Google Ads Media API description: Manage your Google Ads accounts, campaigns, and reports with this API. version: v25 x-discovery-revision: '20260721' contact: name: Google url: https://developers.google.com/google-ads/api/ termsOfService: https://developers.google.com/terms servers: - url: https://googleads.googleapis.com description: Google Ads API production server security: - oauth2: - https://www.googleapis.com/auth/adwords tags: - name: media paths: /v25/customers/{customersId}/youTubeVideoUploads:create: parameters: - name: upload_protocol in: query required: false schema: type: string description: Upload protocol for media (e.g. "raw", "multipart"). - name: quotaUser in: query required: false schema: type: string 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. - name: fields in: query required: false schema: type: string description: Selector specifying which fields to include in a partial response. - name: $.xgafv in: query required: false schema: type: string enum: - '1' - '2' x-enumDescriptions: - v1 error format - v2 error format description: V1 error format. - name: callback in: query required: false schema: type: string description: JSONP - name: prettyPrint in: query required: false schema: type: boolean default: 'true' description: Returns response with indentations and line breaks. - name: access_token in: query required: false schema: type: string description: OAuth access token. - name: uploadType in: query required: false schema: type: string description: Legacy upload protocol for media (e.g. "media", "multipart"). - name: key in: query required: false schema: type: string 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. - name: oauth_token in: query required: false schema: type: string description: OAuth 2.0 token for the current user. - name: alt in: query required: false schema: x-enumDescriptions: - Responses with Content-Type of application/json - Media download with context-dependent Content-Type - Responses with Content-Type of application/x-protobuf type: string default: json enum: - json - media - proto description: Data format for response. post: operationId: googleads_media_upload summary: Uploads a video to Google-managed or advertiser owned (brand) YouTube channel. tags: - media description: Uploads a video to Google-managed or advertiser owned (brand) YouTube channel. parameters: - name: customerId in: path required: true schema: type: string pattern: ^[^/]+$ description: Required. The customer ID requesting the upload. Required. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__CreateYouTubeVideoUploadRequest' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__CreateYouTubeVideoUploadResponse' security: - oauth2: - https://www.googleapis.com/auth/adwords components: schemas: GoogleAdsGoogleadsV25Resources__YouTubeVideoUpload: description: Represents a video upload to YouTube using the Google Ads API. type: object properties: videoUploadId: format: int64 description: Output only. The unique ID of the YouTube video upload. type: string state: x-enumDescriptions: - Not specified. - The value is unknown in this version. - The video is currently being uploaded. - The video was uploaded and is being processed. - The video was successfully uploaded and processed. - The video upload or processing did not complete successfully. - The video was not accepted due to validation or policy reasons. - The video upload state is unavailable. It may have been removed from YouTube. type: string description: Output only. The current state of the YouTube video upload. enum: - UNSPECIFIED - UNKNOWN - PENDING - UPLOADED - PROCESSED - FAILED - REJECTED - UNAVAILABLE videoPrivacy: description: The privacy state of the video. Only mutable for videos uploaded to the advertiser owned (brand) YouTube channel. For videos uploaded to the Google-managed channels only UNLISTED privacy is allowed. Defaults to UNLISTED privacy if not specified. type: string x-enumDescriptions: - Not specified. - The value is unknown in this version. - Video is public. - Video is unlisted. enum: - UNSPECIFIED - UNKNOWN - PUBLIC - UNLISTED channelId: type: string description: Immutable. The destination YouTube channel ID for the video upload. Only mutable on YouTube video upload creation. If omitted, the video will be uploaded to the Google-managed YouTube channel associated with the Ads account. videoTitle: description: Input only. Immutable. The title of the video. Only mutable on YouTube video upload creation. Immutable after creation. type: string videoId: description: Output only. The YouTube video ID of the uploaded video. type: string resourceName: type: string description: Immutable. Resource name of the YouTube video upload. videoDescription: type: string description: Input only. Immutable. The description of the video. Only mutable on YouTube video upload creation. Immutable after creation. GoogleAdsGoogleadsV25Services__CreateYouTubeVideoUploadResponse: description: Response message for YouTubeVideoUploadService.CreateYouTubeVideoUpload. type: object properties: resourceName: type: string description: The resource name of the successfully created YouTube video upload. GoogleAdsGoogleadsV25Services__CreateYouTubeVideoUploadRequest: description: Request message for YouTubeVideoUploadService.CreateYouTubeVideoUpload. type: object properties: youTubeVideoUpload: $ref: '#/components/schemas/GoogleAdsGoogleadsV25Resources__YouTubeVideoUpload' description: Required. The initial details of the video to upload. Required. securitySchemes: oauth2: type: oauth2 description: Google OAuth 2.0. Google Ads API additionally requires a developer token in the developer-token header. flows: authorizationCode: authorizationUrl: https://accounts.google.com/o/oauth2/auth tokenUrl: https://oauth2.googleapis.com/token scopes: https://www.googleapis.com/auth/adwords: See, edit, create, and delete your Google Ads accounts and data. externalDocs: url: https://developers.google.com/google-ads/api/ x-source: https://googleads.googleapis.com/$discovery/rest?version=v25 x-generated-by: API Evangelist enrichment pipeline — mechanical conversion of the first-party Google API Discovery Document