Pular para o conteúdo
AstroWay/api v2.254.12 · pt
todos os sistemas normais

Início rápido

Cinco minutos desde o registo até um mapa natal completo em JSON. Cobre a instalação do SDK, o primeiro pedido, os cabeçalhos da resposta, a autenticação e o tratamento de erros.

  1. Entra no dashboard e clica em Generate key. O plano gratuito dá 10 000 créditos/mês para sempre - sem introduzir cartão. As chaves começam por:

    • aw_live_*: produção, cobranças reais
    • aw_test_*: sandbox, sem gasto de créditos, resposta determinística
  2. A API é REST + JSON normal, por isso o SDK não é obrigatório. Mas os três já estão publicados: TypeScript (@astroway/sdk), Python (astroway) e PHP (astroway/sdk), mais o servidor MCP (@astroway/mcp) para agentes de IA.

    Terminal window
    # No SDK needed - just curl and a key:
    export AW_KEY="aw_test_demo_replaceme"
  3. Cálculo do mapa natal para 24 de agosto de 1991, 16:30 EEST, Kyiv:

    first-request.sh
    curl -X POST https://api.astroway.info/v1/chart \
    -H "X-Api-Key: $AW_KEY" \
    -H "Content-Type: application/json" \
    -d '{
    "date": "1991-08-24",
    "time": "16:30:00",
    "timezoneOffset": 3,
    "latitude": 50.4501,
    "longitude": 30.5234,
    "houseSystem": "P"
    }'

    timezoneOffset é o desvio que os relógios tinham nessa data, em horas. Se não o souberes, envia em vez disso "timezone": "Europe/Kyiv" ou "timezone": "auto", para obter a zona a partir das coordenadas, e o servidor calcula o desvio sozinho, incluindo a hora de verão: formatos dos campos.

  4. Cada resposta é um JSON com planetas, casas, aspetos e um bloco meta (cache hit, créditos, versão do motor).

    response.json
    {
    "ok": true,
    "data": {
    "julianDay": 2448493.0625,
    "planets": [
    { "id": 0, "name": "Sun", "longitude": 150.894819, "latitude": 0.00019, "isRetrograde": false, "declination": 11.15726 },
    { "id": 1, "name": "Moon", "longitude": 321.634655, "latitude": 2.834053, "isRetrograde": false, "declination": -11.609723 }
    ],
    "houses": {
    "system": "P",
    "cusps": [264.384681, 306.997683, 353.867426],
    "ascendant": 264.384681,
    "mc": 207.315669
    },
    "aspects": [
    {
    "planet1": "Sun",
    "planet2": "Moon",
    "type": { "name": "Opposition", "angle": 180, "isMajor": true },
    "exactAngle": 170.739837,
    "orb": 9.260163,
    "isApplying": true
    }
    ],
    "chartSect": "diurnal",
    "meta": { "engineVersion": "2.10.03", "calculatedAt": "2026-08-22T20:53:31.431Z" }
    }
    }
  5. O dashboard mostra o uso em tempo real: api.astroway.info/dashboard. Ou através da API:

    Terminal window
    curl https://api.astroway.info/v1/keys/usage \
    -H "X-Api-Key: $AW_KEY"

A AstroWay API autentica os pedidos através do cabeçalho X-Api-Key. Tokens Bearer e chaves na query string não são suportados.

Terminal window
curl -H "X-Api-Key: aw_live_..." https://api.astroway.info/v1/health
Tipo de chavePrefixoComportamento
Productionaw_live_*Cobra créditos reais da conta
Sandboxaw_test_*Resposta simulada determinística, sem cobrança
Restricted (Pro+)aw_live_* com restriçãoLimitada a endpoints / IP / RPS concretos

As chaves rodam sem downtime - a chave antiga continua a funcionar durante 24 horas depois de gerada a nova. Detalhes: /authentication/.

Todos os erros são devolvidos no formato ok: false + objeto error. O campo error.code (UPPER_SNAKE_CASE) é estável para scripts - faz o switch por ele, não por message.

error-response.json
{
"ok": false,
"error": {
"code": "INVALID_INPUT",
"message": "Validation failed: date: Invalid input: expected string, received undefined",
"details": [
{ "path": "date", "message": "Invalid input: expected string, received undefined" }
]
}
}

Os códigos mais frequentes:

  • INVALID_INPUT (400): validação Zod falhada; details contém um array { path, message }
  • INVALID_API_KEY (401): a chave não existe ou foi revogada
  • PLAN_UPGRADE_REQUIRED (402): é preciso um plano superior ou um pack add-on
  • CREDITS_EXHAUSTED (429): o orçamento mensal de créditos está esgotado
  • RATE_LIMIT (429): RPM excedido; devolvido com o cabeçalho Retry-After: <sec>
  • internal_calc_error (500): erro das efemérides; retry automático do lado do SDK

Lista completa e semântica: /errors/.

PlanoQuota
Free10 req/min
Indie30 req/min
Starter120 req/min
Pro400 req/min
Business1 000 req/min
Enterprisecustom

Excesso → 429 com Retry-After (sec). Os SDK oficiais fazem retries com backoff exponencial por omissão. Detalhes: /rate-limits-credits/.

Útil?
Sugerir edição

Última atualização: