Skip to main content
Glama

AIsa Sales

Update an Account

patch_apollo_accounts_account_id
Destructive

Update fields on an existing account. Requires a master API key.

Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ.

Input Schema

NameRequiredDescriptionDefault
bodyYes
account_idYesAccount ID

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / account_stage_id
      Removed value: -{
      -  "description": "Account stage ID",
      -  "type": "string"
      -}
    • addedInput schema / properties / body
      Added value: +{
      +  "properties": {
      +    "account_stage_id": {
      +      "description": "The Apollo ID for the account stage to which you want to assign the account. Enter a different ID to update the account stage. <br><br>Call the <a href=\"https://docs.apollo.io/reference/list-account-stages\" target=\"_blank\">list account stages endpoint</a> to retrieve a list of all the account stage IDs available in your Apollo account. <br><br>If you do not specify the account stage, Apollo automatically assigns the account to a stage as determined by your team's Apollo account. To change the order of account stages, launch the Apollo product and go to <b>Settings</b> > <b>Objects</b> > <a href=\"https://app.apollo.io/#/settings/accounts/stages\" target=\"_blank\"><b>Accounts</b></a>. Then, access the <b>Triggers</b> tab and change the stage for when an account is created. <br><br>Example: `61b8e913e0f4d2012e3af74e`",
      +      "type": "string"
      +    },
      +    "domain": {
      +      "description": "Update the domain name for the account. Do not include `www.` or similar. <br><br>Example: `apollo.io` or `microsoft.com`",
      +      "type": "string"
      +    },
      +    "name": {
      +      "description": "Update the account's name. This should be a human-readable name. <br><br>Example: `The Fast Irish Copywriters`",
      +      "type": "string"
      +    },
      +    "owner_id": {
      +      "description": "The ID for the account owner within your team's Apollo account. Enter a different ID to update the owner of the account. <br><br>Use the <a href=\"https://docs.apollo.io/reference/get-a-list-of-users\" target=\"_blank\">get a list of users endpoint</a> to retrieve IDs for all of the users within your Apollo account. <br><br>Example: `66302798d03b9601c7934ebf`",
      +      "type": "string"
      +    },
      +    "phone": {
      +      "description": "Update the primary phone number for the account. <br><br>This can be the phone number for the corporate headquarters, a branch location, or a direct dial to the primary point of contact for the account. <br><br>Apollo sanitizes phone numbers, so you can enter them in any format. The sanitized number can be viewed in the endpoint response. <br><br>Examples: `555-555-0133`; `+44 7700 900852`",
      +      "type": "string"
      +    },
      +    "raw_address": {
      +      "description": "Update the corporate location for the account. This can include a city, US state, and country. <br><br>Apollo matches the location you provide to the most applicable pre-defined location. <br><br>Examples: `Belfield, Dublin 4, Ireland`; `Dallas, United States`",
      +      "type": "string"
      +    },
      +    "typed_custom_fields": {
      +      "additionalProperties": {
      +        "type": "string"
      +      },
      +      "description": "Add information to <a href=\"https://knowledge.apollo.io/hc/en-us/articles/4412498754445-Create-Custom-Account-Fields\" target=\"_blank\">custom fields</a> in Apollo. <br><br><b>Your custom fields are unique to your team's Apollo account. This means that the examples in this documentation may not work for your testing purposes.</b> <br><br>To utilize this parameter successfully, call the <a href=\"https://docs.apollo.io/reference/get-a-list-of-all-custom-fields\">get a list of all custom fields</a> endpoint and identify the `id` value for the custom field, as well as the appropriate data type. For example, if a custom field accepts picklist entries, you need to pass the accompanying `id` value for the picklist entry that you want to use as the input value. <br><br><b>Example</b>: When the <a href=\"https://docs.apollo.io/reference/get-a-list-of-all-custom-fields\">get a list of all custom fields</a> endpoint returns an `id` of field: \n * `\"60c39ed82bd02f01154c470a\"` (datetime) \n \n\n then the value passed should be: \n\n `{\"60c39ed82bd02f01154c470a\": \"2025-08-07\"}`",
      +      "example": {
      +        "60c39ed82bd02f01154c470a": "2025-08-07"
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
    • removedInput schema / properties / domain
      Removed value: -{
      -  "description": "Account domain",
      -  "type": "string"
      -}
    • removedInput schema / properties / name
      Removed value: -{
      -  "description": "Account name",
      -  "type": "string"
      -}
    • removedInput schema / properties / owner_id
      Removed value: -{
      -  "description": "Owner ID",
      -  "type": "string"
      -}
    • removedInput schema / properties / phone
      Removed value: -{
      -  "description": "Phone number",
      -  "type": "string"
      -}
    • removedInput schema / properties / raw_address
      Removed value: -{
      -  "description": "Raw address",
      -  "type": "string"
      -}
    • removedInput schema / properties / typed_custom_fields
      Removed value: -{
      -  "description": "Typed custom fields object",
      -  "type": "object"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "account_id"
      -]New value: +[
      +  "account_id",
      +  "body"
      +]
  2. First observed

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true, so the safety profile is largely covered. The description contributes the master-API-key auth requirement and pricing note, but omits important behavior for a PATCH: that unspecified fields are left untouched, and any error/partial-failure semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action and then the auth requirement, with no redundancy. The injected pricing block adds length but is boilerplate rather than authorial padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover destructiveness, so those need not be restated. Still, for a mutation endpoint with a nested custom-fields object, the description never explains PATCH partial-update behavior or that typed_custom_fields requires pre-fetched field IDs, leaving meaningful operational gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Top-level schema coverage is 50% (account_id and body), and the description adds no parameter context. However, the nested body properties are documented exhaustively in the schema itself (name, phone, domain, owner_id, raw_address, account_stage_id, typed_custom_fields), so the schema carries the load and a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Update fields on an existing account') with clear scope (PATCH semantics implied by 'fields'). However, it does not differentiate from near-siblings such as post_apollo_accounts_bulk_update, post_apollo_accounts_update_owners, or patch_apollo_contacts_contact_id, leaving the agent to infer the distinction from names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Adds one concrete prerequisite, 'Requires a master API key,' which is genuine selection context. But it gives no when-to-use vs when-not guidance and no pointer to the bulk-update or update-owners siblings, so routing relies on inference from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources