API
Получить данные аккаунта
GET /me — Получить данные аккаунта
Операция
GET /me
Поведение
Возвращает то, что API сейчас знает о вашем аккаунте: поля профиля, включая base_currency (валюта, в которую переводятся ваши расчёты; null означает USD), подписку, действующую в момент запроса (null, если её нет), и счётчики ваших кредитов.
credit.total— все кредиты, начисленные аккаунту,credit.used— израсходованные, аcredit.remaining— разница, никогда не меньше0.- Именно по этим значениям выполняется тарификация. Изменения, сделанные в личном кабинете, появляются здесь примерно в течение минуты.
404 означает, что ваш аккаунт ещё не попал в API; повторите запрос чуть позже.
Использование
{
"authentication": "user-api-key",
"credit_cost": 0,
"premium": false,
"recommended_interval_seconds": 60,
"rate_limit": null,
"unit_pricing": null
}Запрос
{}Ответы
{
"200": {
"description": "Успешный ответ",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Envelope_SyncUserView_"
}
}
}
},
"401": {
"description": "Аутентификационные данные отсутствуют или недействительны",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorEnvelope"
}
}
}
},
"403": {
"description": "Учётные данные действительны, но не дают права вызывать эту операцию",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorEnvelope"
}
}
}
},
"404": {
"description": "Запрошенный ресурс не существует",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorEnvelope"
}
}
}
},
"503": {
"description": "Сервис временно недоступен; повторите позже",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorEnvelope"
}
}
}
}
}Модели
{
"CreditMeta": {
"properties": {
"cost": {
"type": "integer",
"title": "Cost",
"description": "Сколько кредитов стоит этот запрос."
},
"remaining": {
"type": "integer",
"title": "Remaining",
"description": "Расчётный остаток кредитов после этого запроса. Это ориентир, а не данные учёта: из-за параллельных запросов значение может немного отличаться."
}
},
"type": "object",
"required": [
"cost",
"remaining"
],
"title": "CreditMeta",
"description": "Учёт кредитов для платного запроса."
},
"Envelope_SyncUserView_": {
"properties": {
"data": {
"$ref": "#/components/schemas/SyncUserView",
"description": "Полезные данные эндпоинта."
},
"meta": {
"$ref": "#/components/schemas/Meta",
"description": "Метаданные запроса."
}
},
"type": "object",
"required": [
"data",
"meta"
],
"title": "Envelope[SyncUserView]"
},
"ErrorBody": {
"properties": {
"code": {
"type": "string",
"title": "Code",
"description": "Стабильный машиночитаемый код ошибки. Ориентируйтесь на это значение, а не на `message`."
},
"message": {
"type": "string",
"title": "Message",
"description": "Пояснение для человека. Формулировка может меняться."
},
"details": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Details",
"description": "Необязательный структурированный контекст, например список ошибок валидации или, для `credit_insufficient`, требуемое и оставшееся количество кредитов."
}
},
"type": "object",
"required": [
"code",
"message"
],
"title": "ErrorBody",
"description": "Подробности неудачного запроса."
},
"ErrorEnvelope": {
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorBody",
"description": "Что пошло не так."
},
"meta": {
"$ref": "#/components/schemas/Meta",
"description": "Метаданные запроса."
}
},
"type": "object",
"required": [
"error",
"meta"
],
"title": "ErrorEnvelope",
"description": "Ответ с ошибкой: ошибка в `error` и метаданные запроса в `meta`."
},
"Meta": {
"properties": {
"request_id": {
"type": "string",
"title": "Request Id",
"description": "Уникальный идентификатор этого запроса, совпадает с заголовком ответа `X-Request-ID`. Указывайте его при обращении в поддержку."
},
"billable": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Billable",
"description": "Оплачивается ли запрос кредитами. Присутствует только у тарифицируемых эндпоинтов; `false` означает, что запрос бесплатен — например, потому что он ничего не стоит или его покрывает ваша подписка."
},
"credit": {
"anyOf": [
{
"$ref": "#/components/schemas/CreditMeta"
},
{
"type": "null"
}
],
"description": "Стоимость запроса и расчётный остаток вашего баланса. Присутствует, только если `billable` равен `true`."
}
},
"type": "object",
"required": [
"request_id"
],
"title": "Meta",
"description": "Метаданные запроса, которые есть в каждом ответе в обёртке."
},
"SyncCredit": {
"properties": {
"total": {
"type": "integer",
"title": "Total",
"description": "Кредиты, начисленные аккаунту на текущий момент."
},
"used": {
"type": "integer",
"title": "Used",
"description": "Кредиты, израсходованные на текущий момент."
},
"remaining": {
"type": "integer",
"title": "Remaining",
"description": "Оставшиеся кредиты: `total` минус `used`, никогда не меньше `0`."
}
},
"additionalProperties": false,
"type": "object",
"required": [
"total",
"used",
"remaining"
],
"title": "SyncCredit",
"description": "Счётчики кредитов аккаунта: начислено, израсходовано и осталось."
},
"SyncSubscription": {
"properties": {
"category": {
"type": "string",
"title": "Category",
"description": "Категория подписки."
},
"plan_id": {
"type": "string",
"title": "Plan Id",
"description": "Оформленный тариф."
},
"expires_at": {
"type": "string",
"title": "Expires At",
"description": "Когда заканчивается подписка (RFC 3339, UTC)."
}
},
"additionalProperties": false,
"type": "object",
"required": [
"category",
"plan_id",
"expires_at"
],
"title": "SyncSubscription",
"description": "Подписка, активная на момент запроса.\n\nЕсли активны несколько пересекающихся подписок, возвращается та, что истекает последней."
},
"SyncUser": {
"properties": {
"id": {
"type": "string",
"title": "Id",
"description": "Идентификатор аккаунта."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Name",
"description": "Отображаемое имя."
},
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Email",
"description": "Адрес электронной почты."
},
"email_verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Email Verified",
"description": "Подтверждён ли адрес электронной почты; `null`, если неизвестно."
},
"image": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Image",
"description": "URL изображения аватара."
},
"steam_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Steam Id",
"description": "Привязанный аккаунт Steam (SteamID64)."
},
"created_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Created At",
"description": "Когда создан аккаунт (RFC 3339, UTC)."
},
"base_currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Base Currency",
"description": "Валюта, в которую переводятся расчёты аккаунта (код ISO 4217); `null` означает USD."
}
},
"additionalProperties": false,
"type": "object",
"required": [
"id"
],
"title": "SyncUser",
"description": "Поля профиля аккаунта cs.cheap в том виде, в каком их сейчас знает API.\n\nОтсутствующее значение равно `null`; `null` в `base_currency` означает, что пользователь\nне выбирал базовую валюту и применяется USD."
},
"SyncUserView": {
"properties": {
"user": {
"$ref": "#/components/schemas/SyncUser",
"description": "Профиль аккаунта."
},
"subscription": {
"anyOf": [
{
"$ref": "#/components/schemas/SyncSubscription"
},
{
"type": "null"
}
],
"description": "Подписка, действующая сейчас; `null`, если её нет."
},
"credit": {
"$ref": "#/components/schemas/SyncCredit",
"description": "Счётчики кредитов аккаунта."
}
},
"additionalProperties": false,
"type": "object",
"required": [
"user",
"subscription",
"credit"
],
"title": "SyncUserView",
"description": "Профиль одного аккаунта, активная подписка и баланс кредитов."
}
}