VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Conteúdo da loja

Blog do seller

Lista, consulta, cria, altera e apaga os posts de blog do seller, com agendamento de publicação.

Posts são artigos do blog do microsite. Servem a conteúdo e a SEO (título e descrição para buscadores são preenchidos sozinhos quando faltam). Diferente de banner e página, o status do post é sempre uma letra na resposta.

Listar posts

GET/api/v1/vendor/blogSeller

Lista os posts do seller

Todos os posts, em qualquer status, do mais recente para o mais antigo (por published_at, ou criação). Sem paginação.

Cabeçalhos

Authorizationstringobrigatório
Bearer $TOKEN. Token de acesso do usuário seller. Veja Tokens.

Exemplo de requisição

bash
curl -X GET "$BASE_URL/api/v1/vendor/blog" \
  -H "Authorization: Bearer $TOKEN"
200Posts
json
{
  "posts": [
    {
      "id": "7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60",
      "title": "Como escolher o chinelo ideal",
      "slug": "como-escolher-o-chinelo-ideal",
      "excerpt": "Cinco dicas rápidas.",
      "body": "<p>Veja o conforto, o solado e o ajuste.</p>",
      "featured_image": "https://cdn.exemplo.com.br/blog/chinelo.jpg",
      "status": "A",
      "tags": [
        "dicas",
        "verão"
      ],
      "meta_title": "Como escolher o chinelo ideal",
      "meta_description": "Cinco dicas rápidas.",
      "published_at": "2026-10-11T12:00:00Z",
      "view_count": 0,
      "vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
      "created_at": "2026-10-11T12:00:00Z",
      "updated_at": "2026-10-11T12:00:00Z"
    }
  ],
  "total": 1
}

Campos da resposta

postsarray

Posts do seller.

iduuid
Id do post.
titlestring
Título.
slugstring
Parte da URL.
excerptstring
Resumo. Ausente se vazio.
bodystring
Conteúdo, com HTML limpo de scripts.
featured_imagestring
Imagem de capa. Ausente se vazia.
author_iduuid
Autor. Ausente se não informado.
category_iduuid
Categoria do blog. Ausente se não informada.
category_namestring
Nome da categoria.
statusstring
ARD
Letra: A publicado, R rascunho, D arquivado.
tagsarray
Lista de rótulos.
meta_titlestring
Título para buscadores.
meta_descriptionstring
Descrição para buscadores.
published_atstring
Quando vai ao ar (RFC 3339, UTC). Data futura = agendado.
view_countinteger
Visualizações.
vendor_iduuid
Seller dono.
created_atstring
Criação.
updated_atstring
Última alteração.
post_id, page_id, page_title, seo_name, description, short_description, company_id, timestamp, updated_timestamp, published_timestampvarious
Campos de compatibilidade com a plataforma antiga. Ignore em integrações novas.
totalinteger
Quantidade de posts.

Consultar post

GET/api/v1/vendor/blog/{id}Seller

Devolve um post

Cabeçalhos

Authorizationstringobrigatório
Bearer $TOKEN. Token de acesso do usuário seller. Veja Tokens.

Parâmetros de caminho

iduuidobrigatório
Id do post.

Exemplo de requisição

bash
curl -X GET "$BASE_URL/api/v1/vendor/blog/7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60" \
  -H "Authorization: Bearer $TOKEN"
200Post
json
{
  "id": "7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60",
  "title": "Como escolher o chinelo ideal",
  "slug": "como-escolher-o-chinelo-ideal",
  "excerpt": "Cinco dicas rápidas.",
  "body": "<p>Veja o conforto, o solado e o ajuste.</p>",
  "featured_image": "https://cdn.exemplo.com.br/blog/chinelo.jpg",
  "status": "A",
  "tags": [
    "dicas",
    "verão"
  ],
  "meta_title": "Como escolher o chinelo ideal",
  "meta_description": "Cinco dicas rápidas.",
  "published_at": "2026-10-11T12:00:00Z",
  "view_count": 0,
  "vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
  "created_at": "2026-10-11T12:00:00Z",
  "updated_at": "2026-10-11T12:00:00Z"
}

Campos da resposta

...object
Os campos de cada post da lista.

Criar post

POST/api/v1/vendor/blogSeller

Cria um post

Cabeçalhos

Authorizationstringobrigatório
Bearer $TOKEN. Token de acesso do usuário seller. Veja Tokens.

Corpo da requisição

titlestringobrigatório
Título.
slugstringobrigatório
Parte da URL. Envie sempre; um slug repetido recebe sufixo (-2).
excerptstring
Resumo.
bodystring
Conteúdo. HTML é limpo de scripts e eventos.
featured_imagestring
URL da imagem de capa.
author_iduuid
Autor.
category_iduuid
Categoria do blog (cadastrada pelo administrador).
statusstringpadrão: published
published ou active (letra A), draft (R), archived (D). Ausente ou vazio vira publicado.
tagsarray
Lista de rótulos (texto).
meta_titlestring
Título para buscadores. Vazio copia o title.
meta_descriptionstring
Descrição para buscadores. Vazia usa os primeiros 160 caracteres do texto.
published_atstring
Quando publicar (RFC 3339). Data futura agenda o post: a vitrine o esconde até lá. Ausente com post publicado = agora.
descriptionsobject
Título, corpo e textos de SEO por idioma, indexados pelo código do idioma. Idiomas omitidos são copiados dos campos principais.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/vendor/blog" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "Como escolher o chinelo ideal",
  "slug": "como-escolher-o-chinelo-ideal",
  "excerpt": "Cinco dicas rápidas.",
  "body": "<p>Veja o conforto, o solado e o ajuste.</p>",
  "tags": [
    "dicas",
    "verão"
  ],
  "status": "published",
  "published_at": "2026-10-11T12:00:00Z"
}'
201Post criado
json
{
  "id": "7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60",
  "title": "Como escolher o chinelo ideal",
  "slug": "como-escolher-o-chinelo-ideal",
  "excerpt": "Cinco dicas rápidas.",
  "body": "<p>Veja o conforto, o solado e o ajuste.</p>",
  "featured_image": "https://cdn.exemplo.com.br/blog/chinelo.jpg",
  "status": "A",
  "tags": [
    "dicas",
    "verão"
  ],
  "meta_title": "Como escolher o chinelo ideal",
  "meta_description": "Cinco dicas rápidas.",
  "published_at": "2026-10-11T12:00:00Z",
  "view_count": 0,
  "vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
  "created_at": "2026-10-11T12:00:00Z",
  "updated_at": "2026-10-11T12:00:00Z"
}

Alterar post

PUT/api/v1/vendor/blog/{id}Seller

Altera um post

Parcial. Ao passar o status para publicado sem enviar published_at, a data de publicação é preenchida com o momento atual (se ainda não existia). Um slug já usado é recusado.

Cabeçalhos

Authorizationstringobrigatório
Bearer $TOKEN. Token de acesso do usuário seller. Veja Tokens.

Parâmetros de caminho

iduuidobrigatório
Id do post.

Corpo da requisição

...object
Qualquer campo do corpo da criação, todos opcionais.

Exemplo de requisição

bash
curl -X PUT "$BASE_URL/api/v1/vendor/blog/7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "status": "draft"
}'
200Post atualizado
json
{
  "id": "7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60",
  "title": "Como escolher o chinelo ideal",
  "slug": "como-escolher-o-chinelo-ideal",
  "excerpt": "Cinco dicas rápidas.",
  "body": "<p>Veja o conforto, o solado e o ajuste.</p>",
  "featured_image": "https://cdn.exemplo.com.br/blog/chinelo.jpg",
  "status": "R",
  "tags": [
    "dicas",
    "verão"
  ],
  "meta_title": "Como escolher o chinelo ideal",
  "meta_description": "Cinco dicas rápidas.",
  "published_at": "2026-10-11T12:00:00Z",
  "view_count": 0,
  "vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
  "created_at": "2026-10-11T12:00:00Z",
  "updated_at": "2026-10-11T12:00:00Z"
}

Apagar post

DELETE/api/v1/vendor/blog/{id}Seller

Apaga um post

Remoção definitiva. Para só tirar do ar, passe o status para draft ou archived.

Cabeçalhos

Authorizationstringobrigatório
Bearer $TOKEN. Token de acesso do usuário seller. Veja Tokens.

Parâmetros de caminho

iduuidobrigatório
Id do post.

Exemplo de requisição

bash
curl -X DELETE "$BASE_URL/api/v1/vendor/blog/7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60" \
  -H "Authorization: Bearer $TOKEN"
200Post apagado
json
{
  "message": "blog post deleted"
}

Erros

StatusQuandoCorpo de exemplo
401Token ausente, inválido ou expirado.{"error":"missing authorization header"}
403O token não é de um usuário seller (por exemplo, é de administrador).{"error":"insufficient permissions"}
403O usuário do seller (equipe) não tem nenhum dos privilégios exigidos. O dono da loja nunca recebe este erro.{"error":"insufficient vendor privileges","privilege_required_any":["vendor_settings","vendor_view_settings","vendor_manage_delivery_areas","vendor_manage_whatsapp","vendor_manage_documents","vendor_manage_kyc","vendor_view_plan","vendor_manage_application","vendor_manage_vacation"]}
403O usuário autenticado não está vinculado a nenhum seller.{"error":"no vendor account associated with this user"}
400JSON inválido, referência (author_id, category_id) que não existe, ou slug repetido na alteração.{"error":"blog post slug \"x\" already in use"}
404O post não existe ou é de outro seller.{"error":"blog post not found"}
Sem `status`, vai ao ar

Um POST sem status cria o post já publicado, com published_at igual ao momento da criação. Para rascunho, envie "status":"draft". O status volta como letra (A, R, D), mas a entrada aceita palavras.

Veja também

  • Banners
  • Páginas
  • Visão geral do conteúdo
Anterior
Páginas do seller
Próxima
Conteúdo da vitrine
Nesta página
  • Listar posts
  • Exemplo de requisição
  • Consultar post
  • Exemplo de requisição
  • Criar post
  • Exemplo de requisição
  • Alterar post
  • Exemplo de requisição
  • Apagar post
  • Exemplo de requisição
  • Erros
  • Veja também