API «Девочки» — для партнёра

Отдаёт отобранных девочек проекта и их фото. Вы забираете фото и отмечаете, какие использовали — использованные больше не приходят в список (как «кому уже ответили» в Стороже комментов).

База: https://devochki.158-220-117-66.sslip.io

Ключ: заголовок x-api-key: <ключ> (можно Authorization: Bearer <ключ>). Ключ высылается отдельно.

Лимит: 120 запросов в минуту на ключ, сверх — код 429.

Время: везде миллисекунды UNIX.

Справка прямо из сервиса: GET /partner/v1/docs


GET /partner/v1/girls — список неиспользованных

ПараметрЧто делает
sinceотдать только добавленных позже этого времени (added_at) — чтобы забирать новых
limitсколько за раз, по умолчанию 100, максимум 500
cursorследующая страница: next_cursor из прошлого ответа
include_used1 — показать и уже использованных (у них заполнено used_at)
curl -H "x-api-key: КЛЮЧ" "https://devochki.158-220-117-66.sslip.io/partner/v1/girls?limit=100"
{
  "server_time": 1793311053632,
  "total": 399,
  "unused": 350,
  "count": 100,
  "has_more": true,
  "next_cursor": "g100",
  "items": [
    {
      "id": "g001",
      "number": 1,
      "name": "аня-апгрейд",
      "tags": [],
      "photo": {
        "url": "https://devochki.158-220-117-66.sslip.io/partner/v1/girls/g001/photo",
        "width": 1240, "height": 1294, "bytes": 255756,
        "sha256": "e28b13df…",
        "quality": "original"
      },
      "added_at": 1793310927760,
      "used_at": null
    }
  ]
}

POST /partner/v1/girls/used — отметить использованные

Тело — JSON со списком id (до 1000 за раз):

curl -X POST -H "x-api-key: КЛЮЧ" -H "Content-Type: application/json" \
  -d '{"ids": ["g004", "p015"]}' \
  https://devochki.158-220-117-66.sslip.io/partner/v1/girls/used
{ "marked": 2, "already": 0, "unknown": [], "server_time": 1793312092601 }

GET /partner/v1/used — что уже отмечено

{"count": 2, "items": [{"id": "g004", "used_at": 1793312092601}]}

GET /partner/v1/girls/{id} — одна девочка

То же, что элемент items.

GET /partner/v1/girls/{id}/photo — фото

image/jpeg. Ссылка требует тот же ключ в заголовке. Чтобы не качать заново то же самое, передайте If-None-Match: "<sha256>" — при совпадении ответ 304 без тела.

GET /health — без ключа

{"ok": true, "girls": 399}

Ошибки

400 неверное тело POST · 401 нет или неверный ключ · 404 нет такой девочки или адреса · 405 не тот метод · 429 больше 120 запросов в минуту.