Autenticação
Obtenha tokens de acesso e configure a autenticação
Visão geral da autenticação (API v3)
A API do SurveyNinja usa autorização por chave de API. Crie uma chave no painel da sua conta e passe-a no cabeçalho Authorization: Bearer YOUR_API_TOKEN em todas as requisições da API v3.
A API v3 usa Laravel Sanctum. O formato da chave é id|string, por exemplo: 42|xK7mP9nQ2wL5eH8jR3vU6tY0iD4aF1bG.
Como obter uma chave de API
- 1 Faça login em sua conta do SurveyNinja
- 2 Vá para Settings → API ou diretamente em app.surveyninja.io/account/api
- 3 Clique em "Gerar chave de API", defina um nome e copie a chave — ela é exibida apenas uma vez
Baixe a versão em markdown da seção "Autenticação" para usar no ChatGPT / outros LLMs:
AI Markdown
/static/api/authentication.md
AI Markdown
Informações do usuário atual GET /api/v3/service/user
Após obter um token, você pode solicitar informações sobre o proprietário do token.
GET /api/v3/service/user
curl -X GET "https://api.surveyninja.io/api/v3/service/user" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" Usando um token Bearer
Adicione o token ao cabeçalho Authorization em todas as requisições protegidas da API v3:
GET /quiz
curl -X GET https://api.surveyninja.io/api/v3/service/quiz \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" JavaScript (fetch)
fetch('https://api.surveyninja.io/api/v3/service/quiz', { method: 'GET', headers: { 'Authorization': 'Bearer YOUR_TOKEN', 'Content-Type': 'application/json' } }) .then(response => response.json()) .then(data => console.log(data)); Python (requests)
import requests headers = { 'Authorization': 'Bearer YOUR_TOKEN', 'Content-Type': 'application/json' } response = requests.get('https://api.surveyninja.io/api/v3/service/quiz', headers=headers) data = response.json() PHP (cURL)
$url = 'https://api.surveyninja.io/api/v3/service/quiz'; $token = 'YOUR_TOKEN'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Authorization: Bearer ' . $token, 'Content-Type: application/json' ]); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpCode === 200) { $data = json_decode($response, true); echo json_encode($data, JSON_PRETTY_PRINT); } else { echo "Error: HTTP $httpCode"; } PHP (Guzzle)
use GuzzleHttp\Client; use GuzzleHttp\Exception\RequestException; $client = new Client(); $token = 'YOUR_TOKEN'; try { $response = $client->get('https://api.surveyninja.io/api/v3/service/quiz', [ 'headers' => [ 'Authorization' => 'Bearer ' . $token, 'Content-Type' => 'application/json' ] ]); $data = json_decode($response->getBody(), true); echo json_encode($data, JSON_PRETTY_PRINT); } catch (RequestException $e) { echo "Error: " . $e->getMessage(); } Boas práticas de segurança
Não faça
- Não passe tokens em parâmetros de URL
- Não confirme tokens em repositórios públicos
- Não exponha tokens em código do lado do cliente
- Não compartilhe um token entre diferentes aplicações
Faça
- Armazene tokens em variáveis de ambiente
- Rotacione tokens regularmente
- Use HTTPS para todas as requisições
Tratamento de erros de autenticação
Códigos de erro
| Código | Descrição | Resolução |
|---|---|---|
| 401 | Token inválido ou ausente | Verifique se o token no cabeçalho Authorization está correto |
| 403 | O token não possui direitos de acesso | Verifique as permissões do token nas configurações |
| 429 | Limite de requisições excedido | Reduza a frequência de requisições ou faça upgrade do seu plano |