---
title: "Browse or search meetings (JSON)"
method: GET
path: "/{locale}/meetings.json"
tags: ["meetings"]
---

# Browse or search meetings (JSON)

`GET /{locale}/meetings.json`

## Request

- Base URL: `https://transcripts.un.org`
- URL: `https://transcripts.un.org/{locale}/meetings.json`
- Auth: none declared
- TypeScript: <https://skmtc.dev/united-nations/apis/un-transcripts-api/docs/:locale/meetings.json/get.ts> (a function with typed inputs; its response is checked against the schema)

Paginated list of meetings within the last 365 days, newest first. Supports full-text search and filtering. Page size is 250.

## Path parameters

- `locale` 'ar' | 'zh' | 'en' | 'fr' | 'ru' | 'es', required

## Query parameters

- `q` string
- `ft` '1'
- `category` string
- `date` string
- `from` string
- `to` string
- `sort` 'date_desc' | 'date_asc' | 'title_asc' | 'title_desc'
- `page` integer
- `text` string[]
- `xlang` '1'

## Response `200`

A page of meetings.

- MeetingsResponse
  - `meetings` object[], required
    - `title` string, nullable, required
    - `date` string, nullable, required
    - `body` string, nullable, required
    - `category` string, nullable, required
    - `slug` string, required
    - `duration` number, nullable, required
    - `hasTranscript` boolean, required
    - `pageUrl` string, required
    - `jsonUrl` string, required
    - `textUrl` string, nullable, required
    - `matches` object: Transcript-content hits for this meeting (present only with `ft=1` when the transcript matched).
      - `count` integer, required: Total matching statements in this meeting's transcript.
      - `statements` object[], required: First 3 matches in transcript order.
        - `speaker` object, nullable, required: Speaker attribution without inferred person names; generic representative functions are null.
          - `affiliation` string, nullable, required: ISO alpha-3 country code or short affiliation label.
          - `affiliation_full` string, nullable, required: Official UN country name resolved from the ISO code.
          - `group` string, nullable, required
          - `function` string, nullable, required
        - `text` string, required: Snippet centered on the first match; ellipses mark truncation. Full statements live in jsonUrl.
        - `start` integer, required: Seconds into the video.
        - `pageUrl` string, required: Meeting page deep-linked to this moment via `?t=` — opens with the player seeked and the statement highlighted.
  - `total` integer, required
  - `totalIncludingOther` integer, required: Total ignoring the locale filter (see the xlang param).
  - `hasMore` boolean, required
  - `page` integer, required: 1-based page number of this response.
  - `pageSize` integer, required
  - `statementTotal` integer: With `ft=1`: matching statements across all result meetings.

## Other responses

- `400`: A known parameter was malformed — a bad date/from/to, an unknown sort or text value, q shorter than 2 chars, ft=1 without q, or a non-positive page.

---

[API](https://skmtc.dev/united-nations/apis/un-transcripts-api.md) - [All operations](https://skmtc.dev/united-nations/apis/un-transcripts-api/llms.txt) - [OpenAPI document](https://skmtc.dev/united-nations/apis/un-transcripts-api/revisions/fec86055cb63?raw)
