Skip to main content
Este guia leva você da conta Shappire ao primeiro arquivo baixado via API. Tempo estimado: 15–20 minutos.
Base URL
Desenvolvimento local: http://localhost:8080/v1Todas as rotas da API pública usam esse prefixo. Chaves de produção usam o prefixo shp_live_; em ambiente local (não-produção), o prefixo é shp_test_.

Pré-requisitos

  • Conta em shappire.tools com login Google
  • curl ou Postman no seu backend (não no browser do usuário)
  • URL pública de mídia suportada (TikTok, Instagram, SoundCloud, etc.)
YouTube não é suportado. URLs youtube.com, youtu.be e music.youtube.com falham na resolução. Veja Plataformas.
API keys são credenciais secretasTrate shp_live_... como senha de banco de dados. Qualquer pessoa com a chave pode consumir sua cota e enfileirar downloads no seu projeto.Nunca:
  • commite no Git (.env no .gitignore)
  • coloque em código frontend (React, Vue, Svelte, Next.js client components)
  • envie em apps mobile sem proxy backend
  • armazene em localStorage, sessionStorage ou cookies do browser
  • exponha em URLs, query strings ou repositórios públicos

Arquitetura correta

O usuário final nunca vê a chave. Seu backend valida a sessão do usuário e chama a Shappire server-to-server.

Arquitetura incorreta

Qualquer usuário pode abrir DevTools → Network, copiar a chave e usar fora do seu controle.

Onde armazenar

Veja também: Chaves de API · Boas práticas

1. Criar um projeto

  1. Acesse Developer → Projetos
  2. Clique em Novo projeto
  3. Dê um nome (ex. Integração Produção)
Cada projeto agrupa chaves de API, uso e jobs. Use um projeto por ambiente (dev/staging/prod). Tutorial visual: Criar chave de API.

2. Criar uma API key

  1. Abra o projeto criado
  2. Vá em API KeysNova API Key
  3. Nome descritivo (ex. Worker Downloads)
  4. Marque os escopos:
    • media:resolve — resolver metadados
    • media:download — enfileirar downloads
  5. Clique em Criar
O secret shp_live_... aparece uma única vez. Copie agora.

3. Guardar a API key com segurança

Em produção, use secret manager (AWS Secrets Manager, Vault, Doppler) — nunca arquivo versionado.

4. Testar autenticação

Confirme que a chave funciona com o endpoint público de health (não exige auth):
Resposta esperada:
Agora teste com sua chave em GET /platforms:

5. Consultar plataformas suportadas

A lista é dinâmica — sempre consulte antes de integrar:
Exemplo de item na resposta:
A resposta inclui Cache-Control: public, max-age=300 — pode cachear por 5 minutos. Detalhes e exclusões: Plataformas.

6. Resolver uma mídia

POST /media/resolve analisa a URL e retorna metadados + formatos disponíveis. Requer escopo media:resolve.
Resposta típica:
O campo data.id (ex. med_a1b2c3d4) é o identificador usado como media_id no download. TTL padrão: 1 hora — após isso, media_not_found.

7. Escolher um formato

Use um formats[].id da resposta do resolve. Os mais comuns: Guarde o data.id e o format escolhido para o próximo passo.

8. Enfileirar o download (criar job)

POST /media/download cria um job assíncrono. Requer escopo media:download. Retorna 202 Accepted.
Resposta:
Você também pode enviar url + format direto, sem resolve prévio. Resolver antes é recomendado para exibir metadados no seu UI e validar formatos.
Limite de concorrência: máximo 2 jobs em queued ou processing por projeto. Exceder retorna 429 concurrency_limit_exceeded.

9. Consultar status do job (polling)

GET /jobs/{jobId} não exige escopo específico — só chave válida do mesmo projeto.
Estados possíveis: Faça polling a cada 2–5 segundos até completed ou failed. Não consulte mais rápido que isso.

10. Obter o resultado e baixar

Quando status for completed:
Baixe o arquivo antes de result.expires_at:
URLs assinadas expiram (TTL padrão: 1 hora). Copie o arquivo para seu storage (S3, GCS, etc.) — não trate como link permanente.

11. Tratar erros

Todas as rotas /v1/* retornam erros no formato:
Sempre registre request_id nos logs do seu servidor. Referência completa: Erros e códigos.

12. Mesmo fluxo em outras linguagens

Os passos 4–10 usam curl de ponta a ponta. Para clientes prontos em Node.js, Python, Go, PHP, Ruby e Java — com process.env.SHAPPIRE_API_KEY — veja Exemplos por linguagem.

Próximos passos