Dasturchilar uchun

HackFinder API

Biz har kuni yig'adigan hakaton, startap dasturi va IT-tanlov e'lonlarini o'z saytingiz, botingiz yoki ilovangizda ishlating. API bepul; kalit so'rov orqali beriladi va sayt egasi ruxsat bergandan keyin ishlaydi.

Qanday boshlash

  1. Pastdagi forma orqali kalit so'rang: loyihangiz va ma'lumot nima uchun kerakligini yozing.
  2. So'rovdan keyin maxfiy holat havolasi ochiladi: uni saqlab qo'ying. So'rov ko'rib chiqilgach, kalit o'sha sahifada bir marta ko'rinadi.
  3. Har so'rovda kalitni sarlavhada yuboring: Authorization: Bearer hf_live_…

Asosiy manzil: https://hack.xous.uz/api/v1/ · Javoblar JSON (UTF-8) · Vaqtlar ISO 8601, Toshkent vaqti bilan.

Endpointlar

So'rovNima qaytaradi
GET /api/v1/hackathons/Hakatonlar ro'yxati (sahifalab). Muddati yaqinlari birinchi.
GET /api/v1/hackathons/<id>/Bitta hakaton: to'liq tavsif, qatnashish shartlari, talablar.
GET /api/v1/usage/Kalitingiz limiti va bugun nechta so'rov qilganingiz.

Ro'yxat parametrlari

ParametrQiymat
statusopen (standart) — ro'yxatdan o'tish ochiq · past — o'tganlar · all
regionuz — O'zbekiston · intl — xalqaro
kindhackathon · startup (startap dasturi) · contest (IT-tanlov)
qNomdan qidirish
updated_sinceShu vaqtdan keyin o'zgarganlar, masalan 2026-10-01. Sinxronlash uchun qulay: har safar oxirgi vaqtni yuboring
page, page_sizeSahifa (1 dan) va hajmi (1–100, standart 20). Keyingi sahifa havolasi javobning next maydonida

Javob

{
  "count": 42,
  "page": 1,
  "page_size": 20,
  "next": "https://hack.xous.uz/api/v1/hackathons/?page=2",
  "results": [
    {
      "id": 118,
      "title": "AI Hackathon Namangan",
      "kind": "hackathon",              // hackathon | startup | contest
      "region": "uz",                   // uz | intl
      "state": "closing_soon",          // open | closing_soon | closed | unknown
      "organiser": "IT Park",
      "url": "https://…",               // ro'yxatdan o'tish / asl e'lon
      "page_url": "https://hack.xous.uz/h/118/",
      "registration_closes_at": "2026-10-24T23:59:00+05:00",
      "starts_at": "2026-10-26T09:00:00+05:00",
      "ends_at": "2026-10-27T18:00:00+05:00",
      "format": "offline",              // online | offline | hybrid | unknown
      "city": "Namangan",
      "team_size_min": 2, "team_size_max": 5,
      "prize": "50 mln so'm",
      "themes": [],
      "updated_at": "2026-10-19T10:12:00+05:00"
      // … registration_opens_at, submission_deadline_at, results_at, venue, country_code, announced_at, first_seen_at
    }
  ]
}

Bitta hakaton (/hackathons/<id>/) shu maydonlarga qo'shimcha description, eligibility, requirements, submission_requirements ni ham beradi.

Misollar

curl

curl -H "Authorization: Bearer $HACKFINDER_KEY" \
  "https://hack.xous.uz/api/v1/hackathons/?region=uz&status=open"

Python

import os, requests

response = requests.get(
    "https://hack.xous.uz/api/v1/hackathons/",
    params={"region": "uz", "status": "open"},
    headers={"Authorization": "Bearer " + os.environ["HACKFINDER_KEY"]},
    timeout=20,
)
response.raise_for_status()
for item in response.json()["results"]:
    print(item["title"], item["registration_closes_at"], item["url"])

JavaScript (Node.js / server tomonda)

const response = await fetch("https://hack.xous.uz/api/v1/hackathons/?status=open", {
  headers: { Authorization: `Bearer ${process.env.HACKFINDER_KEY}` },
});
if (response.status === 429) {
  const wait = response.headers.get("Retry-After"); // soniya
}
const { results } = await response.json();

Limitlar va xatolar

Har kalitga: daqiqasiga 60 va sutkasiga 5000 so'rov. Har javobda qolgan limit sarlavhalarda keladi: X-RateLimit-Remaining, X-RateLimit-Daily-Remaining. Limit tugasa 429 va Retry-After (soniya) qaytadi — shuncha kuting. Ko'proq kerak bo'lsa, so'rovda yozing.

Maslahat: ro'yxatni tez-tez so'ramang — ma'lumot soatiga bir necha marta yangilanadi. Javobni o'zingizda saqlab, updated_since bilan faqat o'zgarganlarini oling.

Koderror.codeSabab
400bad_parameter, key_in_urlParametr noto'g'ri yoki kalit URL ichida yuborilgan
401missing_key, invalid_keyKalit yo'q yoki noto'g'ri
403key_revokedKalit o'chirilgan
404not_foundBunday hakaton yo'q
429rate_limitedLimit tugadi, Retry-After ga qarang
{"error": {"code": "rate_limited", "message": "Daqiqalik limit tugadi."}}

Qoidalar va xavfsizlik

Kalit so'rash