API

API к своим ресурсам: цена, продажа, выдача файла.

Базовый URLhttps://api.sourcecore.net/v1

Обзор

Успех: { code, data, requestId }. Ошибка: { code, message?, field?, details?, requestId }.

{
  "code": "OK",
  "data": { … },
  "requestId": "…"
}

Авторизация

Ключ: Authorization: Bearer … или X-Api-Key. Создаётся в профиле → API, показывается один раз.

Authorization: Bearer sc_ab12cd34_…
X-Api-Key: sc_ab12cd34_…

Сессия сайта на /v1 не работает. Нужен API-ключ.

В БД только хеш. Ключ — только свои ресурсы. Опционально: allowlist topic id. Утёк — отзови.

Права ключа

  • resources:read
    Чтение ресурсовСписок и цена ваших ресурсов.
  • resources:pricing
    Цена и продажаМенять цену, скидку, ссылку и статус продажи.
  • resources:access
    Доступ покупателейВыдавать и отзывать право скачивать файл.

Эндпоинты

GET/v1любой ключ

Версия и лимиты

cURL
curl https://api.sourcecore.net/v1 \
  -H "Authorization: Bearer sc_ab12cd34_<your_secret>"
Ответ
{
  "code": "OK",
  "data": {
    "version": "1",
    "basePath": "/v1",
    "docs": "/api",
    "scopes": [
      "resources:read",
      "resources:pricing",
      "resources:access"
    ],
    "rateLimit": {
      "readPerMinute": 120,
      "writePerMinute": 30
    }
  },
  "requestId": "req_01HZEXAMPLE"
}

Лимиты

Свыше лимита — 429 RATE_LIMITED. Смотри заголовки RateLimit-*.

  • Чтение120 / min
  • Запись30 / min
  • Страница спискаlimit ≤ 100

Ошибки

Ошибки в том же JSON. В ответе есть requestId.

{
  "code": "ACCESS_DENIED",
  "field": "scope",
  "message": "Access denied",
  "requestId": "…"
}
КодHTTPОписание
TOKEN_REQUIRED401Ключ не передан
INVALID_TOKEN401Ключ неверный, отозван или истёк
ACCESS_DENIED403Нет scope или ресурс чужой
VALIDATION_ERROR400Неверное тело или параметры
NOT_FOUND404Ресурс или пользователь не найден
RATE_LIMITED429Слишком много запросов
UNAVAILABLE503Сервис временно недоступен