Проверить ключи

POSThttps://api.astrum.shop/v1/keys/lookup
Область keys:read

Ключ по нему самому — когда у вас только сам ключ, без номера: клиент прислал его в поддержку. За раз — до 100 ключей; ответ — по строке на каждый, в том же порядке.

Ключ вашего магазина — found и ключ целиком, как в GET /v1/keys/{key_id}. Чужой или несуществующий — not_found, опечатка — typo.

Тело запроса

application/json
codes
array · обязательно

Ключи для проверки — от 1 до 100. Пишите как удобно: регистр, дефисы и пробелы не важны.

Ответы

results
array

По строке на каждый присланный ключ, в том же порядке.

↳code
string

Ключ — как вы его прислали.

↳result
string

Что с ключом:

found
ключ вашего магазина — в key весь ключ, как в GET /v1/keys/{key_id}
not_found
такого ключа у вашего магазина нет
typo
не ключ: не та длина, чужие знаки или не сходится контрольный знак
↳key
object | null

Ключ целиком, если result — found; иначе null.

↳key_id
string

Номер ключа у нас — для GET /v1/keys/{key_id}.

↳code
string | null

Ключ для клиента: XXXX-XXXX-XXXX-XXXX.

↳link
string | null

Ссылка на страницу активации — ключ подставится сам.

↳status
string

Состояние ключа:

available
свободен — его можно отдать клиенту
activating
клиент прислал данные, включаем
activated
подписка включена
expired
сгорел — не активирован в срок
refunded
цену вернули на баланс
↳product_id
string
↳title
string

Название тарифа.

↳delivery_method
string
↳kind
string | null
↳subscription_days
integer | null
↳price_usdt
string

Цена ключа — сколько списано за него.

↳ref
string | null

Ваш номер заказа из покупки.

↳created_at
string
↳expires_at
string

Когда сгорит, если не активировать: через 45 дней после покупки.

↳activated_at
string | null
↳warranty_until
string | null

До какого момента действует гарантия (7 дней с активации).

↳last_attempt_failed_at
string | null

Когда в последний раз активация не прошла — ключ после этого снова свободен.

↳last_attempt_reason
string | null

Почему последняя попытка не прошла:

verification_declined
клиент отказался от проверки личности
not_activated
подписку включить не вышло — попытку закрыли

null — неудачных попыток не было.

Общие для всех методов — подробно в разделе «Коды ошибок»:

10001 invalid_key10002 key_scope_missing10003 ip_not_allowed10004 browser_not_allowed10005 account_suspended20001 too_many_requests90002 api_disabled90001 internal_error
тестовые USDT,
ключ ask_test_…
curl https://api.astrum.shop/v1/keys/lookup -X POST \
  -H "Authorization: Bearer $ASTRUM_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "codes": [
      "7k2m 9qxh 4rwd p8ny",
      "7K2M-9QXH-4RWD-P8N"
    ]
  }'
Ответ
{
  "results": [
    {
      "code": "7k2m 9qxh 4rwd p8ny",
      "result": "found",
      "key": {
        "key_id": "9b2f6c1e-4d7a-4b0e-8f3c-1a5d2e7c9b40",
        "code": "7K2M-9QXH-4RWD-P8NY",
        "link": "https://activate.astrum.shop/#k=7K2M-9QXH-4RWD-P8NY",
        "status": "activated",
        "product_id": "3f6c0e7e-2b1d-4c1a-9a57-4d0f1b8e2c11",
        "title": "ChatGPT Plus",
        "delivery_method": "activation",
        "kind": "web",
        "subscription_days": 30,
        "price_usdt": "20.00",
        "ref": "order-58213",
        "created_at": "2026-10-14T10:14:03Z",
        "expires_at": "2026-11-28T10:14:03Z",
        "activated_at": "2026-10-15T09:02:41Z",
        "warranty_until": "2026-10-22T09:02:41Z",
        "last_attempt_failed_at": null,
        "last_attempt_reason": null
      }
    },
    {
      "code": "7K2M-9QXH-4RWD-P8N",
      "result": "typo",
      "key": null
    }
  ]
}