Skip to main content
The People API provides access to council members, their roles, party affiliations, and terms of service.

List people

GET /api/cities/{cityId}/people Returns all council members for a specified city.

Parameters

cityId
string
required
The unique identifier of the city

Response

Returns an array of Person objects.
id
string
Unique identifier for the person
name
string
Full name in Greek
name_en
string
Full name in English
name_short
string
Short name in Greek (e.g., first name and last initial)
name_short_en
string
Short name in English
image
string | null
URL to profile image
activeFrom
string | null
ISO 8601 timestamp when the person’s term started
activeTo
string | null
ISO 8601 timestamp when the person’s term ended (null if currently active)
cityId
string
ID of the associated city
createdAt
string
ISO 8601 timestamp of record creation
updatedAt
string
ISO 8601 timestamp of last update

Example request

curl https://api.opencouncil.gr/api/cities/athens/people

Example response

[
  {
    "id": "clxxx123",
    "name": "Κώστας Μπακογιάννης",
    "name_en": "Kostas Bakoyannis",
    "name_short": "Κ. Μπακογιάννης",
    "name_short_en": "K. Bakoyannis",
    "image": "https://example.com/photo.jpg",
    "activeFrom": "2019-09-01T00:00:00.000Z",
    "activeTo": null,
    "cityId": "athens",
    "createdAt": "2024-01-15T10:30:00.000Z",
    "updatedAt": "2024-01-15T10:30:00.000Z"
  }
]

Get person

GET /api/cities/{cityId}/people/{personId} Returns details for a specific council member.

Parameters

cityId
string
required
The unique identifier of the city
personId
string
required
The unique identifier of the person

Response

Returns a Person object with the same fields as the list endpoint.

Example request

curl https://api.opencouncil.gr/api/cities/athens/people/clxxx123

Example response

{
  "id": "clxxx123",
  "name": "Κώστας Μπακογιάννης",
  "name_en": "Kostas Bakoyannis",
  "name_short": "Κ. Μπακογιάννης",
  "name_short_en": "K. Bakoyannis",
  "image": "https://example.com/photo.jpg",
  "activeFrom": "2019-09-01T00:00:00.000Z",
  "activeTo": null,
  "cityId": "athens",
  "createdAt": "2024-01-15T10:30:00.000Z",
  "updatedAt": "2024-01-15T10:30:00.000Z"
}

Error responses

Person not found (404)

{
  "error": {
    "code": "NOT_FOUND",
    "message": "Person not found"
  }
}

Server error (500)

{
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "Failed to fetch person"
  }
}

Parties

Get political party information

Meetings

Find meetings where people spoke

Build docs developers (and LLMs) love