---
title: "Force a synchronous brand.json crawl"
method: POST
path: "/api/registry/brand/{domain}/force-crawl"
tags: ["Brand Discovery"]
---

# Force a synchronous brand.json crawl

`POST /api/registry/brand/{domain}/force-crawl`

## Request

- Base URL: `https://agenticadvertising.org`
- URL: `https://agenticadvertising.org/api/registry/brand/{domain}/force-crawl`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://agenticadvertising.org/authorize`
    - Token URL: `https://agenticadvertising.org/token`

Admin-only support endpoint that fetches a domain's live `/.well-known/brand.json`, persists valid origin evidence, and returns the before/after state. A verified owner remains labeled `source: hosted` because that field describes identity provenance; `new_source_type: brand_json` and `promoted: true` confirm that live origin evidence was adopted.

**Rate limits:** 5 minutes per domain, 30 requests per user per hour.

## Path parameters

- `domain` string, required

## Response `200`

Synchronous crawl result

- object
  - `domain` string, required
  - `previous_source` 'hosted' | 'brand_json' | 'community' | 'enriched' | 'stub' | 'null', nullable, required
  - `new_source` 'hosted' | 'brand_json' | 'community' | 'enriched' | 'stub' | 'null', nullable, required
  - `previous_source_type` 'brand_json' | 'community' | 'enriched' | 'stub' | 'null', nullable, required
  - `new_source_type` 'brand_json' | 'community' | 'enriched' | 'stub' | 'null', nullable, required
  - `promoted` boolean, required: True when the crawl replaced lower-trust stored evidence with live brand.json evidence.
  - `brand_json_found` boolean, required
  - `live_variant` 'authoritative_location' | 'house_redirect' | 'brand_agent' | 'house_portfolio' | 'brand_canonical' | 'null', nullable, required
  - `has_manifest` boolean, required
  - `checked_at` string, date-time, required

## Other responses

- `400`: Invalid domain format, private IP, or unresolvable domain
- `401`: Authentication required
- `403`: Admin access required
- `429`: Rate limit exceeded
- `500`: Crawl failed
- `503`: Administrator authorization could not be checked

## Changes

- **2026-09-17** `cb485604bda3`: 1 info
  - added the non-success response with the status `503`
- **2026-08-08** `3a5dad72f425`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/adcontextprotocol/apis/agenticadvertising-org-registry-api/changes/api/registry/brand/:domain/force-crawl/post.md)

---

[API](https://skmtc.dev/adcontextprotocol/apis/agenticadvertising-org-registry-api.md) - [All operations](https://skmtc.dev/adcontextprotocol/apis/agenticadvertising-org-registry-api/llms.txt) - [OpenAPI document](https://skmtc.dev/adcontextprotocol/apis/agenticadvertising-org-registry-api/revisions/d8f6af89f253?raw)
