Websites that accept Bage
const url = 'https://api.trybage.com/v1/sites?origin=https%3A%2F%2Fshop.example';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.trybage.com/v1/sites?origin=https%3A%2F%2Fshop.example'Websites whose owners verified their domain in the console and chose to be listed. Agents use it to know where
they can sign in as their person before trying. Pass origin to ask about one website: an empty list means it
isn’t listed (it may still accept Bage; its /.well-known/agent-login file is the final word).
Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”A website’s address. Any path is ignored.
Responses
Section titled “Responses”The websites, by name.
object
object
The site’s agent-login file.
What agents may ask for there - email (always), the standard scopes the site turned on, and its own custom scopes.
The site’s own scopes among them, with what each means. People see the title and description when they approve.
object
any: every agent the site hasn’t cut off. listed: only agents the site allowed.
When the domain was verified (Unix seconds).
Example
{ "sites": [ { "name": "Kestrel Market", "origin": "https://shop.example", "agent_login_url": "https://shop.example/.well-known/agent-login", "scopes": [ "email", "browse", "cart", "returns" ], "custom_scopes": [ { "name": "returns", "title": "Start returns", "description": "Start a return or exchange for a past order" } ], "agent_access": "any" } ]}invalid_origin: origin isn’t a website’s address.
object
Example
{ "error": "authorization_pending"}