App Logo
search.brave.com

Submit URL to Brave

Submit one URL to Brave Search to be re-crawled, and return the outcome Brave gave: whether it was accepted, plus Brave's own heading and message. Acceptance means Brave took the submission — not that the page was crawled, indexed or ranked. An invalid URL comes back as a rejection with Brave's message rather than as an error. Brave sometimes shows a rate-limit challenge here; if it does, the script raises an error — wait 30-60 seconds before retrying.

Input

url required

The absolute URL to submit for re-fetching, e.g. 'https://reduck.ai/pricing'. Brave validates it and rejects anything it doesn't parse as a URL (returned as accepted:false, not an error). One URL per call — the form takes exactly one.

Output

url required

The URL that was submitted, echoed back from the args.

detail required

The panel's explanatory line, verbatim ('Thank you for your submission.' / 'Please insert a valid URL.'). This is where Brave states WHY a submission was rejected. null when the panel has no detail row — kept nullable because only the success and invalid-URL variants have been observed.

heading required

The outcome panel's heading, verbatim as rendered ('Success' / 'Error'). Localized by Brave, so branch on `accepted` instead. Required and non-empty on purpose: Brave shows a 'Verifying you're a human being' step in the SAME panel before deciding, and that intermediate state has no heading — so a missing one means the script read the panel before the verdict existed, which must fail loudly rather than validate as a successful submission.

accepted required

Whether Brave accepted the submission: true = the success panel, false = the error panel (e.g. a malformed URL). Read off the panel's own `error` class, not its wording, so it survives localization. Acceptance is a queued re-fetch request only — it carries no promise that the page gets crawled, indexed or ranked.

Start building not clicking