---
title: "Extract a brand"
description: "Read one brand from its own website and keep what you find.\n\nroasOS renders the homepage, discovers the rest of the site through its sitemap and its own links, reads up to twelve pages, and returns one structured profile: the products, the offer, the promise, the proof, the customers it talks to and the way it talks. Every field carries a confidence label — `stated` when the site says it, `inferred` when the model concluded it, and `verified` only when a reviews page backs it up.\n\nSend the site as `website_url`. Every crawl bound is ours: twelve pages, eight seconds a page, one minute for the whole crawl, and `robots.txt` is honoured. A site that says stay out is not read.\n\nIt costs 2 credits. Set `quote_only: true` to see the price for free, then send the same body with the returned `quote_id` to run it. An extraction this workspace already ran in the last seven days is a cache hit and costs nothing.\n\nThe run is asynchronous and is read where every analysis is read: `/v1/workflows/analyses/{id}`."
url: https://docs.roasos.com/api-reference/workflows/runWorkflowExtractBrand
---

# Extract a brand

Read one brand from its own website and keep what you find.

roasOS renders the homepage, discovers the rest of the site through its sitemap and its own links, reads up to twelve pages, and returns one structured profile: the products, the offer, the promise, the proof, the customers it talks to and the way it talks. Every field carries a confidence label — `stated` when the site says it, `inferred` when the model concluded it, and `verified` only when a reviews page backs it up.

Send the site as `website_url`. Every crawl bound is ours: twelve pages, eight seconds a page, one minute for the whole crawl, and `robots.txt` is honoured. A site that says stay out is not read.

It costs 2 credits. Set `quote_only: true` to see the price for free, then send the same body with the returned `quote_id` to run it. An extraction this workspace already ran in the last seven days is a cache hit and costs nothing.

The run is asynchronous and is read where every analysis is read: `/v1/workflows/analyses/{id}`.

## `POST /v1/workflows/extract-brand`

Endpoint: `POST https://api.roasos.com/v1/workflows/extract-brand`

Extract a brand

Read one brand from its own website and keep what you find.

roasOS renders the homepage, discovers the rest of the site through its sitemap and its own links, reads up to twelve pages, and returns one structured profile: the products, the offer, the promise, the proof, the customers it talks to and the way it talks. Every field carries a confidence label — `stated` when the site says it, `inferred` when the model concluded it, and `verified` only when a reviews page backs it up.

Send the site as `website_url`. Every crawl bound is ours: twelve pages, eight seconds a page, one minute for the whole crawl, and `robots.txt` is honoured. A site that says stay out is not read.

It costs 2 credits. Set `quote_only: true` to see the price for free, then send the same body with the returned `quote_id` to run it. An extraction this workspace already ran in the last seven days is a cache hit and costs nothing.

The run is asynchronous and is read where every analysis is read: `/v1/workflows/analyses/{id}`.

### Parameters

- `undefined`
- `undefined`
- `undefined`

### Request body

Content type: `application/json`

### Responses

- `200`: An immutable quote, or a free cache hit that is already finished
- `202`: Extraction queued. Poll /v1/workflows/analyses/{id}/status.
- `400`: validation_error, a missing Idempotency-Key, or a website URL that is not a public https address
- `402`: insufficient_credits
- `403`: The API key spend policy denied the extraction
- `409`: The idempotency key was reused with different request data
- `410`: quote_expired: the quote must be replaced under a new idempotency key
- `429`: rate_limit_exceeded, a daily or monthly credit budget, or included_ancillary_ai_window_exceeded
- `501`: not_implemented: the extraction is contracted and not live yet
- `503`: The extraction could not be claimed safely

Read the full reference at https://docs.roasos.com/api-reference/workflows/runWorkflowExtractBrand.
