Стани доброволец-програмист в
„Под ОКО“

Помогни ни да автоматизираме събирането на данни за общинските съвети чрез код и API.

Проектът „Под ОКО“ е напълно отворен и безплатен. Всички данни се поддържат от доброволци – граждани, журналисти и програмисти.

Ако си разработчик (независимо от езика – PHP, Python, JavaScript, Go и др.), можеш да помогнеш значително, като напишеш скрипт, който автоматично:

  • Извлича информация за предстоящи или минали заседания от сайта на твоята община
  • Качва ги в нашата платформа чрез публичното API

Така ще спестиш часове ръчна работа и ще направим данните по-пълни и актуални.

Програмисти работят заедно в Под ОКО
Open source сътрудничество в Под ОКО
Код и API за Под ОКО

Как да започнеш

  1. 1
    Свържи се с нас Пиши ни във Facebook: facebook.com/podoko.site Кажи коя община искаш да поемеш – ще ти създадем акаунт с роля „contributor“ и достъп само до нея.
  2. 2
    Вземи API токен Изпълни тази заявка (с твоите данни):
    curl -X POST https://pod-oko.site/api/login \
      -H "Content-Type: application/json" \
      -d '{
        "email": "твоят@email.bg",
        "password": "твоята_парола"
      }'
    ← scroll →

    Отговорът ще съдържа твоя токен (валиден завинаги).

  3. 3
    Качване на заседание Пример (замени municipality_id и токена):
    curl -X POST https://pod-oko.site/api/council-sessions \
      -H "Authorization: Bearer ТВОЯ_ТОКЕН" \
      -H "Content-Type: application/json" \
      -d '{
        "municipality_id": 5,
        "date": "2025-12-20",
        "topic": "Редовно заседание на общинския съвет",
        "time": "10:00",
        "description": "Обсъждане на бюджета за 2026 г.",
        "result": "Приети 15 решения",
        "link": "https://www.youtube.com/watch?v=abc123",
        "source_url": "https://obshtina.bg/zasedaniq/2025-12-20"
      }'
    ← scroll →

Примери на различни езици

Python (requests)

import requests

# Вход
login = requests.post("https://pod-oko.site/api/login", json={
    "email": "твоят@email.bg",
    "password": "твоята_парола"
})
token = login.json()["token"]

# Качване на заседание
headers = {"Authorization": f"Bearer {token}"}
data = {
    "municipality_id": 5,
    "date": "2025-12-20",
    "topic": "Заседание от Python скрипт",
    "time": "14:00",
    "description": "Автоматично качено"
}

response = requests.post("https://pod-oko.site/api/council-sessions", json=data, headers=headers)
print(response.json())
← scroll →

JavaScript / Node.js (axios)

const axios = require('axios');

async function uploadSession() {
  const login = await axios.post('https://pod-oko.site/api/login', {
    email: 'твоят@email.bg',
    password: 'твоята_парола'
  });

  const token = login.data.token;

  await axios.post('https://pod-oko.site/api/council-sessions', {
    municipality_id: 5,
    date: '2025-12-20',
    topic: 'Заседание от Node.js',
    time: '15:00'
  }, {
    headers: { Authorization: `Bearer ${token}` }
  });
}

uploadSession();
← scroll →

Очакваме те!

Свържи се с нас и заедно ще направим данните за всички 265 общини пълни и актуални.

Пиши ни във Facebook