VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Plataforma e integrações

Descoberta da loja

Descobre o domínio e o id de uma loja a partir do nome curto (slug), sem precisar de login.

Toda loja da Venddor (tenant) vive em um endereço próprio. Quando seu app ou integração só conhece o nome curto da loja, o slug (por exemplo minhaloja), use estas duas rotas públicas para descobrir o endereço completo e o id da loja. Nenhuma exige token.

  • tenant-lookup serve apps móveis e telas de "digite o nome da sua loja". Ele nunca resolve por e-mail, para não revelar quais contas existem.
  • public/tenants/{slug} devolve também o id (UUID) e o nome, e responde 404 quando a loja não existe.
POST/api/v1/platform/tenant-lookupPública

Descobrir o domínio da loja pelo slug

Procura entre as lojas ativas, em teste ou suspensas. A resposta tem sempre o mesmo formato, achando ou não: quando não acha, tenant_domain vem vazio e o status continua 200. Se você enviar apenas email, a resposta é sempre vazia.

O limite é de 20 requisições por minuto por IP. Acima disso a resposta é 429.

Corpo da requisição

subdomainstring
Slug ou parte inicial do domínio da loja. Espaços nas pontas são removidos e o texto é convertido para minúsculas.
emailstring
Aceito, mas ignorado: nunca resolve a loja.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/platform/tenant-lookup" \
  -H "Content-Type: application/json" \
  -d '{"subdomain":"minhaloja"}'

Resposta

200Loja encontrada
json
{ "tenant_domain": "minhaloja.io.venddor.com.br" }
200Loja não encontrada (ou busca por e-mail)
json
{ "tenant_domain": "" }

Campos da resposta

tenant_domainstring
Domínio da loja, sem https://. Vazio quando não há correspondência.

Erros

StatusQuandoCorpo de exemplo
400Corpo que não é JSON válido{"error":"invalid body","detail":"invalid character 'x' looking for beginning of value"}
429Mais de 20 chamadas por minuto do mesmo IP{"error":"rate limited"}
Trate vazio como não encontrado

Como a rota responde 200 mesmo sem achar a loja, teste tenant_domain === "" em vez de olhar o status HTTP.

GET/api/v1/public/tenants/{slug}Pública

Consultar uma loja pelo slug

Devolve os dados públicos da loja ativa com aquele slug. É usada, por exemplo, por ambientes de teste que roteiam por caminho em vez de por subdomínio.

Parâmetros de caminho

slugstringobrigatório
Slug da loja, como minhaloja.

Exemplo de requisição

bash
curl "$BASE_URL/api/v1/public/tenants/minhaloja"

Resposta

200Loja encontrada
json
{
  "id": "dfe2555e-bfd0-41a8-9fa1-9586999f3798",
  "name": "Minha Loja",
  "slug": "minhaloja",
  "status": "active",
  "subdomain": "minhaloja.io.venddor.com.br"
}

Campos da resposta

iduuid
Id da loja.
namestring
Nome da loja.
slugstring
Nome curto, usado nos endereços.
statusstring
Situação da loja. A rota só devolve lojas ativas.
subdomainstring
Domínio da loja.

Erros

StatusQuandoCorpo de exemplo
404Não há loja ativa com o slug{"error":"storefront not found","detail":"no active storefront with slug: nope"}
500Falha ao consultar o cadastro de lojas{"error":"failed to resolve tenant","detail":"..."}
Mensagens em inglês

As mensagens de erro desta rota saem em inglês, como acima. Programe pelo status HTTP, não pelo texto.

Veja também

  • Multi-tenancy
  • Saúde da API
  • Visão geral da seção
Anterior
Plataforma e integrações
Próxima
Saúde da API
Nesta página
  • Exemplo de requisição
  • Resposta
  • Erros
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também