Google Ads · Schema
GoogleAdsGoogleadsV25Services__MutateAccountBudgetProposalRequest
Request message for AccountBudgetProposalService.MutateAccountBudgetProposal.
AdvertisingCampaign ManagementDigital AdvertisingGoogleMarketingPPCGoogle AdsAdTech
Properties
| Name | Type | Description |
|---|---|---|
| operation | object | Required. The operation to perform on an individual account-level budget proposal. |
| validateOnly | boolean | If true, the request is validated but not executed. Only errors are returned, not results. |
JSON Schema
google-ads-google-ads-googleads-v25-services-mutate-account-budget-proposal-request-schema.json
Raw ↑
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/google-ads/json-schema/google-ads-google-ads-googleads-v25-services-mutate-account-budget-proposal-request-schema.json",
"title": "GoogleAdsGoogleadsV25Services__MutateAccountBudgetProposalRequest",
"description": "Request message for AccountBudgetProposalService.MutateAccountBudgetProposal.",
"x-generated": "2026-11-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/google-ads-customers-accountbudgetproposals-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__MutateAccountBudgetProposalRequest",
"type": "object",
"properties": {
"operation": {
"$ref": "#/$defs/GoogleAdsGoogleadsV25Services__AccountBudgetProposalOperation",
"description": "Required. The operation to perform on an individual account-level budget proposal."
},
"validateOnly": {
"description": "If true, the request is validated but not executed. Only errors are returned, not results.",
"type": "boolean"
}
},
"$defs": {
"GoogleAdsGoogleadsV25Resources__AccountBudgetProposal": {
"description": "An account-level budget proposal. All fields prefixed with 'proposed' may not necessarily be applied directly. For example, proposed spending limits may be adjusted before their application. This is true if the 'proposed' field has an 'approved' counterpart, for example, spending limits. Note that the proposal type (proposal_type) changes which fields are required and which must remain empty.",
"type": "object",
"properties": {
"proposedName": {
"type": "string",
"description": "Immutable. The name to assign to the account-level budget."
},
"proposedEndTimeType": {
"x-enumDescriptions": [
"Not specified.",
"Used for return value only. Represents value unknown in this version.",
"As soon as possible.",
"An infinite point in the future."
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"NOW",
"FOREVER"
],
"description": "Immutable. The proposed end date time as a well-defined type, for example, FOREVER.",
"type": "string"
},
"proposedSpendingLimitMicros": {
"format": "int64",
"description": "Immutable. The proposed spending limit in micros. One million is equivalent to one unit.",
"type": "string"
},
"billingSetup": {
"description": "Immutable. The resource name of the billing setup associated with this proposal.",
"type": "string"
},
"proposedEndDateTime": {
"description": "Immutable. The proposed end date time in yyyy-mm-dd hh:mm:ss format.",
"type": "string"
},
"approvedEndDateTime": {
"type": "string",
"description": "Output only. The approved end date time in yyyy-mm-dd hh:mm:ss format."
},
"approvedSpendingLimitType": {
"x-enumDescriptions": [
"Not specified.",
"Used for return value only. Represents value unknown in this version.",
"Infinite, indicates unlimited spending power."
],
"type": "string",
"description": "Output only. The approved spending limit as a well-defined type, for example, INFINITE.",
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"INFINITE"
]
},
"proposedStartDateTime": {
"type": "string",
"description": "Immutable. The proposed start date time in yyyy-mm-dd hh:mm:ss format."
},
"proposedPurchaseOrderNumber": {
"type": "string",
"description": "Immutable. A purchase order number is a value that enables the user to help them reference this budget in their monthly invoices."
},
"resourceName": {
"description": "Immutable. The resource name of the proposal. AccountBudgetProposal resource names have the form: `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}`",
"type": "string"
},
"id": {
"format": "int64",
"description": "Output only. The ID of the proposal.",
"type": "string"
},
"proposedStartTimeType": {
"x-enumDescriptions": [
"Not specified.",
"Used for return value only. Represents value unknown in this version.",
"As soon as possible.",
"An infinite point in the future."
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"NOW",
"FOREVER"
],
"description": "Immutable. The proposed start date time as a well-defined type, for example, NOW.",
"type": "string"
},
"proposedSpendingLimitType": {
"x-enumDescriptions": [
"Not specified.",
"Used for return value only. Represents value unknown in this version.",
"Infinite, indicates unlimited spending power."
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"INFINITE"
],
"type": "string",
"description": "Immutable. The proposed spending limit as a well-defined type, for example, INFINITE."
},
"approvedStartDateTime": {
"type": "string",
"description": "Output only. The approved start date time in yyyy-mm-dd hh:mm:ss format."
},
"accountBudget": {
"type": "string",
"description": "Immutable. The resource name of the account-level budget associated with this proposal."
},
"proposalType": {
"type": "string",
"description": "Immutable. The type of this proposal, for example, END to end the budget associated with this proposal.",
"x-enumDescriptions": [
"Not specified.",
"Used for return value only. Represents value unknown in this version.",
"Identifies a request to create a new budget.",
"Identifies a request to edit an existing budget.",
"Identifies a request to end a budget that has already started.",
"Identifies a request to remove a budget that hasn't started yet."
],
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"CREATE",
"UPDATE",
"END",
"REMOVE"
]
},
"proposedNotes": {
"type": "string",
"description": "Immutable. Notes associated with this budget."
},
"creationDateTime": {
"description": "Output only. The date time when this account-level budget proposal was created, which is not the same as its approval date time, if applicable.",
"type": "string"
},
"approvalDateTime": {
"description": "Output only. The date time when this account-level budget was approved, if applicable.",
"type": "string"
},
"approvedSpendingLimitMicros": {
"description": "Output only. The approved spending limit in micros. One million is equivalent to one unit.",
"type": "string",
"format": "int64"
},
"status": {
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"PENDING",
"APPROVED_HELD",
"APPROVED",
"CANCELLED",
"REJECTED"
],
"description": "Output only. The status of this proposal. When a new proposal is created, the status defaults to PENDING.",
"type": "string",
"x-enumDescriptions": [
"Not specified.",
"Used for return value only. Represents value unknown in this version.",
"The proposal is pending approval.",
"The proposal has been approved but the corresponding billing setup has not. This can occur for proposals that set up the first budget when signing up for billing or when performing a change of bill-to operation.",
"The proposal has been approved.",
"The proposal has been cancelled by the user.",
"The proposal has been rejected by the user, for example, by rejecting an acceptance email."
]
},
"approvedEndTimeType": {
"description": "Output only. The approved end date time as a well-defined type, for example, FOREVER.",
"type": "string",
"enum": [
"UNSPECIFIED",
"UNKNOWN",
"NOW",
"FOREVER"
],
"x-enumDescriptions": [
"Not specified.",
"Used for return value only. Represents value unknown in this version.",
"As soon as possible.",
"An infinite point in the future."
]
}
}
},
"GoogleAdsGoogleadsV25Services__AccountBudgetProposalOperation": {
"description": "A single operation to propose the creation of a new account-level budget or edit/end/remove an existing one.",
"type": "object",
"properties": {
"updateMask": {
"description": "FieldMask that determines which budget fields are modified. While budgets may be modified, proposals that propose such modifications are final. Therefore, update operations are not supported for proposals. Proposals that modify budgets have the 'update' proposal type. Specifying a mask for any other proposal type is considered an error.",
"type": "string",
"format": "google-fieldmask"
},
"create": {
"$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__AccountBudgetProposal",
"description": "Create operation: A new proposal to create a new budget, edit an existing budget, end an actively running budget, or remove an approved budget scheduled to start in the future. No resource name is expected for the new proposal."
},
"remove": {
"type": "string",
"description": "Remove operation: A resource name for the removed proposal is expected, in this format: `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` A request may be cancelled iff it is pending."
}
}
}
}
}
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/google-ads-google-ads-googleads-v25-services-mutate-account-budget-proposal-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.