1. Взять задачу

GET https://o.pizdec.lol/api/v1/challenge
{
  "token": "eyJ….AbC…",
  "nonce": "9f2c…",
  "bits": 18,
  "image": "",
  "expires_at": "…"
}

Перебирай числа с нуля, пока sha256(nonce + ":" + N) не начнётся с bits нулевых битов. Найденное N — это и есть solution.

Если в image пришёл PNG (это бывает после нескольких отказов подряд), цифры с него идут в captcha_answer.

2. Сократить

POST https://o.pizdec.lol/api/v1/shorten
Content-Type: application/json

{
  "url": "https://example.com/очень/длинный/путь",
  "alias": "",              // свой хвостик, необязательно
  "ttl": "168h",            // срок жизни, необязательно
  "captcha_token": "…",     // token из шага 1
  "captcha_solution": "…",  // найденное N
  "captcha_answer": ""      // цифры с картинки, если она была
}
{
  "success": true,
  "code": "kTx9mQ",
  "short_url": "https://o.pizdec.lol/kTx9mQ",
  "url": "https://example.com/очень/длинный/путь",
  "manage_token": "…",   // выдаётся один раз, им удаляют ссылку
  "expires_at": null
}

3. Удалить

DELETE https://o.pizdec.lol/api/v1/links/kTx9mQ
X-Manage-Token: …

Ещё

Ошибки

{"success": false, "error": "rate_limited", "message": "слишком часто, подождите немного"}

На 429 и 503 приходит Retry-After — сколько секунд ждать.

Лимиты

← на главную · исходники