ToAPIsToAPIs
Запросы аккаунтаAPI-ключи

Список API-ключей

Чтение данных своего аккаунта с системным токеном доступа

GET
/api/v1/account/api-keys

Для пользователей из материкового Китая: используйте https://toapis.cn в качестве эндпоинта (Base URL). Замените https://toapis.com на https://toapis.cn во всех примерах этого документа.

Аутентификация, пагинация и ошибки описаны в разделе Начало работы.

Поведение

Читаются только метаданные собственных обычных ключей моделей. Список сортируется по числовому ID убывающе и по умолчанию исключает мягко удаленные ключи и stats:read. Детали доступны и для своих удаленных ключей. key_hint содержит маску и последние 4 символа либо null для коротких ключей. Безлимит: unlimited=true, remaining_credits=null; отсутствие дневного/месячного лимита также равно null. Полный ключ и секрет Webhook не возвращаются. Чужой и отсутствующий ключ возвращают 404.

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

Authorizationstringзаголовокобязательно

Используйте Bearer YOUR_SYSTEM_ACCESS_TOKEN. API-ключ модели не подходит. Заголовок X-User-Id не требуется.

Параметры

limitintegerзапроспо умолчанию: 50

Максимальное число элементов на странице.

Ограничения: minimum=1; maximum=100; По умолчанию: 50.

cursorstringзапрос

Передавайте предыдущий next_cursor без изменений и сохраняйте фильтры. При изменении условий начните заново.

Ограничения: maxLength=2048.

statusstringзапрос

Статус API-ключа.

Ограничения: enabled, disabled, expired, exhausted, deleted.

Пример запроса

curl --request GET \
  --url 'https://toapis.com/api/v1/account/api-keys?status=enabled&limit=20' \
  --header 'Authorization: Bearer YOUR_SYSTEM_ACCESS_TOKEN'
import requests

response = requests.get(
    "https://toapis.com/api/v1/account/api-keys",
    headers={"Authorization": "Bearer YOUR_SYSTEM_ACCESS_TOKEN"},
    params={
        "status": "enabled",
        "limit": "20"
    },
    timeout=30,
)
response.raise_for_status()
print(response.json())
const url = new URL("https://toapis.com/api/v1/account/api-keys");
url.search = new URLSearchParams({
  "status": "enabled",
  "limit": "20"
}).toString();

const response = await fetch(url, {
  headers: { Authorization: "Bearer YOUR_SYSTEM_ACCESS_TOKEN" },
  signal: AbortSignal.timeout(30_000),
});

if (!response.ok) {
  throw new Error(`HTTP ${response.status}: ${await response.text()}`);
}
console.log(await response.json());

Поля ответа

Данные примеров вымышлены и предполагают credits_per_usd="100". Используйте коэффициент из ответа API.

Результаты находятся в data.items. Используйте has_more и next_cursor для пагинации. Последний курсор равен null. Общее число записей не возвращается.

codeinteger

Числовой код результата; 0 означает успех.

messagestring

Сообщение ответа; пустое при успехе. Сообщения об ошибках локализуются.

dataobject

Объект результата текущего запроса.

data.itemsobject[]

Записи текущей страницы; [] при отсутствии результатов.

data.items[].idstring

ID ключа модели, не секретный ключ. Возвращается как десятичная строка ID.

data.items[].namestring

Имя API-ключа.

data.items[].key_hintstring | null

Маска и последние 4 символа ключа. Полный секрет не возвращается; короткие ключи дают null.

data.items[].statusstring

Текущий статус API-ключа. Детали доступны и для собственных мягко удаленных ключей. Значения: enabled, disabled, expired, exhausted, deleted, unknown.

data.items[].created_atstring | null

Время создания. Время в RFC 3339 с часовым поясом. null, если значение неизвестно или неприменимо.

data.items[].expires_atstring | null

Время истечения ключа; null, если срок не задан. Время в RFC 3339 с часовым поясом.

data.items[].unlimitedboolean

Безлимитная ли квота ключа. При true поле remaining_credits=null.

data.items[].remaining_creditsstring | null

Оставшиеся credits. Для безлимитного API-ключа равны null. Десятичная строка для сохранения точности.

data.items[].daily_limit_creditsstring | null

Дневной лимит в credits; null без ограничения. Десятичная строка для сохранения точности.

data.items[].monthly_limit_creditsstring | null

Месячный лимит в credits; null без ограничения. Десятичная строка для сохранения точности.

data.has_moreboolean

Есть ли следующая страница.

data.next_cursorstring | null

Передавайте без изменений как cursor с теми же фильтрами. На последней странице равен null.

data.metaobject

Метаданные об источнике, диапазоне и принципах учета.

data.meta.scopestring

Область владельца данных: сам аутентифицированный аккаунт.

Пример ответа

{
  "code": 0,
  "message": "",
  "data": {
    "items": [
      {
        "id": "42",
        "name": "Example Key",
        "key_hint": "****abcd",
        "status": "enabled",
        "created_at": "2026-10-01T00:00:00Z",
        "expires_at": null,
        "unlimited": false,
        "remaining_credits": "500",
        "daily_limit_credits": "100",
        "monthly_limit_credits": null
      }
    ],
    "has_more": false,
    "next_cursor": null,
    "meta": {
      "scope": "self"
    }
  }
}