API v1 — Referência Completa

Documentação da API

Tudo que você precisa para integrar em produção: autenticação, endpoints, formatos de resposta, exemplos de código e tratamento de erros.

Quick Start
Faça sua primeira chamada em menos de 2 minutos

Siga os três passos abaixo para consumir um endpoint em produção. Não é necessário nenhuma configuração especial — apenas sua chave de API.

1
Obtenha sua chave de API
Solicite sua chave de API para começar a consumir os endpoints. Cada chave tem limites configuráveis por dia e por minuto.
2
Envie sua chave na requisição
Inclua o header apikey ou o parâmetro api_key na query string em toda requisição.
JavaScript
fetch('https://axicld.duckdns.org:5006/api/v1/tiktok/download?url=...', { headers: { 'apikey': 'ck_sua_chave_aqui' } })
3
Processe o JSON de resposta
Todas as respostas vêm no mesmo envelope JSON. O campo result contém os dados do endpoint chamado.
Resposta
{ "success": true, "result": { ... } }
Dica: Use o Playground para testar endpoints diretamente no navegador antes de escrever código. É a forma mais rápida de validar parâmetros e inspecionar respostas.
Autenticação
Como identificar sua aplicação nas requisições

Toda requisição precisa estar autenticada com uma API Key válida. Você pode enviá-la de duas formas equivalentes.

Via Header HTTP (recomendado)
Headers
apikey: ck_sua_chave_aqui Content-Type: application/json
Via Query String
URL
/api/v1/endpoint?api_key=ck_chave
Nunca exponha sua chave: Prefira o header HTTP em vez da query string quando possível, pois query strings ficam armazenadas em logs de servidor e histórico de navegador. Em projetos frontend, roteie as chamadas por um backend próprio.
Base URL
Raiz para todos os endpoints da API

Todos os endpoints compartilham o mesmo prefixo de URL. Concatene o path do endpoint desejado a essa base.

BASE
https://axicld.duckdns.org:5006/api/v1/
Exemplo de URL completa:
POST
https://axicld.duckdns.org:5006/api/v1/tiktok/download
HTTPS obrigatório: Todas as requisições devem usar HTTPS. Conexões HTTP são redirecionadas automaticamente e podem resultar em erros de autenticação dependendo do cliente.
Formato de Resposta
Estrutura padrão de todos os retornos

Independente do endpoint, toda resposta da API segue o mesmo envelope JSON. Isso simplifica o tratamento de erros e a tipagem no seu código.

Resposta de sucesso
200 OK
{ "success": true, "criador": "axiapis", "result": { "video_url": "https://...", "title": "Meu vídeo", "duration": 42 }, "message": "Operacao realizada com sucesso" }
Resposta de erro
4xx / 5xx
{ "success": false, "criador": "axiapis", "result": null, "message": "Chave de API invalida ou ausente" }
Campos do envelope
CampoTipoDescrição
successbooleanIndica se a operação foi realizada com êxito.
criadorstringIdentificador da API. Sempre "axiapis".
resultobject | nullDados retornados pelo endpoint. Estrutura varia por endpoint. null em caso de erro.
messagestringMensagem legível descrevendo o resultado ou o motivo do erro.
Parâmetros
Parâmetros comuns a todos os endpoints

Além dos parâmetros específicos de cada endpoint, os seguintes campos são aceitos em todas as chamadas.

ParâmetroOndeObrigatoriedadeDescrição
apikey header obrigatório Sua chave de API. Alternativa ao api_key na query string.
api_key query opcional Alternativa ao header apikey. Use somente quando headers não estiverem disponíveis.
url body / query por endpoint URL do conteúdo a ser processado. Presente na maioria dos endpoints de download/scraping.
Os parâmetros específicos de cada endpoint estão documentados na página Endpoints, junto com exemplos de resposta e URL de teste.
Exemplos de Código
Integração nas linguagens mais populares

Exemplos prontos para copiar e colar. Troque ck_sua_chave pela sua chave real e o endpoint pelo que você deseja consumir.

Node.js — fetch nativo
const response = await fetch('https://axicld.duckdns.org:5006/api/v1/tiktok/download', { method: 'POST', headers: { 'Content-Type': 'application/json', 'apikey': 'ck_sua_chave' }, body: JSON.stringify({ url: 'https://tiktok.com/...' }) }); const data = await response.json(); if (data.success) { console.log('Video URL:', data.result.video_url); } else { console.error('Erro:', data.message); }
Node.js — axios
const axios = require('axios'); const { data } = await axios.post( 'https://axicld.duckdns.org:5006/api/v1/tiktok/download', { url: 'https://tiktok.com/...' }, { headers: { apikey: 'ck_sua_chave' } } ); console.log(data.result.video_url);
Python — requests
import requests resp = requests.post( 'https://axicld.duckdns.org:5006/api/v1/tiktok/download', json={'url': 'https://tiktok.com/...'}, headers={'apikey': 'ck_sua_chave'} ) data = resp.json() if data['success']: print('Video:', data['result']['video_url']) else: print('Erro:', data['message'])
Python — httpx (async)
import httpx import asyncio async def download(url: str) -> dict: async with httpx.AsyncClient() as client: r = await client.post( 'https://axicld.duckdns.org:5006/api/v1/tiktok/download', json={'url': url}, headers={'apikey': 'ck_sua_chave'} ) return r.json() result = asyncio.run(download('https://tiktok.com/...'))
cURL — POST com JSON
curl -X POST 'https://axicld.duckdns.org:5006/api/v1/tiktok/download' \ -H 'Content-Type: application/json' \ -H 'apikey: ck_sua_chave' \ -d '{"url":"https://tiktok.com/..."}'
cURL — GET com query string
curl 'https://axicld.duckdns.org:5006/api/v1/instagram/info?url=https://instagram.com/p/...&api_key=ck_sua_chave'
PHP — cURL
<?php $ch = curl_init('https://axicld.duckdns.org:5006/api/v1/tiktok/download'); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => json_encode(['url' => 'https://tiktok.com/...']), CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', 'apikey: ck_sua_chave' ], ]); $data = json_decode(curl_exec($ch), true); curl_close($ch); if ($data['success']) { echo $data['result']['video_url']; }
Códigos de Erro
O que cada status HTTP significa e como resolver

Cheque sempre o campo message na resposta — ele contém uma descrição em português do que aconteceu.

200
OK — Sucesso A requisição foi processada. Leia result para obter os dados.
400
Bad Request — Parâmetro inválido Um ou mais parâmetros estão ausentes ou com formato incorreto. Verifique a documentação do endpoint.
401
Unauthorized — Chave ausente ou inválida A chave não foi enviada, está mal formatada ou não existe. Verifique o header apikey.
403
Forbidden — Chave expirada ou bloqueada A chave existe, mas não tem permissão para esta chamada. Renove sua chave ou solicite uma nova.
429
Too Many Requests — Limite atingido O limite diário ou por minuto foi excedido. Aguarde o reset (meia-noite UTC) ou verifique seu plano.
500
Internal Server Error — Erro no scraper O conteúdo-alvo mudou ou ficou indisponível. Tente novamente em alguns minutos ou reporte no suporte.
503
Service Unavailable — Manutenção O servidor está em manutenção programada. Acompanhe o status em nosso Discord.