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. 1 Faça login em sua conta do SurveyNinja
  2. 2 Vá para Settings → API ou diretamente em app.surveyninja.io/account/api
  3. 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:

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