Documentação (pt-br)
Última atualização em 29/06/2025 às 15h07.
Bem-vindo à documentação oficial da The Bagui, o seu canivete suíço para acelerar o desenvolvimento. Nossa API foi projetada para ser simples, poderosa e dev-friendly.
Toda a autenticação é feita através do header x-api-key
. A URL base para todas as requisições é: https://services.thebagui.net/api
.
// Exemplo de como configurar um HttpClient em C#
var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "SUA_CHAVE_SECRETA");
Cache
Serviço de cache chave-valor ultra-rápido para otimizar suas aplicações.
Criar ou Atualizar Chave
Cria ou atualiza uma chave no cache com um valor associado.
POST
/api/cache
Corpo da Requisição
{
"key": "my_user_session:123",
"value": {
"name": "João",
"permissions": ["admin", "editor"]
},
"ttl": 3600
}
value
(any): Pode ser uma string, um número ou um objeto JSON.ttl
(integer, opcional): Tempo de vida da chave em segundos. Se omitido ou nulo, a chave não expira.
Obter Valor pela Chave
Recupera o valor armazenado associado a uma chave.
GET
/api/cache/:key
Remover Chave
Apaga permanentemente uma chave e seu valor do cache.
DELETE
/api/cache/:key
Banco de Dados
Crie, gerencie e consulte bancos de dados SQLite isolados via API, sem configurar nada.
Criar Banco de Dados
POST
/api/databases/create
Corpo da Requisição
{
"dbName": "meu_projeto_db"
}
Executar Query SQL
Execute uma instrução SQL em um banco de dados específico.
POST
/api/databases/:dbName/query
Corpo da Requisição
{
"sql": "SELECT Name FROM Person WHERE Id = ?",
"params": [1999]
}
params
(array, opcional): Use para passar parâmetros de forma segura e evitar SQL Injection.
Acompanhar Tamanho do Banco
Verifica o espaço em disco (em MB) consumido por um banco de dados.
GET
/api/databases/:dbName/size
Remover Banco de Dados
Apaga permanentemente um banco de dados e todos os seus dados.
DELETE
/api/databases/:dbName
Operações com navegador
Serviços de automação web.
Gerar PDF a partir de HTML
Converte um conteúdo HTML para um arquivo PDF, que é retornado diretamente na resposta.
POST
/api/browser/generate-pdf
Corpo da Requisição
{
"html": "<h1>Meu Título</h1><p>Um parágrafo em <b>negrito</b>.</p>"
}
Tirar Screenshot de um Site
Captura a tela de um site a partir de uma URL.
POST
/api/browser/screenshot-page
Corpo da Requisição
{
"url": "https://www.google.com"
}
Capturar HTML de um Site (Scrape)
Extrai o conteúdo HTML completo de uma página após a renderização do JavaScript.
POST
/api/browser/scrape-page
Corpo da Requisição
{
"url": "https://www.google.com"
}
Manipulação de Arquivos
DOC e DOCX: Extrair Texto
Extrai todo o conteúdo textual de arquivos .doc
e .docx
. Requisição via multipart/form-data
. Limite de 10MB.
POST
/api/docx/extract-text
Corpo da Requisição (form-data)
- Chave:
document
- Valor: O arquivo
.doc
ou.docx
.
DOC e DOCX: Converter para HTML
Converte o conteúdo de um arquivo .doc
ou .docx
para HTML. Requisição via multipart/form-data
. Limite de 10MB.
POST
/api/docx/convert-to-html
Corpo da Requisição (form-data)
- Chave:
document
- Valor: O arquivo
.doc
ou.docx
.
OCR (Reconhecimento de Imagens)
Extrair Texto de Imagens
Extrai texto de imagens. Ideal para documentos. Extensões permitidas: PNG, JPEG, BMP, TIFF. Requisição via multipart/form-data
. Limite de 10MB.
POST
/api/ocr/extract-text
Corpo da Requisição (form-data)
- Chave:
image
- Valor: O arquivo de imagem.
Utilitários de Texto e Dados
Análise de Sentimento
Analisa um texto e retorna sua polaridade (POSITIVO, NEGATIVO ou NEUTRO) com um score de confiança.
POST
/api/sentiment/analyze
Corpo da Requisição
{
"text": "Eu estou muito feliz por estar usando esta API!"
}
Markdown para HTML
Converte uma string em formato Markdown para HTML.
POST
/api/markdown/markdown-to-html
Corpo da Requisição
{
"markdown": "# Título\nIsso é um texto em **negrito**."
}
HTML para Markdown
Converte uma string HTML para Markdown.
POST
/api/markdown/html-to-markdown
Corpo da Requisição
{
"html": "<h1>Título</h1><p>Isso é um texto em <b>negrito</b>.</p>"
}
XML para JSON
Converte uma string XML para um objeto JSON.
POST
/api/xml/convert-to-json
Corpo da Requisição
{
"xml": "<root><pessoa nome='Ana' /></root>"
}
Validar E-mail
Verifica se um e-mail é válido e/ou descartável e previna bots nos seus sistemas/formulários de cadastro.
POST
/api/email/validate/:email
QRCode
Gerar QRCode
Gere um QRCode a partir de um texto ou link.
POST
/api/qrcode/generate
Corpo da Requisição
{
"text": "https://thebagui.net",
"outputImage": true
}
outputImage
(boolean, opcional): Setrue
, a resposta será a imagem PNG diretamente. Sefalse
ou omitido, a resposta será um JSON com a imagem em base64.
Webhooks
Crie endpoints dinâmicos e personalizáveis para receber requisições. Este serviço possui duas rotas base: /manage
para gerenciar seus webhooks e /call
para acioná-los.
Criar Webhook
POST
/api/webhooks/manage
Corpo da Requisição
{
"name": "meu-primeiro-webhook",
"method": "POST",
"responseContentType": "application/json",
"responseContent": "{\"status\": \"ok\", \"message\": \"Webhook recebido!\"}"
}
name
(string): Nome único para a rota (sem espaços ou caracteres especiais).method
(string): Método HTTP que o webhook irá aceitar (GET
,POST
,PUT
, etc.).responseContentType
(string): OContent-Type
da resposta (ex:application/json
,text/html
).responseContent
(string): O corpo da resposta que será retornado quando o webhook for acionado.
Listar Webhooks
Retorna uma lista de todos os webhooks que você criou.
GET
/api/webhooks/manage
Acionar um Webhook
Faz uma chamada para um dos seus webhooks dinâmicos.
GET
| POST
| etc.
/api/webhooks/call/:webhookName
- A requisição para esta rota deve usar o método HTTP que foi definido na criação do webhook.
- Todos os cabeçalhos, query params e o corpo da requisição são salvos no histórico para auditoria.
Exemplo de Chamada cURL
curl -X POST https://thebagui.net/api/webhooks/call/meu-primeiro-webhook \
-H "x-api-key: SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{"event": "new_user_signup", "userId": 123}'
Obter Histórico de Requisições
Recupera os logs de todas as chamadas feitas para um webhook específico, com paginação.
GET
/api/webhooks/manage/:name/history
Query Parameters
page
(integer, opcional): O número da página. Padrão:1
.limit
(integer, opcional): O número de registros por página. Padrão:25
.
Remover Webhook
Apaga permanentemente uma definição de webhook e todo o seu histórico.
DELETE
/api/webhooks/manage/:name
Manipulação de imagens
Manipular
Com esse recurso você pode cortar sua imagem, redimensionar, deixar preto e branco, alterar a qualidade (comprimir), alterar o contraste, virar horizontalmente ou verticalmente ou rotacionar. Extensões permitidas: PNG, JPEG, BMP, TIFF. Requisição via multipart/form-data
. Limite de 10MB.
POST
/api/image/manipulate
Corpo da Requisição (form-data)
- Chave:
image
- Valor: O arquivo de imagem.
Além do arquivo passado, as seguintes opções são permitidas para os processo de manipulação (formato: chave-valor, como acima):
resizeWidth (valor inteiro)
, resizeHeight (valor inteiro)
, cropX (valor inteiro)
, cropY (valor inteiro)
, cropWidth (valor inteiro)
, cropHeight (valor inteiro)
, grayscale (true ou false)
, constrast (0.0 à 1.0)
, rotate (ângulo)
, flipHorizontal (true ou false)
, flipVertical (true ou false)
, quality (0 à 100)
.
A imagem manipulada será retornada na requisição com o Content-Type: image/webp
.
Geração de planilhas
Geração a partir de um JSON
Gere uma planilha com seus dados.
POST
/api/sheet/generate
Corpo da Requisição
{
"fileName": "meu_arquivo",
"sheetName": "Dados",
"data": {
columns: [
{ label: "Nome", value: "name" },
{ label: "Email", value: "email" }
],
rows: [
{ name: "Joao", email: "[email protected]" },
{ name: "Luis", email: "[email protected]" },
]
}
}
fileName
(obrigatório)sheetName
(obrigatório): será o nome da sua página da planilhadata
(obrigatório): precisa estar no formato de colunas e linhas. As colunas são presentes pelolabel
(termo que será visivel na planilha) evalue
é para linkar os valores presentes emrows
com suas respectivas colunas.
Após realizar a requisição, seu arquivo de planilha será retornado no Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.