> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gdeltcloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Office

> One office by id — the Wikidata QID (`Q…`) or the `p_…` id `/api/v2/offices` serves — with a capped preview of its holders ordered current → ended → unknown. `holders_truncated` says when to walk `holders_url` instead. A name is not looked up here: resolve it on the list first.



## OpenAPI

````yaml /api-reference/openapi-v2.json get /api/v2/offices/{office_id}
openapi: 3.0.3
info:
  title: GDELT Cloud API v2
  version: 2.0.0
  description: >-
    Clean v2 REST API for generated GDELT Cloud structured Events, clustered
    Stories, linked Entities, summaries, admin1 discovery, significance ranking,
    and paginated article evidence.


    Event significance is a family-scoped weighted blend, renormalized so every
    event family spans a true 0-1: each event's raw total is divided by the
    maximum its own family can reach (Conflict 1.00, CAMEO+ POLITICAL 0.90,
    other CAMEO+ domains 0.65). All events: Goldstein severity 0.25, article
    evidence 0.05, confidence 0.05. Conflict only: fatalities 0.55 (log-scaled
    by body count) and civilian targeting 0.10. CAMEO+ only: magnitude 0.20,
    systemic importance 0.15, propagation potential 0.10, market sensitivity
    0.10. When magnitude is unmeasured its term AND its 0.20 weight are both
    dropped. The four CAMEO+ metrics are rubric scores produced by published
    formulas - ordinal ranking signals, not measurements, probabilities, or
    predicted price moves. goldstein_scale is one canonical public metric,
    populated for Conflict Events and CAMEO+ POLITICAL Events where meaningful.
    Story linked_event_count is a Story-to-Event link aggregate, not a distinct
    Event total.
servers:
  - url: https://gdeltcloud.com
    description: Production
  - url: http://localhost:3000
    description: Local development
security:
  - ApiKeyAuth: []
tags:
  - name: Events
    description: Coded CAMEO+ / conflict events — search, fetch, and summarize.
  - name: Stories
    description: Clustered narratives (stories) and their articles.
  - name: Situations
    description: >-
      One real-world occurrence as the Stories and coded Events that belong to
      it — stored, adjudicated membership (`meta.situation_source: curated`) or
      a walked neighbourhood around a Story. Discovery, detail, four
      independently paged member lists, and the only write on the core surface
      (5 QU with an Idempotency-Key).
  - name: Entities
    description: >-
      People & organizations — resolve a name to an entity, then fetch its
      profile and tone. Also the publication activity journal
      (/api/v2/activity): observed evidence of what was published about
      identities and records — committed batches only, cursor-paged, never
      source intake.
  - name: Unified Search
    description: >-
      One fuzzy lookup across every id-space — start here with a name, take the
      entity id, then reuse it on every other surface. This is the resolver the
      rest of the API assumes you called first.
  - name: Media Intelligence
    description: >-
      Press-coverage tone over time and share of voice against a peer set.
      Requires the `can_use_tone` / `can_use_share_of_voice` entitlement; social
      signal is an admin-only preview.
  - name: Facilities
    description: >-
      Unified physical-asset directory — GEM energy assets, World Port Index
      ports and Epoch AI data centers on one keyed surface, resolved to spine
      owners. Requires the `can_use_facilities` entitlement.
  - name: Monitors
    description: >-
      Organization-shared scheduled checks over the Core API, with email and
      signed-webhook delivery. Monitor execution does not consume query units.
  - name: Geography
    description: >-
      Country context and admin-1 geography: /api/v2/countries (publication
      activity, reporting counts, dated economic and resource fundamentals,
      facility and office inventories, directory mode over every registered
      country) and admin-1 lookups.
  - name: Government
    description: >-
      US federal awards (USAspending) and foreign-influence registrations (DOJ
      NSD FARA), resolved onto the entity spine. Requires the `can_use_gov`
      entitlement.
  - name: Political Offices
    description: >-
      Public political offices and who holds them — legislatures, cabinets,
      heads of state, courts and IGO posts, with the office start/end dates the
      publisher states (valid time), resolved onto the entity spine. Actor
      context for geopolitical analysis; NOT a PEP or sanctions-screening tool.
      Requires the `can_use_offices` entitlement.
  - name: Filings
    description: >-
      SEC EDGAR filings, XBRL financials, and relations extracted from filing
      text. Requires the `can_use_filings` entitlement.
  - name: Reference Data
    description: >-
      The GLEIF Global LEI Index — legal-entity reference data, consolidation
      relationships, and LEI↔ISIN mappings. Requires the `can_use_gleif`
      entitlement.
  - name: Energy
    description: Global Energy Monitor assets + ownership registry.
  - name: AI Compute
    description: >-
      Epoch AI datasets — models, hardware, data centers, companies and chip
      sales. Requires the `can_use_epoch_ai` entitlement.
  - name: Macro Finance
    description: >-
      FRED economic time series — catalog, point-in-time observations and
      releases. Requires the `can_use_macro` entitlement.
  - name: Screening and Reference
    description: >-
      Restricted-party lists, name screening and ownership-chain exposure.
      Requires the `can_use_screening` / `can_use_exposure` entitlement.
      Analytical coverage, not an audit-grade compliance control.
  - name: China
    description: >-
      China overseas development finance (AidData GCDF). Requires the
      `can_use_china` entitlement.
  - name: Maritime
    description: >-
      AIS-derived vessel flow — chokepoint transits, last-known vessel
      positions, carriers, dwell and AIS-dark gaps. Terrestrial AIS only, so
      coverage thins in open ocean. Requires the `can_use_maritime` entitlement.
  - name: Atlas Intelligence
    description: >-
      Geopolitical-risk and posture indices computed from GDELT Cloud’s own
      coded events, normalized to each place’s own frozen baseline.
  - name: Briefs
    description: Source-backed monitoring briefs.
  - name: Meta
    description: >-
      Machine-readable discovery: the value vocabularies, the endpoint
      contracts, and the query-unit cost model. Unmetered, so a client can check
      before it spends.
paths:
  /api/v2/offices/{office_id}:
    get:
      tags:
        - Political Offices
      summary: Get Office
      description: >-
        One office by id — the Wikidata QID (`Q…`) or the `p_…` id
        `/api/v2/offices` serves — with a capped preview of its holders ordered
        current → ended → unknown. `holders_truncated` says when to walk
        `holders_url` instead. A name is not looked up here: resolve it on the
        list first.
      operationId: get-office-v2
      parameters:
        - name: office_id
          in: path
          required: true
          schema:
            type: string
          description: The office id.
        - name: as_of
          in: query
          required: false
          schema:
            type: string
            format: date
          description: >-
            VALID TIME — who HELD the office on this date (YYYY-MM-DD), read
            from the start/end dates the publisher states. This is NOT
            knowledge-time replay: it is not routed through the `can_use_asof`
            gate and does not answer "what did we know then". An office-holder
            with no published start date cannot be placed on a date and is
            EXCLUDED rather than guessed — `meta.undated_office_holders` counts
            how many the date could not see. A future date is accepted and reads
            as "still in office as far as the source has published".
          example: '2022-08-01'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfficeDetailResponse'
              examples:
                default:
                  summary: Resolve an office by id
                  value:
                    success: true
                    data: {}
        '400':
          description: Invalid or unsupported parameter (see `code` and `details`)
        '401':
          description: Missing or invalid API key
        '403':
          description: Plan does not include this surface
        '404':
          description: Not found
        '429':
          description: Quota or rate limit exceeded
        '500':
          description: Server error
      security:
        - ApiKeyAuth: []
components:
  schemas:
    OfficeDetailResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - true
        data:
          type: object
          properties:
            office_id:
              type: string
              description: >-
                Wikidata QID of the office (`Q…`) when it has one, else the
                deterministic `p_` + 16-hex id. Stable across re-projection.
            name:
              type: string
            wikidata_qid:
              type: string
              nullable: true
            country_iso3:
              type: string
              nullable: true
              description: Null for IGO / supranational posts.
            subnational_area:
              type: string
              nullable: true
              description: >-
                State / province / municipality when the post is subnational;
                null otherwise.
            scope:
              type: string
              enum:
                - national
                - subnational
                - international
              description: >-
                Derived from the `gov.*` topics — see the `office_scope`
                vocabulary.
            branch:
              type: string
              enum:
                - legislative
                - executive
                - head
                - judicial
                - security
                - financial
                - igo
                - other
              description: >-
                Derived from the `gov.*` topics — see the `office_branch`
                vocabulary.
            topics:
              type: array
              items:
                type: string
            organization:
              type: object
              properties:
                entity_id:
                  type: string
                  nullable: true
                  description: >-
                    Terminal spine `e_…` id of the legislature / ministry /
                    court; null when unbound.
                name:
                  type: string
                  nullable: true
              required:
                - entity_id
                - name
            after_office_years:
              type: number
            inception_date:
              type: string
              nullable: true
              description: When the office was created, as published; may precede 1970.
            dissolution_date:
              type: string
              nullable: true
              description: When it was abolished; null = extant.
            holders_total:
              type: number
            holders_current:
              type: number
              nullable: true
            holders_as_of:
              type: number
            datasets:
              type: array
              items:
                type: string
            first_seen_date:
              type: string
            last_seen_date:
              type: string
            detail_url:
              type: string
            holders_url:
              type: string
            holder_preview:
              type: array
              items:
                type: object
                properties:
                  office_id:
                    type: string
                  office_name:
                    type: string
                  entity_id:
                    type: string
                    nullable: true
                    description: >-
                      Terminal spine `e_…` entity id of the holder (the id space
                      `/api/v2/events?entity=`, `/api/v2/entities/{id}` and
                      `/api/v2/entities/{id}/offices` accept), collapsed through
                      the arbiter. Null for a holder the binder did not mint —
                      identify that holder by `holder_source_ref`.
                  name:
                    type: string
                  holder_source_ref:
                    type: string
                  status:
                    type: string
                    enum:
                      - current
                      - ended
                      - unknown
                    description: >-
                      The publisher's assertion — see the `office_holder_status`
                      vocabulary. `unknown` is served as-is, never coerced from
                      the dates.
                  start_date:
                    type: string
                    nullable: true
                    description: TRUE valid time, as published. Null = not stated.
                  end_date:
                    type: string
                    nullable: true
                    description: >-
                      As published. Null = not stated — which is NOT the same as
                      `status: current`.
                  date_precision:
                    type: string
                    enum:
                      - day
                      - month
                      - year
                      - unknown
                    description: >-
                      How much of `start_date` the source asserted. The
                      projection places a partial date (`YYYY`, `YYYY-MM`) at
                      the first day of its period, so precision is inferred back
                      conservatively: `-01-01` → `year`, `-01` → `month`. It
                      UNDER-claims for a genuine 1 January and never
                      over-claims. `unknown` = no start date was published.
                  election_date:
                    type: string
                    nullable: true
                  constituency:
                    type: string
                    nullable: true
                    description: 'Legislators: the seat / district.'
                  pep_until_date:
                    type: string
                    nullable: true
                  sources:
                    type: array
                    items:
                      type: string
                  evidence_url:
                    type: string
                    nullable: true
                  office_holder_uids:
                    type: array
                    items:
                      type: string
                  public_official:
                    type: object
                    properties:
                      checked:
                        type: boolean
                        description: >-
                          False when office evidence or canonical identity could
                          not be checked.
                      is_public_official:
                        type: boolean
                        nullable: true
                        description: >-
                          Published office evidence exists. Null means
                          unavailable, not a negative finding.
                      status:
                        type: string
                        enum:
                          - current
                          - former
                          - unknown
                        nullable: true
                        description: >-
                          Publisher status across recorded terms. Former
                          requires all terms to be explicitly ended; missing
                          dates never infer status.
                      total:
                        type: number
                        nullable: true
                        description: >-
                          Distinct recorded offices, independent of the bounded
                          preview.
                      offices:
                        type: array
                        items:
                          type: object
                          properties:
                            office_id:
                              type: string
                            name:
                              type: string
                            country_iso3:
                              type: string
                              nullable: true
                              description: Office jurisdiction, not citizenship.
                            status:
                              type: string
                              enum:
                                - current
                                - ended
                                - unknown
                            start_date:
                              type: string
                              nullable: true
                            end_date:
                              type: string
                              nullable: true
                            evidence_date:
                              type: string
                              nullable: true
                            sources:
                              type: array
                              items:
                                type: object
                                properties:
                                  source_key:
                                    type: string
                                  url:
                                    type: string
                                    nullable: true
                                required:
                                  - source_key
                                  - url
                          required:
                            - office_id
                            - name
                            - country_iso3
                            - status
                            - start_date
                            - end_date
                            - evidence_date
                            - sources
                      truncated:
                        type: boolean
                    required:
                      - checked
                      - is_public_official
                      - status
                      - total
                      - offices
                      - truncated
                required:
                  - office_id
                  - office_name
                  - entity_id
                  - name
                  - holder_source_ref
                  - status
                  - start_date
                  - end_date
                  - date_precision
                  - election_date
                  - constituency
                  - pep_until_date
                  - sources
                  - evidence_url
                  - office_holder_uids
              nullable: true
              description: >-
                Up to two source-backed holder terms in the same as_of scope,
                current first. Null means unavailable; this preview never limits
                holders_url pagination or totals.
          required:
            - office_id
            - name
            - wikidata_qid
            - country_iso3
            - subnational_area
            - scope
            - branch
            - topics
            - organization
            - after_office_years
            - inception_date
            - dissolution_date
            - holders_total
            - holders_current
            - datasets
            - first_seen_date
            - last_seen_date
            - detail_url
            - holders_url
        holders_preview:
          type: array
          items:
            type: object
            properties:
              office_id:
                type: string
              office_name:
                type: string
              entity_id:
                type: string
                nullable: true
                description: >-
                  Terminal spine `e_…` entity id of the holder (the id space
                  `/api/v2/events?entity=`, `/api/v2/entities/{id}` and
                  `/api/v2/entities/{id}/offices` accept), collapsed through the
                  arbiter. Null for a holder the binder did not mint — identify
                  that holder by `holder_source_ref`.
              name:
                type: string
              holder_source_ref:
                type: string
              status:
                type: string
                enum:
                  - current
                  - ended
                  - unknown
                description: >-
                  The publisher's assertion — see the `office_holder_status`
                  vocabulary. `unknown` is served as-is, never coerced from the
                  dates.
              start_date:
                type: string
                nullable: true
                description: TRUE valid time, as published. Null = not stated.
              end_date:
                type: string
                nullable: true
                description: >-
                  As published. Null = not stated — which is NOT the same as
                  `status: current`.
              date_precision:
                type: string
                enum:
                  - day
                  - month
                  - year
                  - unknown
                description: >-
                  How much of `start_date` the source asserted. The projection
                  places a partial date (`YYYY`, `YYYY-MM`) at the first day of
                  its period, so precision is inferred back conservatively:
                  `-01-01` → `year`, `-01` → `month`. It UNDER-claims for a
                  genuine 1 January and never over-claims. `unknown` = no start
                  date was published.
              election_date:
                type: string
                nullable: true
              constituency:
                type: string
                nullable: true
                description: 'Legislators: the seat / district.'
              pep_until_date:
                type: string
                nullable: true
              sources:
                type: array
                items:
                  type: string
              evidence_url:
                type: string
                nullable: true
              office_holder_uids:
                type: array
                items:
                  type: string
              public_official:
                type: object
                properties:
                  checked:
                    type: boolean
                    description: >-
                      False when office evidence or canonical identity could not
                      be checked.
                  is_public_official:
                    type: boolean
                    nullable: true
                    description: >-
                      Published office evidence exists. Null means unavailable,
                      not a negative finding.
                  status:
                    type: string
                    enum:
                      - current
                      - former
                      - unknown
                    nullable: true
                    description: >-
                      Publisher status across recorded terms. Former requires
                      all terms to be explicitly ended; missing dates never
                      infer status.
                  total:
                    type: number
                    nullable: true
                    description: >-
                      Distinct recorded offices, independent of the bounded
                      preview.
                  offices:
                    type: array
                    items:
                      type: object
                      properties:
                        office_id:
                          type: string
                        name:
                          type: string
                        country_iso3:
                          type: string
                          nullable: true
                          description: Office jurisdiction, not citizenship.
                        status:
                          type: string
                          enum:
                            - current
                            - ended
                            - unknown
                        start_date:
                          type: string
                          nullable: true
                        end_date:
                          type: string
                          nullable: true
                        evidence_date:
                          type: string
                          nullable: true
                        sources:
                          type: array
                          items:
                            type: object
                            properties:
                              source_key:
                                type: string
                              url:
                                type: string
                                nullable: true
                            required:
                              - source_key
                              - url
                      required:
                        - office_id
                        - name
                        - country_iso3
                        - status
                        - start_date
                        - end_date
                        - evidence_date
                        - sources
                  truncated:
                    type: boolean
                required:
                  - checked
                  - is_public_official
                  - status
                  - total
                  - offices
                  - truncated
            required:
              - office_id
              - office_name
              - entity_id
              - name
              - holder_source_ref
              - status
              - start_date
              - end_date
              - date_precision
              - election_date
              - constituency
              - pep_until_date
              - sources
              - evidence_url
              - office_holder_uids
        holders_truncated:
          type: boolean
        holders_url:
          type: string
        meta:
          type: object
          properties:
            as_of:
              type: string
              nullable: true
            time_semantics:
              type: object
              properties:
                offices:
                  type: object
                  properties:
                    validTime:
                      type: string
                    systemTime:
                      type: string
                    asOfSupported:
                      type: boolean
                    asOfMeaning:
                      type: string
                    label:
                      type: string
                  required:
                    - validTime
                    - systemTime
                    - asOfSupported
                    - asOfMeaning
                    - label
              required:
                - offices
            attributions:
              type: array
              items:
                type: object
                properties:
                  source:
                    type: string
                    description: >-
                      `ref.list_catalog.source_key` of the asserting dataset
                      (`os_<dataset>`).
                  license:
                    type: string
                    description: >-
                      Licence basis as recorded in the OSINT catalog; may be
                      empty for a dataset the catalog does not carry.
                  credit:
                    type: string
                    description: Publisher / dataset title to credit.
                  url:
                    type: string
                    description: >-
                      Publisher landing page — NOT the fetch URL. Empty when
                      unknown.
                required:
                  - source
                  - license
                  - credit
                  - url
            disclaimer:
              type: string
            undated_office_holders:
              type: number
              nullable: true
            source:
              type: string
              enum:
                - ref.offices+ref.office_holders
          required:
            - as_of
            - time_semantics
            - attributions
            - disclaimer
            - undated_office_holders
            - source
      required:
        - success
        - data
        - holders_preview
        - holders_truncated
        - holders_url
        - meta
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: gdelt_sk_...
      description: 'GDELT Cloud API key. Send as `Authorization: Bearer gdelt_sk_...`.'

````