3GPP Scout Documents API

The documents API from 3GPP Scout — 2 operation(s) for documents.

Operations 2

GET /documents List Documents #
GET /documents/{document_id} Get Document #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/3gppscout-com:3gppscout-com-documents-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

3gppscout-com-documents-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 3gppscout Com Documents API
  version: 0.2.0
  description: 'Operations tagged documents across 2 of this provider''s published API definitions: 3gppscout-com-openapi.json, api.json. Each path carries the servers of the definition it was published in.'
tags:
- name: Documents
paths:
  /documents:
    get:
      tags:
      - Documents
      summary: List Documents
      description: 'List 3GPP documents available in the search index with metadata (doc_number, title, release, series, chunk counts).


        Without filters, returns all ~3,200 documents. Use doc_number to check if a specific document is indexed (fast: only fetches 1-2 status files instead of scanning all).


        Each version carries `provenance`: when it was uploaded to the 3GPP archive (UTC) and the TSG plenary it was approved at, with sources. With doc_number and available_before, this answers which indexed versions of a spec were in the 3GPP archive before a date.'
      operationId: list_documents_documents_get
      parameters:
      - name: doc_number
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by document number, e.g. '38.811'. Returns only versions of that document.
          title: Doc Number
        description: Filter by document number, e.g. '38.811'. Returns only versions of that document.
      - name: release
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by 3GPP release, e.g. 'Rel-19'.
          title: Release
        description: Filter by 3GPP release, e.g. 'Rel-19'.
      - name: series
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by series, e.g. '38'.
          title: Series
        description: Filter by series, e.g. '38'.
      - name: doc_type
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'Filter by document type: ''TS'' or ''TR''.'
          title: Doc Type
        description: 'Filter by document type: ''TS'' or ''TR''.'
      - name: available_before
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Only versions uploaded to the 3GPP archive before this date (YYYY-MM-DD; before 00:00 UTC, so the day itself is excluded), e.g. a patent application's priority date. A version whose upload time is unknown is left out. Usually one version per release of each spec is indexed (the newest in that release, Rel-15 onward), so a release appears only if that version predates the cutoff; older versions are in the 3GPP archive but not searchable here.
          title: Available Before
        description: Only versions uploaded to the 3GPP archive before this date (YYYY-MM-DD; before 00:00 UTC, so the day itself is excluded), e.g. a patent application's priority date. A version whose upload time is unknown is left out. Usually one version per release of each spec is indexed (the newest in that release, Rel-15 onward), so a release appears only if that version predates the cutoff; older versions are in the 3GPP archive but not searchable here.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DocumentInfo'
                title: Response List Documents Documents Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /documents/{document_id}:
    get:
      tags:
      - Documents
      summary: Get Document
      description: Get metadata for a single 3GPP document by its numeric ID (from search results or list_documents). Returns title, doc_number, release, series, chunk counts, and `provenance` (when the version was uploaded to the 3GPP archive and the TSG plenary it was approved at).
      operationId: get_document_documents__document_id__get
      parameters:
      - name: document_id
        in: path
        required: true
        schema:
          type: integer
          title: Document Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentInfo'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    SpecProvenance:
      properties:
        statement:
          anyOf:
          - type: string
          - type: 'null'
          title: Statement
          description: 'The known facts as plain sentences, ready to quote, e.g. ''Uploaded to the 3GPP archive on 2026-09-24 at 16:47 UTC. Approved at TSG SA #113 (2026-09-15 to 2026-09-18).'' It says ''uploaded to the 3GPP archive'' and ''approved at'', never ''published'': no source states a publication date.'
        archive_uploaded_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Archive Uploaded At
          description: When this version's zip was uploaded to the 3GPP archive (ISO 8601, UTC), as the 3GPP FTP folder listing at archive_url shows it. If 3GPP re-uploaded the file, the earliest time seen. Null when not found; see unknown_reasons.
        archive_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Archive Url
          description: The zip on the 3GPP FTP server whose folder listing gives archive_uploaded_at; open its folder to verify the time.
        archive_date_source:
          anyOf:
          - type: string
          - type: 'null'
          title: Archive Date Source
          description: '''ftp_archive_listing'' (the spec''s folder under /ftp/Specs/archive/) or ''ftp_plenary_folder_listing'' (a dated plenary folder that showed an earlier time).'
        plenary_batch:
          anyOf:
          - type: string
          - type: 'null'
          title: Plenary Batch
          description: YYYY-MM of the plenary round whose batch of specifications includes this version (3GPP's dated folders, /ftp/Specs/YYYY-MM/).
        plenary_batch_source:
          anyOf:
          - type: string
          - type: 'null'
          title: Plenary Batch Source
          description: '''tsg_spec_list'' (stated in 3GPP''s list of specifications arising from that TSG round), ''tsg_meeting_start'' (the month the plenary in tsg_meeting started) or ''ftp_plenary_folder'' (the earliest dated folder holding the zip).'
        tsg_meeting:
          anyOf:
          - type: string
          - type: 'null'
          title: Tsg Meeting
          description: 'Plenary meeting ID: ''SP-113'' (TSG SA #113), ''RP-109'' (TSG RAN), ''CP-110'' (TSG CT); a trailing ''-e'' marks an electronic meeting.'
        tsg_meeting_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Tsg Meeting Name
          description: 'The meeting as 3GPP names it, e.g. ''TSG SA #113''.'
        tsg_meeting_relation:
          anyOf:
          - type: string
          - type: 'null'
          title: Tsg Meeting Relation
          description: '''approved'': change requests approved at this meeting created this version (3GPP CR database). ''arising_from'': 3GPP lists this version among the specifications arising from this meeting. ''presented'': a draft (below version 3.0.0) presented to this meeting.'
        tsg_meeting_start:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Tsg Meeting Start
          description: First day of the plenary meeting.
        tsg_meeting_end:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Tsg Meeting End
          description: Last day of the plenary meeting.
        tsg_meeting_source:
          anyOf:
          - type: string
          - type: 'null'
          title: Tsg Meeting Source
          description: '''cr_database'' (3GPP change request database export) or ''tsg_spec_list'' (3GPP''s list of specifications arising from that TSG round).'
        tsg_meeting_source_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Tsg Meeting Source Url
          description: The 3GPP file that names the meeting.
        unknown_reasons:
          anyOf:
          - additionalProperties:
              type: string
            type: object
          - type: 'null'
          title: Unknown Reasons
          description: 'Why a field is null, by field name. archive_uploaded_at: ''not_in_archive_listing''. tsg_meeting: ''before_tsg_lists_no_approved_cr'' (uploaded before March 2023, when 3GPP''s per-round spec lists start, and created by no approved change request, e.g. a release upgrade), ''draft_not_listed'', or ''not_in_cr_database_or_tsg_lists''. Nothing is guessed.'
        notes:
          anyOf:
          - type: string
          - type: 'null'
          title: Notes
          description: Anything a reviewer should know, e.g. the file was re-uploaded or two sources name different meetings.
      type: object
      title: SpecProvenance
      description: 'When this spec version reached the public 3GPP archive, and the TSG plenary it came from.


        Every value comes from the 3GPP FTP server: archive and dated plenary folder listings, 3GPP''s lists of

        specifications arising from each TSG round, and the 3GPP change request database. Unknown values stay null.'
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    DocumentInfo:
      properties:
        id:
          type: integer
          title: Id
        doc_number:
          type: string
          title: Doc Number
        doc_type:
          type: string
          title: Doc Type
        version:
          type: string
          title: Version
        release:
          type: string
          title: Release
        series:
          type: string
          title: Series
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        filename:
          type: string
          title: Filename
        total_text_chunks:
          anyOf:
          - type: integer
          - type: 'null'
          title: Total Text Chunks
        total_image_chunks:
          anyOf:
          - type: integer
          - type: 'null'
          title: Total Image Chunks
        status:
          type: string
          title: Status
        created_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Created At
          description: When Scout indexed this version, not a 3GPP date; see provenance for those.
        provenance:
          anyOf:
          - $ref: '#/components/schemas/SpecProvenance'
          - type: 'null'
          description: When this version was uploaded to the 3GPP archive and the TSG plenary it came from, with sources. Null when the version has no provenance row yet.
      type: object
      required:
      - id
      - doc_number
      - doc_type
      - version
      - release
      - series
      - filename
      - status
      title: DocumentInfo
      description: Document metadata.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
x-refined-from:
- 3gppscout-com-openapi.json
- api.json