OmniLink API
Fetch

Enfileira pagina de produto (PDP) — um unico item — Mercado Livre

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/mercadolivre/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/mercadolivre/product" \  -H "x-api-key: sua-api-key" \  -H "Content-Type: application/json" \  -d '{    "url": "https://www.mercadolivre.com.br/lixeira-inteligente-16l-com-sensor-automatico-e-tampa-touch-branco/p/MLB66154165?pdp_filters=item_id%3AMLB4505827975&utm_source=whatsapp",    "selectors": {      "titulo": "h1.ui-pdp-title",      "quantidade_avaliacoes": "span.ui-pdp-review__amount",      "preco_antigo": "s.andes-money-amount--previous",      "preco_atual": "span.andes-money-amount--weight-semibold||.andes-money-amount--cents-superscript",      "preco": "span.andes-money-amount--weight-semibold .andes-money-amount__fraction||span.andes-money-amount--weight-semibold",      "valor_parcelas": "span.ui-pdp-price__part__container span.andes-money-amount--cents-comma",      "cores_disponivel": "span.ui-pdp-outside_variations__title__value",      "descricao": "ul.ui-vpp-highlighted-specs__features-list",      "quantidade_vendidos": "span.ui-pdp-subtitle",      "loja_vendedora": "button.ui-pdp-seller__link-trigger||a.ui-pdp-seller__link-trigger",      "imagem": "img.ui-pdp-image||.ui-pdp-gallery__figure img"    }  }'
Empty

Enfileira scraping de listagem (ou busca Shopee Open API) — Shopee POST

Cria uma task `kind=scraping` (`run_scraping_task`). - **amazon / mercadolivre:** `url` e `selectors` obrigatorios (Playwright em cards de listagem). Para URL de pagina de produto (PDP), use `POST /v1/fetch/{platform}/product` — o `/list` procura cards e pode voltar `items: []`. - **shopee:** `keyword` obrigatorio (Open API productOfferV2); `url`/`selectors` nao sao usados. Requer conta Shopee completa no cofre. `limit_products` e limitado a 50 no worker. `shopee_page` default 1; `shopee_sort_type` opcional. Para um anuncio especifico pela URL, use `POST /v1/fetch/shopee/product`. Webhook: `webhook_override` ou `webhook_url` da conta.

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`.