01 · Início rápido
Da criação à primeira chamada
- 1
Crie
Entre na conta, escolha um nome e conceda somente os escopos necessários.
- 2
Copie uma vez
A chave completa aparece só na criação. Salve-a imediatamente em um cofre.
- 3
Envie como Bearer
Use o header Authorization em HTTPS; nunca coloque a chave na URL.
export STRUCTURALTECH_API_KEY="cole-a-chave-no-seu-cofre"
curl --request POST \
--url "https://structuraltec.com.br/v1/geometry/rectangular-section" \
--header "Authorization: Bearer $STRUCTURALTECH_API_KEY" \
--header "Content-Type: application/json" \
--header "Idempotency-Key: $(uuidgen)" \
--data '{"b":14,"h":40}'O exemplo usa uma variável de ambiente fictícia e nunca contém uma chave real. O endpoint de geometria exige compute:write, consome um crédito e aceita Idempotency-Key para deduplicar retries.
02 · Autenticação
Um único header, sem alias
Envie Authorization: Bearer <chave>. O header x-api-key não é aceito. Chaves de teste começam com stk_test_; chaves de produção, com stk_live_. Uma chave usada no ambiente errado falha com 401.
Criação, listagem e revogação exigem a sessão do navegador. Uma API key nunca pode criar outra chave, alterar billing, aceitar termos ou excluir a conta.
const response = await fetch(
'https://structuraltec.com.br/v1/geometry/rectangular-section',
{
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.STRUCTURALTECH_API_KEY}`,
'Content-Type': 'application/json',
// Uma chave por pedido. Para calcular com outros parâmetros, gere outra.
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify({ b: 14, h: 40 }),
},
);
if (!response.ok) throw new Error(`API respondeu ${response.status}`);
const result = await response.json();03 · Escopos
Conceda somente o necessário
| Escopo | Permissão |
|---|---|
compute:read | Consultar catálogos e referências sem consumo de crédito. |
compute:write | Executar cálculos estruturais; rotas faturáveis consomem créditos. |
projects:read | Listar e consultar somente os projetos da conta proprietária. |
projects:write | Criar, alterar e remover somente os projetos da conta proprietária. |
04 · Ciclo de vida
Expiração, revogação e rotação sem downtime
Rotação
- 1. Crie uma chave nova com os mesmos escopos.
- 2. Atualize o cofre e a integração.
- 3. Valide chamadas com a chave nova.
- 4. Revogue a antiga.
Expiração e revogação
A expiração é opcional; sem data, a chave dura até a revogação. Revogar é imediato e irreversível. A conta aceita até cinco chaves ativas para permitir uma janela segura de rotação.
05 · Erros e limites
Trate status HTTP e faça backoff
400Payload inválido, expiração no passado ou falha de regra da operação.
401Chave ausente, inválida, expirada, revogada, de outro ambiente ou conta em exclusão.
403Escopo ou créditos insuficientes, senha inicial pendente ou nova versão dos termos ainda não aceita.
404Recurso não encontrado ou chave ativa própria não encontrada para revogação.
409A conta já possui o limite de cinco chaves ativas.
429Limite de requisições atingido; aguarde e tente novamente com backoff.
O padrão atual por chave é 60 requisições por minuto e 10 por 10 segundos. Durante a fase de pré-lançamento os contadores ainda são locais por processo; o limite não deve ser tratado como SLA contratual até a adoção de armazenamento distribuído.
06 · Segurança
Práticas obrigatórias no cliente
- Armazene a chave em um secret manager ou variável protegida.
- Nunca versione, registre em logs ou envie a chave em query string.
- Use HTTPS e defina timeouts nas chamadas.
- Gere uma Idempotency-Key por pedido; mantenha-a só entre tentativas do mesmo pedido.
- Revogue imediatamente uma chave suspeita de exposição.
- Monitore último uso e remova credenciais abandonadas.
Se o proprietário precisar definir a senha inicial ou aceitar uma nova versão dos termos, as chaves ficam bloqueadas com 403 até a ação humana ser concluída no navegador.