Autenticação
Cada pedido à API Pedra autentica-se com uma chave API passada no corpo JSON.
Obter uma chave API
- Regista-te em app.pedra.ai.
- Abre Definições → API.
- Copia a tua chave. Tem longa duração e está associada à tua conta.
Para quotas mais altas, capacidade dedicada ou preços enterprise, envia email para felix@pedra.ai.
Estás a criar um agente? Pode obter uma chave para a pessoa para quem trabalha por email, com a aprovação dela — vê Contas para agentes de IA.
Usar a chave
Passa a chave como apiKey no corpo JSON de cada pedido. Não há autenticação por cabeçalho, fluxo OAuth ou refresh de token — as chaves têm longa duração e estão associadas à tua conta.
Manter a tua chave segura
- Nunca incluas chaves no código do cliente. As chamadas devem partir do teu backend. Uma chave embebida num bundle do navegador ou app móvel é praticamente pública.
- Guarda as chaves como variáveis de ambiente. Não no controlo de versões.
- Roda imediatamente se for divulgada. Envia-nos email — revogamos a antiga e emitimos uma nova.
Erros
Chaves em falta ou inválidas devolvem HTTP 404 com {"error": "User not found"} — a Pedra procura a chave como registo de utilizador, por isso uma chave desconhecida aparece como utilizador em falta. Ver Erros e limites para a lista completa de modos de falha.
Contas para agentes de IA
Um agente de IA pode obter uma chave API para a pessoa para quem trabalha — criando-lhe a conta Pedra se ela não tiver — sem que nenhum dos dois abra as Definições. É para agentes sem navegador pelo meio: Claude Code, um script, o servidor MCP local, qualquer coisa que só fale HTTP. A pessoa aprova a partir da caixa de entrada; o agente nunca vê uma palavra-passe.
Os conectores do ChatGPT e do Claude não precisam disto. Ao ligar a Pedra aí, a pessoa inicia sessão com OAuth, e os utilizadores novos podem criar a conta nesse mesmo separador. Vê Servidor MCP.
- O agente chama
agent_signupcom o email da pessoa. A Pedra envia-lhe um link de confirmação, válido durante 30 minutos. - O agente pede à pessoa que veja o email. Ela abre o link: uma conta nova indica a que se dedica, escolhe o idioma e uma palavra-passe (8+ caracteres) e clica em Create account and allow; uma conta existente clica em Allow. Também pode recusar. Nada é criado até ela clicar.
- Entretanto, o agente consulta
agent_signup_statusa cada 5 segundos. Depois de aprovado, a resposta traz aapiKey— disponível durante 15 minutos após a aprovação, por isso guarda-a. A chave em si não expira.
Para que não sirva para criar contas gratuitas em massa nem para encher caixas de correio: nenhuma conta existe sem um clique no email, os domínios de email descartáveis são recusados, os pedidos têm limites por endereço e por IP, e a resposta é a mesma quer o endereço já tenha conta quer não.
O fluxo completo, com um ciclo de consulta:
Pedir acesso
/api/agent_signupNão precisa de apiKey. Inicia um pedido e envia à pessoa o link de confirmação. Devolve um requestId para consultar.
emailstringobrigatórioagentNamestring400 — email inválido, ou code: "disposable_email" (usa um endereço permanente). 429 rate_limited — 3 pedidos por hora por endereço, 10 por dia por IP, mais um limite diário global; o link já enviado continua a funcionar. 503 unavailable — o registo por email não está disponível; a pessoa pode registar-se em app.pedra.ai e copiar uma chave em Definições → API.
Resposta
Consultar um registo por agente
/api/agent_signup_statusNão precisa de apiKey. Devolve um de quatro estados:
pending— a pessoa ainda não clicou. Consulta de novo em 5 segundos.approved— comapiKey,email,newAccount,plan,creditsRemainingeappUrl. Uma conta nova começa com os créditos do teste gratuito da Pedra. SecreditsRemainingfor 0 vem também umanotea indicar que a pessoa pode obter créditos com um plano; passa-lhe essa informação. As chamadas gratuitas, como listar imóveis, funcionam sempre.denied— a pessoa recusou. Pára de consultar.expired— ninguém clicou em 30 minutos, ou a chave não foi recolhida nos 15 minutos seguintes à aprovação. Recomeça comagent_signup. UmrequestIddesconhecido devolve404.
requestIdstringobrigatório