VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Feeds de dados

Criar, alterar e apagar feeds

Cadastra um feed de dados com tipo, formato, filtros e agendamento, altera qualquer campo dele e o apaga.

Criar um feed só cadastra a configuração: nenhum arquivo é gerado até você chamar gerar (ou até o agendamento vencer). A resposta da criação já traz o public_url que você vai entregar ao canal. Todas as rotas exigem o módulo data-feeds e o privilégio manage_data_feeds ou manage_catalog.

POST/api/v1/admin/data-feedsAdmin

Cria um feed

Responde 201 com o feed criado. O token do link público é gerado pelo servidor; você não o define.

Corpo da requisição (JSON)

namestringobrigatório
Nome do feed, de 1 a 255 caracteres.
feed_typestringobrigatório
google_shoppingfacebookmercado_livrecustom
Destino do feed.
file_formatstringpadrão: xml
xmlcsvjson
Formato do arquivo. Nos tipos google_shopping e facebook o conteúdo gerado segue o formato do canal, não este campo.
statusstringpadrão: A
ADactivedisabled
Feed ativo ou desativado.
schedule_intervalintegerpadrão: 0
Segundos entre gerações automáticas. 0 desliga o agendamento.
filtersobject

Quais produtos entram. Todos os campos são opcionais.

statusstringpadrão: active
Status do produto: active, disabled, hidden ou a letra.
category_idsarray
UUIDs de categorias principais.
vendor_idsarray
UUIDs de sellers.
min_priceinteger
Preço mínimo de venda, em centavos.
max_priceinteger
Preço máximo de venda, em centavos.
in_stockboolean
Com true, só produtos com estoque.
field_mappingobject

Campos escolhidos.

fieldsarray

Lista de campos.

feed_fieldstringobrigatório
Nome da coluna ou tag no arquivo (g:title).
product_fieldstringobrigatório
Campo do produto que a alimenta (name).
default_valuestring
Valor usado quando o produto não tem o campo. No Google, em g:google_product_category, é a categoria do Google do feed inteiro.
prefixstring
Texto colocado antes do valor.
PUT/api/v1/admin/data-feeds/{id}Admin

Altera um feed

Altera só os campos que você enviar; o resto fica como está. filters e field_mapping são substituídos por inteiro quando enviados. Mudar o tipo ou o formato não gera o arquivo de novo: chame gerar.

Parâmetros de caminho

iduuidobrigatório
Id do feed.

Corpo da requisição (JSON)

namestring
Novo nome.
feed_typestring
google_shoppingfacebookmercado_livrecustom
Novo tipo.
file_formatstring
xmlcsvjson
Novo formato.
statusstring
ADactivedisabled
Novo status.
schedule_intervalinteger
Novo intervalo, em segundos.
filtersobject
Novos filtros (substitui os anteriores).
field_mappingobject
Novo mapeamento (substitui o anterior).
DELETE/api/v1/admin/data-feeds/{id}Admin

Apaga um feed

Remove o feed de forma definitiva. O link público deixa de funcionar na hora.

Parâmetros de caminho

iduuidobrigatório
Id do feed.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/admin/data-feeds" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{
    "name": "Google Shopping",
    "feed_type": "google_shopping",
    "file_format": "xml",
    "schedule_interval": 86400,
    "filters": {"status": "active", "in_stock": true, "min_price": 1000}
  }'

Resposta

201Feed criado
json
{
  "id": "18310126-9730-4558-92c1-d9357c8d2792",
  "name": "Google Shopping",
  "feed_type": "google_shopping",
  "file_format": "xml",
  "status": "A",
  "schedule_interval": 86400,
  "file_url": "",
  "file_path": "",
  "product_count": 0,
  "filters": { "status": "active", "in_stock": true, "min_price": 1000 },
  "field_mapping": {},
  "public_token": "e60cf94168cb51e7326f904c0664910702186692b72dcf3f60380da24b62be26",
  "public_url": "https://minhaloja.io.venddor.com.br/api/v1/feeds/e60cf94168cb51e7326f904c0664910702186692b72dcf3f60380da24b62be26.xml",
  "created_at": "2026-10-11T21:09:26.676535Z",
  "updated_at": "2026-10-11T21:09:26.676535Z"
}
200Feed apagado
json
{ "message": "data feed deleted" }

Os campos do feed estão descritos em Consultar feeds.

Erros

StatusQuandoCorpo de exemplo
400Corpo que não é JSON{"error":"invalid request body","detail":"..."}
400Sem name{"error":"name is required"}
400Sem feed_type{"error":"feed_type is required"}
400feed_type fora da lista{"error":"invalid feed_type: nope (must be google_shopping, facebook, mercado_livre, or custom)"}
400file_format fora da lista{"error":"invalid file_format: yaml (must be xml, csv, or json)"}
401Token ausente ou expirado{"error":"invalid or expired token"}
403Módulo desligado, ou falta o privilégio{"error":"module_disabled","module":"data-feeds"}
404PUT ou DELETE de um feed que não existe{"error":"data feed not found"}
500Id que não é UUID{"error":"failed to delete data feed","detail":"..."}
Status em letra

A resposta devolve status como A ou D, mesmo que você tenha enviado active ou disabled. Use sempre A ou D (ou active e disabled).

Apagar derruba o link

Quem consome o public_url (Google, Meta) passa a receber 404. Apague só depois de trocar o link no canal. Mudar status para D apenas interrompe a regeração agendada; o link continua servindo o último arquivo gerado.

Veja também

  • Gerar e trocar o token
  • Consultar feeds
  • Feeds de dados
Anterior
Consultar feeds
Próxima
Gerar feed e trocar o token
Nesta página
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também