Skip to content
BizLookupPro
Menu
Back to home

Connect to your business facts

Publishing endpoints are available at /api/v1 and /mcp. Use a compatible client and authorize only the business access you intend to grant. Connection options depend on your client.

Compatible clients can prepare, validate, submit and manage a free listing through the same permission and review rules as the manual editor. Your chosen assistant has its own terms.

Add your business manually

Current tool contract

{"search_businesses":{"name":"search_businesses","description":"Search currently eligible approved business facts.","readOnly":true,"inputSchema":{"type":"object","properties":{"q":{"type":"string","maxLength":200},"country_code":{"type":"string","pattern":"^[A-Z]{2}$"},"category":{"type":"string"},"location_mode":{"enum":["physical","service_area","remote"]},"territory_code":{"type":"string"},"place_id":{"type":"integer","minimum":1},"service":{"type":"string"},"open_now":{"type":"boolean"},"bbox":{"type":"string","description":"west,south,east,north bounding box"},"cursor":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":50},"search_class":{"enum":["prefix","text","category"]}},"required":[],"additionalProperties":false}},"search_places":{"name":"search_places","description":"Search country-scoped current named places.","readOnly":true,"inputSchema":{"type":"object","properties":{"country_code":{"type":"string","pattern":"^[A-Z]{2}$"},"territory_code":{"type":"string"},"q":{"type":"string","minLength":2,"maxLength":100},"limit":{"type":"integer","minimum":1,"maximum":20},"cursor":{"type":"string","maxLength":4096},"selected_ids":{"type":"array","maxItems":32,"items":{"type":"integer","minimum":1}}},"required":["country_code","q"],"additionalProperties":false}},"lookup_listing_address":{"name":"lookup_listing_address","description":"Look up a private draft address using current publishing rights; consumes lookup quota but does not save or publish.","readOnly":false,"inputSchema":{"type":"object","properties":{"draft_id":{"type":"string"},"branch_id":{"type":"string"},"q":{"type":"string","minLength":3,"maxLength":200}},"required":["draft_id","branch_id","q"],"additionalProperties":false}},"get_business":{"name":"get_business","description":"Read approved facts or a restricted closure projection.","readOnly":true,"inputSchema":{"type":"object","properties":{"business_id":{"type":"string"}},"required":["business_id"],"additionalProperties":false}},"get_listing_requirements":{"name":"get_listing_requirements","description":"Read country-specific requirements and current schema.","readOnly":true,"inputSchema":{"type":"object","properties":{"country_code":{"type":"string"},"territory_code":{"type":"string"},"location_mode":{"type":"string"},"schema_version":{"type":"string"}},"required":["country_code","location_mode"],"additionalProperties":false}},"get_publisher_context":{"name":"get_publisher_context","description":"Read your actual publisher permissions and environment.","readOnly":true,"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},"list_managed_listings":{"name":"list_managed_listings","description":"Legacy bounded authorised draft array; prefer list_managed_listings_page for complete traversal.","readOnly":true,"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},"list_managed_listings_page":{"name":"list_managed_listings_page","description":"Read a bounded page of currently authorised drafts with a principal-bound cursor; follow next_cursor even on an empty permissions-scan page.","readOnly":true,"inputSchema":{"type":"object","properties":{"cursor":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":50},"state":{"enum":["draft","pending_review","changes_requested","published","rejected"]}},"required":[],"additionalProperties":false}},"validate_listing":{"name":"validate_listing","description":"Validate proposed listing facts without saving or fetching websites.","readOnly":true,"inputSchema":{"type":"object","properties":{"fields":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"minLength":1},"primary_category_id":{"type":"string","minLength":1,"maxLength":100,"description":"Current active category code, not a database ID."},"summary":{"type":["string","null"],"maxLength":180},"about":{"type":["string","null"],"maxLength":1500},"accent_hex":{"type":["string","null"],"pattern":"^#[0-9a-fA-F]{6}$"},"operating_state":{"enum":["operating","temporarily_closed","permanently_closed","unknown"]},"contacts":{"type":["array","null"],"maxItems":8,"items":{"type":"object","required":["kind","value"],"properties":{"kind":{"enum":["phone","email","website"]},"value":{"type":"string","minLength":1,"maxLength":2048},"label":{"type":["string","null"],"maxLength":100}},"additionalProperties":false,"description":"Phones need an international calling code; email/website must be usable direct contact routes."},"description":"Omitted preserves the collection; NULL or[] clears it."},"social_profiles":{"anyOf":[{"type":["object","null"],"properties":{"linkedin":{"type":["string","null"],"maxLength":2048},"facebook":{"type":["string","null"],"maxLength":2048},"x":{"type":["string","null"],"maxLength":2048},"instagram":{"type":["string","null"],"maxLength":2048}},"additionalProperties":false,"description":"Omitted networks inherit; a network NULL removes that override. A NULL map clears overrides. URLs must be direct profiles on the selected network."},{"type":"array","maxItems":0}],"description":"Omitted networks inherit; a network NULL removes that override. A NULL map clears overrides. URLs must be direct profiles on the selected network."},"branches":{"type":["array","null"],"maxItems":20,"items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":64},"label":{"type":["string","null"],"maxLength":120},"country_code":{"type":"string","pattern":"^[A-Z]{2}$"},"territory_code":{"type":"string","minLength":2,"maxLength":32},"location_mode":{"enum":["physical","service_area","remote"]},"place_id":{"type":["integer","null"],"minimum":1},"timezone":{"type":"string","minLength":1,"maxLength":100,"description":"IANA timezone reviewed for this context; fixed UTC offsets are not accepted."},"location_visibility":{"enum":["exact","approximate","coverage","none"]},"address":{"type":["object","null"],"properties":{"visibility":{"enum":["public","private"]},"line1":{"type":["string","null"],"maxLength":255},"line2":{"type":["string","null"],"maxLength":255},"postal_locality":{"type":["string","null"],"maxLength":200},"postal_admin_text":{"type":["string","null"],"maxLength":200},"dependent_locality":{"type":["string","null"],"maxLength":200},"postal_code":{"type":["string","null"],"maxLength":32},"sorting_code":{"type":["string","null"],"maxLength":64},"original_text":{"type":["string","null"],"maxLength":5000},"provider_reference":{"type":["string","null"],"maxLength":255},"latitude":{"type":["number","null"],"minimum":-90,"maximum":90},"longitude":{"type":["number","null"],"minimum":-180,"maximum":180},"precision_code":{"enum":["street","building","premises","approximate","manual"]},"confirmed":{"type":"boolean"},"components":{"type":["object","array"],"maxItems":0,"additionalProperties":{"type":["string","null"],"maxLength":255},"description":"Only visible reviewed country-specific roles are accepted. Recipient/person/organisation fields are never accepted as directory address roles."},"context_rule_id":{"type":["integer","null"],"minimum":1,"description":"Current reviewed context rule. Stale supplied revisions fail409; omission binds the current rule."}},"additionalProperties":false,"description":"Private input may include original/provider metadata; these are removed from public projections. Coordinates are a nullable pair. Public address/pin requires a physical premises branch and explicit confirmation; country/context changes require fresh coordinates and confirmation. Country-specific required roles come from listing-requirements."},"coverage":{"type":"array","maxItems":30,"items":{"type":"integer","minimum":1}},"hours":{"type":"object","required":["state"],"properties":{"state":{"enum":["known","unknown"]},"weekly":{"oneOf":[{"type":"object","patternProperties":{"^[0-6]$":{"type":"array","maxItems":4,"items":{"type":"object","required":["opens","closes"],"properties":{"opens":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"closes":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"end_day_offset":{"type":"integer","enum":[0,1]}},"additionalProperties":false,"description":"Local-time intervals are ordered, non-overlapping and at most 24 hours. End-day offset 1 is explicit overnight coverage."}}},"additionalProperties":false,"maxProperties":7},{"type":"array","maxItems":7,"items":{"type":"array","maxItems":4,"items":{"type":"object","required":["opens","closes"],"properties":{"opens":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"closes":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"end_day_offset":{"type":"integer","enum":[0,1]}},"additionalProperties":false,"description":"Local-time intervals are ordered, non-overlapping and at most 24 hours. End-day offset 1 is explicit overnight coverage."}}}]},"exceptions":{"oneOf":[{"type":"object","patternProperties":{"^[0-9]{4}-[0-9]{2}-[0-9]{2}$":{"type":"array","maxItems":4,"items":{"type":"object","required":["opens","closes"],"properties":{"opens":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"closes":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"end_day_offset":{"type":"integer","enum":[0,1]}},"additionalProperties":false,"description":"Local-time intervals are ordered, non-overlapping and at most 24 hours. End-day offset 1 is explicit overnight coverage."}}},"additionalProperties":false},{"type":"array","maxItems":0}]},"appointment_note":{"type":["string","null"],"maxLength":500}},"additionalProperties":false,"description":"Unknown hours do not mean closed. Known empty intervals mean closed on that day. Calendar dates and DST-aware local-time evaluation are checked by the server."},"social_profiles":{"anyOf":[{"type":["object","null"],"properties":{"linkedin":{"type":["string","null"],"maxLength":2048},"facebook":{"type":["string","null"],"maxLength":2048},"x":{"type":["string","null"],"maxLength":2048},"instagram":{"type":["string","null"],"maxLength":2048}},"additionalProperties":false,"description":"Omitted networks inherit; a network NULL removes that override. A NULL map clears overrides. URLs must be direct profiles on the selected network."},{"type":"array","maxItems":0}],"description":"Omitted networks inherit; a network NULL removes that override. A NULL map clears overrides. URLs must be direct profiles on the selected network."},"social_profile_hidden":{"type":["object","array","null"],"maxItems":0,"properties":{"linkedin":{"type":["boolean","null"]},"facebook":{"type":["boolean","null"]},"x":{"type":["boolean","null"]},"instagram":{"type":["boolean","null"]}},"additionalProperties":false,"description":"Branch-only inheritance suppression: true hides company link; false/NULL unhides. URL+hide for the same network is rejected."}},"additionalProperties":false,"description":"New branches require country_code, location_mode and timezone. Existing owned branch IDs permit partial branch patches. Sending branches replaces the ordered branch set; omit branches to preserve all branches."},"description":"Omitted preserves the collection; NULL or[] clears it."},"services":{"type":["array","null"],"maxItems":10,"items":{"type":"object","required":["service_id"],"properties":{"service_id":{"type":"string","minLength":1,"maxLength":100},"description":{"type":["string","null"],"maxLength":500}},"additionalProperties":false},"description":"Omitted preserves the collection; NULL or[] clears it."},"media":{"type":["array","null"],"maxItems":6,"items":{"type":"string","minLength":1,"maxLength":64},"description":"Omitted preserves the collection; NULL or[] clears it."}},"additionalProperties":false,"description":"Allowlisted partial business facts. Omission preserves values; NULL clears optional scalar/map/collection fields. Required name/category/operating-state cannot be cleared. New listings need name/category; submission additionally needs an eligible branch and a usable public contact route. Text bounds describe canonical trimmed values. The shared validator checks current country, services, authority, branch scope, URL, staged media and complete-submission requirements.","x-server-validation":["active_reference_data","country_context_and_timezone","current_business_and_branch_authority","confirmed_premises_privacy","current_staged_media","complete_submission"]},"draft_id":{"type":"string"},"schema_version":{"type":"string"}},"required":["fields"],"additionalProperties":false}},"get_listing_draft":{"name":"get_listing_draft","description":"Read a private draft using current publisher rights.","readOnly":true,"inputSchema":{"type":"object","properties":{"draft_id":{"type":"string"}},"required":["draft_id"],"additionalProperties":false}},"create_listing_draft":{"name":"create_listing_draft","description":"Save a private listing draft; does not publish.","readOnly":false,"inputSchema":{"type":"object","properties":{"fields":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"minLength":1},"primary_category_id":{"type":"string","minLength":1,"maxLength":100,"description":"Current active category code, not a database ID."},"summary":{"type":["string","null"],"maxLength":180},"about":{"type":["string","null"],"maxLength":1500},"accent_hex":{"type":["string","null"],"pattern":"^#[0-9a-fA-F]{6}$"},"operating_state":{"enum":["operating","temporarily_closed","permanently_closed","unknown"]},"contacts":{"type":["array","null"],"maxItems":8,"items":{"type":"object","required":["kind","value"],"properties":{"kind":{"enum":["phone","email","website"]},"value":{"type":"string","minLength":1,"maxLength":2048},"label":{"type":["string","null"],"maxLength":100}},"additionalProperties":false,"description":"Phones need an international calling code; email/website must be usable direct contact routes."},"description":"Omitted preserves the collection; NULL or[] clears it."},"social_profiles":{"anyOf":[{"type":["object","null"],"properties":{"linkedin":{"type":["string","null"],"maxLength":2048},"facebook":{"type":["string","null"],"maxLength":2048},"x":{"type":["string","null"],"maxLength":2048},"instagram":{"type":["string","null"],"maxLength":2048}},"additionalProperties":false,"description":"Omitted networks inherit; a network NULL removes that override. A NULL map clears overrides. URLs must be direct profiles on the selected network."},{"type":"array","maxItems":0}],"description":"Omitted networks inherit; a network NULL removes that override. A NULL map clears overrides. URLs must be direct profiles on the selected network."},"branches":{"type":["array","null"],"maxItems":20,"items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":64},"label":{"type":["string","null"],"maxLength":120},"country_code":{"type":"string","pattern":"^[A-Z]{2}$"},"territory_code":{"type":"string","minLength":2,"maxLength":32},"location_mode":{"enum":["physical","service_area","remote"]},"place_id":{"type":["integer","null"],"minimum":1},"timezone":{"type":"string","minLength":1,"maxLength":100,"description":"IANA timezone reviewed for this context; fixed UTC offsets are not accepted."},"location_visibility":{"enum":["exact","approximate","coverage","none"]},"address":{"type":["object","null"],"properties":{"visibility":{"enum":["public","private"]},"line1":{"type":["string","null"],"maxLength":255},"line2":{"type":["string","null"],"maxLength":255},"postal_locality":{"type":["string","null"],"maxLength":200},"postal_admin_text":{"type":["string","null"],"maxLength":200},"dependent_locality":{"type":["string","null"],"maxLength":200},"postal_code":{"type":["string","null"],"maxLength":32},"sorting_code":{"type":["string","null"],"maxLength":64},"original_text":{"type":["string","null"],"maxLength":5000},"provider_reference":{"type":["string","null"],"maxLength":255},"latitude":{"type":["number","null"],"minimum":-90,"maximum":90},"longitude":{"type":["number","null"],"minimum":-180,"maximum":180},"precision_code":{"enum":["street","building","premises","approximate","manual"]},"confirmed":{"type":"boolean"},"components":{"type":["object","array"],"maxItems":0,"additionalProperties":{"type":["string","null"],"maxLength":255},"description":"Only visible reviewed country-specific roles are accepted. Recipient/person/organisation fields are never accepted as directory address roles."},"context_rule_id":{"type":["integer","null"],"minimum":1,"description":"Current reviewed context rule. Stale supplied revisions fail409; omission binds the current rule."}},"additionalProperties":false,"description":"Private input may include original/provider metadata; these are removed from public projections. Coordinates are a nullable pair. Public address/pin requires a physical premises branch and explicit confirmation; country/context changes require fresh coordinates and confirmation. Country-specific required roles come from listing-requirements."},"coverage":{"type":"array","maxItems":30,"items":{"type":"integer","minimum":1}},"hours":{"type":"object","required":["state"],"properties":{"state":{"enum":["known","unknown"]},"weekly":{"oneOf":[{"type":"object","patternProperties":{"^[0-6]$":{"type":"array","maxItems":4,"items":{"type":"object","required":["opens","closes"],"properties":{"opens":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"closes":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"end_day_offset":{"type":"integer","enum":[0,1]}},"additionalProperties":false,"description":"Local-time intervals are ordered, non-overlapping and at most 24 hours. End-day offset 1 is explicit overnight coverage."}}},"additionalProperties":false,"maxProperties":7},{"type":"array","maxItems":7,"items":{"type":"array","maxItems":4,"items":{"type":"object","required":["opens","closes"],"properties":{"opens":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"closes":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"end_day_offset":{"type":"integer","enum":[0,1]}},"additionalProperties":false,"description":"Local-time intervals are ordered, non-overlapping and at most 24 hours. End-day offset 1 is explicit overnight coverage."}}}]},"exceptions":{"oneOf":[{"type":"object","patternProperties":{"^[0-9]{4}-[0-9]{2}-[0-9]{2}$":{"type":"array","maxItems":4,"items":{"type":"object","required":["opens","closes"],"properties":{"opens":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"closes":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"end_day_offset":{"type":"integer","enum":[0,1]}},"additionalProperties":false,"description":"Local-time intervals are ordered, non-overlapping and at most 24 hours. End-day offset 1 is explicit overnight coverage."}}},"additionalProperties":false},{"type":"array","maxItems":0}]},"appointment_note":{"type":["string","null"],"maxLength":500}},"additionalProperties":false,"description":"Unknown hours do not mean closed. Known empty intervals mean closed on that day. Calendar dates and DST-aware local-time evaluation are checked by the server."},"social_profiles":{"anyOf":[{"type":["object","null"],"properties":{"linkedin":{"type":["string","null"],"maxLength":2048},"facebook":{"type":["string","null"],"maxLength":2048},"x":{"type":["string","null"],"maxLength":2048},"instagram":{"type":["string","null"],"maxLength":2048}},"additionalProperties":false,"description":"Omitted networks inherit; a network NULL removes that override. A NULL map clears overrides. URLs must be direct profiles on the selected network."},{"type":"array","maxItems":0}],"description":"Omitted networks inherit; a network NULL removes that override. A NULL map clears overrides. URLs must be direct profiles on the selected network."},"social_profile_hidden":{"type":["object","array","null"],"maxItems":0,"properties":{"linkedin":{"type":["boolean","null"]},"facebook":{"type":["boolean","null"]},"x":{"type":["boolean","null"]},"instagram":{"type":["boolean","null"]}},"additionalProperties":false,"description":"Branch-only inheritance suppression: true hides company link; false/NULL unhides. URL+hide for the same network is rejected."}},"additionalProperties":false,"description":"New branches require country_code, location_mode and timezone. Existing owned branch IDs permit partial branch patches. Sending branches replaces the ordered branch set; omit branches to preserve all branches."},"description":"Omitted preserves the collection; NULL or[] clears it."},"services":{"type":["array","null"],"maxItems":10,"items":{"type":"object","required":["service_id"],"properties":{"service_id":{"type":"string","minLength":1,"maxLength":100},"description":{"type":["string","null"],"maxLength":500}},"additionalProperties":false},"description":"Omitted preserves the collection; NULL or[] clears it."},"media":{"type":["array","null"],"maxItems":6,"items":{"type":"string","minLength":1,"maxLength":64},"description":"Omitted preserves the collection; NULL or[] clears it."}},"additionalProperties":false,"description":"Allowlisted partial business facts. Omission preserves values; NULL clears optional scalar/map/collection fields. Required name/category/operating-state cannot be cleared. New listings need name/category; submission additionally needs an eligible branch and a usable public contact route. Text bounds describe canonical trimmed values. The shared validator checks current country, services, authority, branch scope, URL, staged media and complete-submission requirements.","x-server-validation":["active_reference_data","country_context_and_timezone","current_business_and_branch_authority","confirmed_premises_privacy","current_staged_media","complete_submission"]},"business_id":{"type":"string"},"external_ref":{"type":"string","maxLength":120},"idempotency_key":{"type":"string","minLength":16,"maxLength":128,"pattern":"^[!-~]{16,128}$"},"schema_version":{"type":"string"}},"required":["fields","idempotency_key"],"additionalProperties":false,"allOf":[{"if":{"not":{"required":["business_id"]}},"then":{"properties":{"fields":{"required":["name","primary_category_id"]}}}}]}},"update_listing_draft":{"name":"update_listing_draft","description":"Save a version-checked private revision.","readOnly":false,"inputSchema":{"type":"object","properties":{"draft_id":{"type":"string"},"fields":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"minLength":1},"primary_category_id":{"type":"string","minLength":1,"maxLength":100,"description":"Current active category code, not a database ID."},"summary":{"type":["string","null"],"maxLength":180},"about":{"type":["string","null"],"maxLength":1500},"accent_hex":{"type":["string","null"],"pattern":"^#[0-9a-fA-F]{6}$"},"operating_state":{"enum":["operating","temporarily_closed","permanently_closed","unknown"]},"contacts":{"type":["array","null"],"maxItems":8,"items":{"type":"object","required":["kind","value"],"properties":{"kind":{"enum":["phone","email","website"]},"value":{"type":"string","minLength":1,"maxLength":2048},"label":{"type":["string","null"],"maxLength":100}},"additionalProperties":false,"description":"Phones need an international calling code; email/website must be usable direct contact routes."},"description":"Omitted preserves the collection; NULL or[] clears it."},"social_profiles":{"anyOf":[{"type":["object","null"],"properties":{"linkedin":{"type":["string","null"],"maxLength":2048},"facebook":{"type":["string","null"],"maxLength":2048},"x":{"type":["string","null"],"maxLength":2048},"instagram":{"type":["string","null"],"maxLength":2048}},"additionalProperties":false,"description":"Omitted networks inherit; a network NULL removes that override. A NULL map clears overrides. URLs must be direct profiles on the selected network."},{"type":"array","maxItems":0}],"description":"Omitted networks inherit; a network NULL removes that override. A NULL map clears overrides. URLs must be direct profiles on the selected network."},"branches":{"type":["array","null"],"maxItems":20,"items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":64},"label":{"type":["string","null"],"maxLength":120},"country_code":{"type":"string","pattern":"^[A-Z]{2}$"},"territory_code":{"type":"string","minLength":2,"maxLength":32},"location_mode":{"enum":["physical","service_area","remote"]},"place_id":{"type":["integer","null"],"minimum":1},"timezone":{"type":"string","minLength":1,"maxLength":100,"description":"IANA timezone reviewed for this context; fixed UTC offsets are not accepted."},"location_visibility":{"enum":["exact","approximate","coverage","none"]},"address":{"type":["object","null"],"properties":{"visibility":{"enum":["public","private"]},"line1":{"type":["string","null"],"maxLength":255},"line2":{"type":["string","null"],"maxLength":255},"postal_locality":{"type":["string","null"],"maxLength":200},"postal_admin_text":{"type":["string","null"],"maxLength":200},"dependent_locality":{"type":["string","null"],"maxLength":200},"postal_code":{"type":["string","null"],"maxLength":32},"sorting_code":{"type":["string","null"],"maxLength":64},"original_text":{"type":["string","null"],"maxLength":5000},"provider_reference":{"type":["string","null"],"maxLength":255},"latitude":{"type":["number","null"],"minimum":-90,"maximum":90},"longitude":{"type":["number","null"],"minimum":-180,"maximum":180},"precision_code":{"enum":["street","building","premises","approximate","manual"]},"confirmed":{"type":"boolean"},"components":{"type":["object","array"],"maxItems":0,"additionalProperties":{"type":["string","null"],"maxLength":255},"description":"Only visible reviewed country-specific roles are accepted. Recipient/person/organisation fields are never accepted as directory address roles."},"context_rule_id":{"type":["integer","null"],"minimum":1,"description":"Current reviewed context rule. Stale supplied revisions fail409; omission binds the current rule."}},"additionalProperties":false,"description":"Private input may include original/provider metadata; these are removed from public projections. Coordinates are a nullable pair. Public address/pin requires a physical premises branch and explicit confirmation; country/context changes require fresh coordinates and confirmation. Country-specific required roles come from listing-requirements."},"coverage":{"type":"array","maxItems":30,"items":{"type":"integer","minimum":1}},"hours":{"type":"object","required":["state"],"properties":{"state":{"enum":["known","unknown"]},"weekly":{"oneOf":[{"type":"object","patternProperties":{"^[0-6]$":{"type":"array","maxItems":4,"items":{"type":"object","required":["opens","closes"],"properties":{"opens":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"closes":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"end_day_offset":{"type":"integer","enum":[0,1]}},"additionalProperties":false,"description":"Local-time intervals are ordered, non-overlapping and at most 24 hours. End-day offset 1 is explicit overnight coverage."}}},"additionalProperties":false,"maxProperties":7},{"type":"array","maxItems":7,"items":{"type":"array","maxItems":4,"items":{"type":"object","required":["opens","closes"],"properties":{"opens":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"closes":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"end_day_offset":{"type":"integer","enum":[0,1]}},"additionalProperties":false,"description":"Local-time intervals are ordered, non-overlapping and at most 24 hours. End-day offset 1 is explicit overnight coverage."}}}]},"exceptions":{"oneOf":[{"type":"object","patternProperties":{"^[0-9]{4}-[0-9]{2}-[0-9]{2}$":{"type":"array","maxItems":4,"items":{"type":"object","required":["opens","closes"],"properties":{"opens":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"closes":{"type":"string","pattern":"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$"},"end_day_offset":{"type":"integer","enum":[0,1]}},"additionalProperties":false,"description":"Local-time intervals are ordered, non-overlapping and at most 24 hours. End-day offset 1 is explicit overnight coverage."}}},"additionalProperties":false},{"type":"array","maxItems":0}]},"appointment_note":{"type":["string","null"],"maxLength":500}},"additionalProperties":false,"description":"Unknown hours do not mean closed. Known empty intervals mean closed on that day. Calendar dates and DST-aware local-time evaluation are checked by the server."},"social_profiles":{"anyOf":[{"type":["object","null"],"properties":{"linkedin":{"type":["string","null"],"maxLength":2048},"facebook":{"type":["string","null"],"maxLength":2048},"x":{"type":["string","null"],"maxLength":2048},"instagram":{"type":["string","null"],"maxLength":2048}},"additionalProperties":false,"description":"Omitted networks inherit; a network NULL removes that override. A NULL map clears overrides. URLs must be direct profiles on the selected network."},{"type":"array","maxItems":0}],"description":"Omitted networks inherit; a network NULL removes that override. A NULL map clears overrides. URLs must be direct profiles on the selected network."},"social_profile_hidden":{"type":["object","array","null"],"maxItems":0,"properties":{"linkedin":{"type":["boolean","null"]},"facebook":{"type":["boolean","null"]},"x":{"type":["boolean","null"]},"instagram":{"type":["boolean","null"]}},"additionalProperties":false,"description":"Branch-only inheritance suppression: true hides company link; false/NULL unhides. URL+hide for the same network is rejected."}},"additionalProperties":false,"description":"New branches require country_code, location_mode and timezone. Existing owned branch IDs permit partial branch patches. Sending branches replaces the ordered branch set; omit branches to preserve all branches."},"description":"Omitted preserves the collection; NULL or[] clears it."},"services":{"type":["array","null"],"maxItems":10,"items":{"type":"object","required":["service_id"],"properties":{"service_id":{"type":"string","minLength":1,"maxLength":100},"description":{"type":["string","null"],"maxLength":500}},"additionalProperties":false},"description":"Omitted preserves the collection; NULL or[] clears it."},"media":{"type":["array","null"],"maxItems":6,"items":{"type":"string","minLength":1,"maxLength":64},"description":"Omitted preserves the collection; NULL or[] clears it."}},"additionalProperties":false,"description":"Allowlisted partial business facts. Omission preserves values; NULL clears optional scalar/map/collection fields. Required name/category/operating-state cannot be cleared. New listings need name/category; submission additionally needs an eligible branch and a usable public contact route. Text bounds describe canonical trimmed values. The shared validator checks current country, services, authority, branch scope, URL, staged media and complete-submission requirements.","x-server-validation":["active_reference_data","country_context_and_timezone","current_business_and_branch_authority","confirmed_premises_privacy","current_staged_media","complete_submission"]},"expected_version":{"type":"integer","minimum":1},"idempotency_key":{"type":"string","minLength":16,"maxLength":128,"pattern":"^[!-~]{16,128}$"},"schema_version":{"type":"string"}},"required":["draft_id","fields","expected_version","idempotency_key"],"additionalProperties":false}},"submit_listing":{"name":"submit_listing","description":"Submit an authority-approved draft for manual publication review.","readOnly":false,"inputSchema":{"type":"object","properties":{"draft_id":{"type":"string"},"expected_version":{"type":"integer","minimum":1},"confirm_submit":{"type":"boolean"},"idempotency_key":{"type":"string","minLength":16,"maxLength":128,"pattern":"^[!-~]{16,128}$"},"schema_version":{"type":"string"}},"required":["draft_id","expected_version","idempotency_key","confirm_submit"],"additionalProperties":false}},"get_submission_status":{"name":"get_submission_status","description":"Read an authorised submission decision.","readOnly":true,"inputSchema":{"type":"object","properties":{"submission_id":{"type":"string"}},"required":["submission_id"],"additionalProperties":false}},"withdraw_listing":{"name":"withdraw_listing","description":"Withdraw a listing with current explicit withdrawal rights.","readOnly":false,"inputSchema":{"type":"object","properties":{"business_id":{"type":"string"},"expected_version":{"type":"integer","minimum":1},"confirm_withdraw":{"type":"boolean"},"reason":{"type":"string"},"idempotency_key":{"type":"string","minLength":16,"maxLength":128,"pattern":"^[!-~]{16,128}$"},"schema_version":{"type":"string"}},"required":["business_id","expected_version","confirm_withdraw","reason","idempotency_key"],"additionalProperties":false}},"attach_listing_media":{"name":"attach_listing_media","description":"Attach protected staged images to a private revision.","readOnly":false,"inputSchema":{"type":"object","properties":{"draft_id":{"type":"string"},"upload_ids":{"type":"array","items":{"type":"string"}},"expected_version":{"type":"integer","minimum":1},"idempotency_key":{"type":"string","minLength":16,"maxLength":128,"pattern":"^[!-~]{16,128}$"},"schema_version":{"type":"string"}},"required":["draft_id","upload_ids","expected_version","idempotency_key"],"additionalProperties":false}},"start_business_verification":{"name":"start_business_verification","description":"Create a private authority/claim case. Email requests require explicit intent.","readOnly":false,"inputSchema":{"type":"object","properties":{"draft_id":{"type":"string"},"business_id":{"type":"string"},"method":{"enum":["domain_email","manual_email","website_file"]},"requested_role":{"type":"string"},"requested_scope":{"type":"array","items":{"type":"string"}},"email_target":{"type":"string"},"confirm_send":{"type":"boolean"},"idempotency_key":{"type":"string","minLength":16,"maxLength":128,"pattern":"^[!-~]{16,128}$"},"schema_version":{"type":"string"}},"required":["method","idempotency_key"],"additionalProperties":false}},"get_business_verification":{"name":"get_business_verification","description":"Read your case and unexpired authorised file instructions.","readOnly":true,"inputSchema":{"type":"object","properties":{"case_id":{"type":"string"}},"required":["case_id"],"additionalProperties":false}},"reissue_business_verification":{"name":"reissue_business_verification","description":"Supersede an outstanding challenge and issue selected route instructions.","readOnly":false,"inputSchema":{"type":"object","properties":{"case_id":{"type":"string"},"expected_version":{"type":"integer","minimum":1},"method":{"enum":["domain_email","manual_email","website_file"]},"email_target":{"type":"string"},"confirm_send":{"type":"boolean"},"idempotency_key":{"type":"string","minLength":16,"maxLength":128,"pattern":"^[!-~]{16,128}$"},"schema_version":{"type":"string"}},"required":["case_id","expected_version","method","idempotency_key"],"additionalProperties":false}},"check_business_verification_file":{"name":"check_business_verification_file","description":"Queue one bounded check of the current server-selected verification file URL.","readOnly":false,"inputSchema":{"type":"object","properties":{"case_id":{"type":"string"},"expected_version":{"type":"integer","minimum":1},"idempotency_key":{"type":"string","minLength":16,"maxLength":128,"pattern":"^[!-~]{16,128}$"},"schema_version":{"type":"string"}},"required":["case_id","expected_version","idempotency_key"],"additionalProperties":false}},"cancel_business_verification":{"name":"cancel_business_verification","description":"Cancel an outstanding case; does not withdraw any business.","readOnly":false,"inputSchema":{"type":"object","properties":{"case_id":{"type":"string"},"expected_version":{"type":"integer","minimum":1},"confirm_cancel":{"type":"boolean"},"idempotency_key":{"type":"string","minLength":16,"maxLength":128,"pattern":"^[!-~]{16,128}$"},"schema_version":{"type":"string"}},"required":["case_id","expected_version","confirm_cancel","idempotency_key"],"additionalProperties":false}}}