---
title: "Updates name, website (normalized domain), industry, city, state, disambiguation, description, services, value proposition, audience, differentiators, money_pages, or primary flag for an owned business. Changing website triggers a fresh site crawl. Free. Requires business:write. money_pages are existing URLs recs must target."
method: POST
path: "/update_business"
tags: ["action"]
---

# Updates name, website (normalized domain), industry, city, state, disambiguation, description, services, value proposition, audience, differentiators, money_pages, or primary flag for an owned business. Changing website triggers a fresh site crawl. Free. Requires business:write. money_pages are existing URLs recs must target.

`POST /update_business`

## Request

- Base URL: `https://scope.online/v1`
- URL: `https://scope.online/v1/update_business`
- Auth: HTTP bearer

## Request body

- object
  - `business_id` string, uuid, required: Owned Scope business ID
  - `website` string: Public website URL (https). Normalized to canonical domain; triggers site re-crawl when changed.
  - `name` string: Business name
  - `industry` string: Industry
  - `city` string: City
  - `state` string: State or region
  - `disambiguation` string: One-sentence entity disambiguation
  - `description` string: What the product is, in one or two sentences
  - `value_proposition` string: Primary customer promise
  - `target_audience` string: Who this is for
  - `services` string[]: Services or product lines
  - `key_differentiators` string[]: Short differentiators
  - `money_pages` string[]: Existing URLs or paths recs must target. Do not invent new guides.
  - `never_new_url` boolean: If true, generate_fix may only edit registered money_pages
  - `forbid_lede_patterns` string[]: Blocked phrases in generated copy (empty array clears stored patterns)
  - `price_url` string: Existing pricing URL
  - `publish_config` object: Optional nested publish_config patch (never_new_url, forbid_lede_patterns, price_url)
    - `never_new_url` boolean
    - `forbid_lede_patterns` string[]
    - `price_url` string
  - `homonym_pack` object: Structured us/not entities for scoring. Not copy to paste under H1.
  - `index_status` 'unknown' | 'indexed' | 'not_indexed': unknown | indexed | not_indexed
  - `webhook_url` string: HTTPS URL for why-first scan-complete payloads
  - `is_primary` boolean: Set this business as primary

## Response `200`

Tool payload. `meta` holds tldr, next[], pagination cursors, and request_id.

## Other responses

- `400`: Invalid request.
- `401`: Missing or invalid API key.
- `402`: Quota or over-committed.
- `403`: Missing scope or Growth required.
- `404`: Unknown tool or resource.
- `405`: Wrong HTTP method for this tool.
- `429`: Rate limited (10 action calls / 60s per key; reads are higher).
- `503`: Temporary infrastructure limit — retry with retry_after.

---

[API](https://skmtc.dev/scope/apis/scope-api-2.md) · [All operations](https://skmtc.dev/scope/apis/scope-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/scope/apis/scope-api-2/revisions/2f01893f6e5c?raw)
