Назад к документации

Аутентификация

Аутентификация

Аутентификация API

Все запросы к API требуют аутентификации с помощью API key. Передавайте ключ в заголовкеx-api-keyв каждом запросе.

Получить API key

  1. Откройте нашу страницу тарифов и выберите тариф
  2. Выберите подписку, которая подходит под ваш объем
  3. Перейдите в панель
  4. Ваш API key будет показан в секции API Key

Base URL

https://api.freeastroapi.com

Обязательные заголовки

ЗаголовокЗначениеОбязательно
x-api-keyВаш API keyДа
Content-Typeapplication/jsonДа (для POST)
Idempotency-KeyУникальный ключ операции, созданный клиентомНет (рекомендуется для повторов платных POST)
Безопасные повторы с Idempotency-Key

Аутентифицированные платные астрологические POST запросы принимают Idempotency-Key: <Уникальный ключ операции, созданный клиентом>. Создавайте один ключ на одну операцию. Повторно используйте тот же ключ только при повторе точно такого же запроса после timeout или сетевой ошибки.

Node.js

const idempotencyKey = crypto.randomUUID();

await fetch("https://api.freeastroapi.com/api/v1/natal/calculate", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.FREE_ASTRO_API_KEY,
    "Idempotency-Key": idempotencyKey
  },
  body: JSON.stringify(payload)
});

Python

import uuid

idempotency_key = str(uuid.uuid4())

headers = {
    "Content-Type": "application/json",
    "x-api-key": "YOUR_API_KEY",
    "Idempotency-Key": idempotency_key
}

Примеры аутентификации

curl -X POST "https://api.freeastroapi.com/api/v1/natal/calculate" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"year": 1990, "month": 5, "day": 15, "hour": 10, "minute": 30, "city": "New York", "lat": 40.7128, "lng": -74.006}'

Лучшие практики безопасности

  • Никогда не раскрывайте API key в клиентском коде. Выполняйте вызовы API со своего сервера.
  • Используйте переменные окружения для хранения API key вместо hardcoded строк.
  • Ротируйте API key если есть подозрение, что он скомпрометирован.
  • Отслеживайте использование в панели, чтобы заметить необычную активность.

Ошибки аутентификации

СтатусСообщениеОписание
401Missing API keyЗаголовок x-api-key не передан
401Invalid API keyAPI key не существует или был отозван
429Rate limit exceededПревышен лимит запросов вашего тарифа
403Subscription requiredПодписка истекла или не активна

Лимиты запросов

Лимиты зависят от тарифа. В каждый ответ включаются следующие заголовки:

ЗаголовокОписание
X-RateLimit-LimitОбщее число запросов, разрешенных за период
X-RateLimit-RemainingСколько запросов осталось в текущем периоде
X-RateLimit-ResetTimestamp, когда лимит будет сброшен

Дальше