OmniLink API
Fetch

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

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/amazon/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/amazon/product" \  -H "x-api-key: sua-api-key" \  -H "Content-Type: application/json" \  -d '{    "url": "https://www.amazon.com.br/Notebook-Dell-Inspiron-I15-I1300-A30P-Carbono/dp/B0FHCHBRGF",    "selectors": {      "titulo": "#productTitle",      "quantidade_avaliacoes": "#acrCustomerReviewText",      "avaliacao_estrelas": "#acrPopover .a-icon-alt",      "preco_antigo": "span.apex-basisprice-value .a-offscreen||span.basisPrice .a-offscreen",      "preco_atual": "span.apex-pricetopay-value .a-offscreen||#corePriceDisplay_desktop_feature_div .priceToPay .a-offscreen",      "preco": "span.apex-pricetopay-value .a-price-whole||span.a-price-whole",      "valor_parcela": "#installmentCalculatorCentral_feature_div .a-color-attainable.a-text-bold",      "cores_disponivel": "#variation_color_name .selection||#twister_feature_div .a-declarative",      "descricao": "#feature-bullets ul.a-unordered-list",      "loja_vendedora": "#bylineInfo||#sellerProfileTriggerId",      "imagem": "#landingImage||#imgTagWrapperId img"    }  }'
Empty

Enfileira pagina de produto (PDP) — um unico item — Mercado Livre 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 pagina de produto (PDP) — um unico item — Shopee 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`.