Pular para o conteúdo

Bases de Conhecimento

A API de Bases de Conhecimento permite consultar as bases da organização, gerenciar seus itens e recuperar contexto para aplicações externas. A API pública não cria, renomeia nem remove a base em si: essas operações são feitas no SquadOS. Pela API, você consulta bases existentes e cria, lê, atualiza ou remove itens.

Base URL: https://api.squados.io/v1

Todas as requisições exigem Authorization: Bearer pk_.... Requisições com corpo também exigem Content-Type: application/json. Consulte Autenticação.

Todos os endpoints são limitados à organização do token. Um ID pertencente a outra organização é tratado como não encontrado.

Lista as bases da organização, da mais recente para a mais antiga.

QueryTipoPadrãoRegra
limitinteger50Máximo 100.
offsetinteger0Posição inicial da página.
Terminal window
curl "https://api.squados.io/v1/bases?limit=50&offset=0" \
-H "Authorization: Bearer pk_sua_chave_aqui"
{
"bases": [
{
"id": "BASE_ID",
"name": "Documentação de Produto",
"description": "Manuais e perguntas frequentes",
"item_count": 42,
"created_at": "2026-08-15T14:22:00Z",
"updated_at": "2026-08-31T09:45:00Z"
}
],
"total": 1,
"limit": 50,
"offset": 0
}

description pode ser null. item_count é a contagem atual de itens da base.

Retorna uma base e sua contagem de itens. description pode ser null.

Terminal window
curl https://api.squados.io/v1/bases/BASE_ID \
-H "Authorization: Bearer pk_sua_chave_aqui"

Retorna 400 se baseId não for um UUID válido e 404 se a base não existir na organização.

Um item passa por processamento assíncrono. Os estados esperados são:

StatusSignificado
pendingAguardando processamento.
processingExtração, divisão e indexação em andamento.
processedDisponível para recuperação.
errorO processamento falhou.

Lista os itens da base, do mais recente para o mais antigo.

QueryTipoPadrãoRegra
limitinteger50Máximo 100.
offsetinteger0Posição inicial da página.
statusstringFiltro exato: pending, processing, processed ou error.
Terminal window
curl "https://api.squados.io/v1/bases/BASE_ID/items?status=processed&limit=20" \
-H "Authorization: Bearer pk_sua_chave_aqui"
{
"base_id": "BASE_ID",
"items": [
{
"id": "ITEM_ID",
"name": "Política de devolução",
"type": "text",
"source": "text",
"status": "processed",
"chunk_count": 4,
"token_count": 812,
"content_preview": "Nossa política permite devoluções em até 30 dias...",
"created_at": "2026-08-20T11:00:00Z"
}
],
"total": 1,
"limit": 20,
"offset": 0
}

chunk_count, token_count e content_preview podem ser null enquanto não houver resultado de processamento.

Cria um item com source: "text".

CampoTipoObrigatórioRegra
namestringSimNão pode ficar vazio após remover espaços das pontas.
contentstringSimNão pode ficar vazio; máximo de 100.000 caracteres.
Terminal window
curl -X POST https://api.squados.io/v1/bases/BASE_ID/items \
-H "Authorization: Bearer pk_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"name": "Política de devolução",
"content": "Aceitamos devoluções em até 30 dias após a compra."
}'

A resposta 201 Created contém id, base_id, name, type, status e created_at. O item nasce com status: "pending" e segue de forma assíncrona para processing e processed ou error.

Retorna os campos da listagem mais base_id e content.

Terminal window
curl https://api.squados.io/v1/bases/BASE_ID/items/ITEM_ID \
-H "Authorization: Bearer pk_sua_chave_aqui"

Itens de texto preservam em content o conteúdo enviado, inclusive antes do fim da indexação. Para um item originado de arquivo, content pode ser null antes da extração. chunk_count, token_count e content_preview também podem ser null.

Retorna 400 se algum ID não for um UUID válido e 404 se a base ou o item não existir na organização.

Atualiza name, content ou ambos em um item com source: "text". Pelo menos um campo é obrigatório; content continua limitado a 100.000 caracteres.

Terminal window
curl -X PATCH https://api.squados.io/v1/bases/BASE_ID/items/ITEM_ID \
-H "Authorization: Bearer pk_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"content": "Aceitamos devoluções em até 45 dias após a compra."
}'

Qualquer atualização — inclusive somente do nome — redefine status como pending e dispara novo processamento. A resposta 200 OK devolve o detalhe do item. Durante essa transição, chunk_count, token_count e content_preview podem ainda refletir o processamento anterior; trate esses campos como provisórios até o novo processed.

Remove o item e retorna 204 No Content, sem corpo. A exclusão enfileira, no mesmo commit, a limpeza assíncrona dos vetores e dos arquivos de chunks. O 204 confirma a remoção do item, não um prazo específico para concluir a limpeza interna.

Terminal window
curl -X DELETE https://api.squados.io/v1/bases/BASE_ID/items/ITEM_ID \
-H "Authorization: Bearer pk_sua_chave_aqui"

Retorna 400 para IDs inválidos e 404 quando a base ou o item não existe na organização.

Recupera trechos da base com o mesmo mecanismo usado pelos agentes: expansão de consulta, busca densa e lexical (BM25), fusão, reordenação e remoção de duplicatas. A consulta fica restrita à organização e à base informada.

CampoTipoObrigatórioRegra
querystringSimPergunta ou texto de busca; a string vazia é rejeitada.
limitintegerNãoPadrão 5; normalizado para 1 a 20. Limita a apresentação, sem mudar a classificação do resultado.
min_scorenumberNãoObsoleto e ignorado. É aceito apenas por compatibilidade.
Terminal window
curl -X POST https://api.squados.io/v1/bases/BASE_ID/query \
-H "Authorization: Bearer pk_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"query": "Qual é o prazo para devolução?",
"limit": 5
}'
{
"query": "Qual é o prazo para devolução?",
"results": [
{
"content": "Aceitamos devoluções em até 45 dias após a compra.",
"score": 0.92,
"item_id": "ITEM_ID",
"item_name": "Política de devolução",
"chunk_index": 0
}
],
"total_results": 1,
"embedding_model": "text-embedding-3-small",
"outcome": "supported",
"degraded": false
}
CampoSignificado
resultsTrechos finais, já reordenados e limitados. Em not_found, é sempre [].
total_resultsQuantidade de trechos devolvidos em results.
outcomesupported, uncertain ou not_found. Use este campo para decidir se há contexto confiável.
degradedtrue quando a organização usou o mecanismo legado de contingência. O formato da resposta permanece igual.
scoreRelevância do reordenador entre 0 e 1, arredondada a quatro casas. Não é similaridade cosseno. Compare apenas resultados da mesma consulta e não adote um corte fixo.
item_nameNome do item de origem; pode ser null.
chunk_indexÍndice do trecho; pode ser inteiro, string ou null.

O endpoint retorna 400 para IDs ou corpo inválidos, 404 para uma base inexistente, 503 service_unavailable quando uma dependência de recuperação está indisponível e 500 para configuração ausente ou falha inesperada.

Consulte Erros para o formato comum de falhas da API.