OmniLink API
Fetch

Enfileira pagina de produto (PDP) — um unico item — Shopee

Cria uma task assincrona (`202` + `task_id`). Consulte `GET /v1/tasks/{task_id}/status`. O `/list` continua sendo listagem (varios cards ou busca por tema). O `/product` devolve **um unico produto** a partir da URL. Nao envie `limit_products`: sempre e um item. - **amazon / mercadolivre:** Playwright na PDP. `url` + `selectors` obrigatorios. `||` nos seletores e fallback (tenta o primeiro CSS; se vazio, o proximo). `link` nao precisa de seletor: a API preenche com a URL canonica. Campos vazios podem ser completados com JSON-LD / Open Graph. Cookies do cofre entram automaticamente, se existirem. - **shopee:** Open API de afiliados (`productOfferV2`). **Nao usa Playwright nem seletores.** Body: so `url`. Extrai `shopId`/`itemId` da URL (ou resolve short link `s.shopee.com.br`) e consulta por `itemId`. Requer conta Shopee no cofre (`affiliate_id` = App ID, `cookies` = secret). Se o item nao estiver no catalogo de ofertas da afiliacao, `count` vem `0`. Webhook: `webhook_override` no body ou `webhook_url` da conta da mesma plataforma. Assinatura `X-Omnilink-Signature`.

POST
/v1/fetch/shopee/product

Cria uma task assincrona (202 + task_id). Consulte GET /v1/tasks/{task_id}/status.

O /list continua sendo listagem (varios cards ou busca por tema). O /product devolve um unico produto a partir da URL. Nao envie limit_products: sempre e um item.

  • amazon / mercadolivre: Playwright na PDP. url + selectors obrigatorios. || nos seletores e fallback (tenta o primeiro CSS; se vazio, o proximo). link nao precisa de seletor: a API preenche com a URL canonica. Campos vazios podem ser completados com JSON-LD / Open Graph. Cookies do cofre entram automaticamente, se existirem.
  • shopee: Open API de afiliados (productOfferV2). Nao usa Playwright nem seletores. Body: so url. Extrai shopId/itemId da URL (ou resolve short link s.shopee.com.br) e consulta por itemId. Requer conta Shopee no cofre (affiliate_id = App ID, cookies = secret). Se o item nao estiver no catalogo de ofertas da afiliacao, count vem 0.

Webhook: webhook_override no body ou webhook_url da conta da mesma plataforma. Assinatura X-Omnilink-Signature.

Authorization

ApiKeyAuth
x-api-key<token>

Tenant key. Nao e JWT. Qualquer valor nao-vazio identifica um tenant via SHA-256. Ausencia => 401 API key ausente. Nao ha lista de chaves validas.

In: header

Header Parameters

x-api-key*string

Identificador do tenant. Qualquer string nao-vazia e aceita; a API armazena apenas o SHA-256. Nao ha cadastro/validacao de chave. Chave diferente = tenant diferente (isolamento).

Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/fetch/shopee/product" \  -H "x-api-key: sua-api-key" \  -H "Content-Type: application/json" \  -d '{    "url": "https://shopee.com.br/product/12345/67890"  }'
Empty

Enfileira pagina de produto (PDP) — um unico item — Amazon POST

Cria uma task assincrona (`202` + `task_id`). Consulte `GET /v1/tasks/{task_id}/status`. O `/list` continua sendo listagem (varios cards ou busca por tema). O `/product` devolve **um unico produto** a partir da URL. Nao envie `limit_products`: sempre e um item. - **amazon / mercadolivre:** Playwright na PDP. `url` + `selectors` obrigatorios. `||` nos seletores e fallback (tenta o primeiro CSS; se vazio, o proximo). `link` nao precisa de seletor: a API preenche com a URL canonica. Campos vazios podem ser completados com JSON-LD / Open Graph. Cookies do cofre entram automaticamente, se existirem. - **shopee:** Open API de afiliados (`productOfferV2`). **Nao usa Playwright nem seletores.** Body: so `url`. Extrai `shopId`/`itemId` da URL (ou resolve short link `s.shopee.com.br`) e consulta por `itemId`. Requer conta Shopee no cofre (`affiliate_id` = App ID, `cookies` = secret). Se o item nao estiver no catalogo de ofertas da afiliacao, `count` vem `0`. Webhook: `webhook_override` no body ou `webhook_url` da conta da mesma plataforma. Assinatura `X-Omnilink-Signature`.

Enfileira captura de HTML renderizado (Playwright) POST

Task `kind=fetch_html` (`run_fetch_html_task`). Plataforma deve estar em SUPPORTED_PLATFORMS. `wait_until` se enviado: load | domcontentloaded | networkidle | commit (senao 400). Defaults Pydantic: wait_ms_after_load=5000 (0..120000), enable_scroll=true, strip_scripts=true, max_html_chars=1500000 (10000..5000000). Na Amazon o worker pode elevar wait_ms_after_load para 12000 e incluir `selector_hints` / `amazon_price_nodes` no result. Nao ha 404 neste handler.