---
title: "Search Positions"
method: POST
path: "/positions/search"
tags: ["positions"]
---

# Search Positions

`POST /positions/search`

## Request

- Base URL: `https://api.3gppscout.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.3gppscout.com/positions/search`
- Auth: none declared

Search every company's positions in 3GPP contributions: "who proposed what about X".

Matches by meaning and by exact term (IE names such as ta-CommonDrift, spec numbers, quoted phrases), then
reranks. Each result is one claim with all its submitting companies (`organizations`), stance, claim,
verbatim quote, target, page, and TDoc (ID, title, doc_kind, status, meeting, agenda item, official_url).
`companies` counts results per company. Optional filters: orgs, group, meeting, stance.

Positions are proposals and observations, not agreements; use list_meeting_decisions for outcomes. To put
two companies side by side, use get_company_positions with several orgs.

Errors: 400 `invalid_parameter`, 409 `organization_ambiguous`, 502 `search_unavailable`.

## Request body

- PositionSearchRequest
  - `query` string, required: What to find, e.g. 'common TA drift' or 'K_offset update for LEO'.
  - `orgs` string[], nullable: Limit to these companies (names, aliases, or org_ids).
  - `group` string, nullable: Working group, e.g. R1 or RAN1.
  - `meeting` string, nullable: Meeting ID, e.g. R1-126.
  - `stance` string[], nullable: Any of: proposes, supports, opposes, prefers_alternative, raises_concern, requests_clarification, observes.
  - `limit` integer

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/3gppscout/apis/3gpp-scout-api.md) · [All operations](https://skmtc.dev/3gppscout/apis/3gpp-scout-api/llms.txt) · [OpenAPI document](https://skmtc.dev/3gppscout/apis/3gpp-scout-api/revisions/60bd6896e5b9?raw)
