3GPP Scout · Schema

SectionWindow

The part of one clause around a term, with its citation (3GP-340).

3GPPStandardsSearchArtificial Intelligence

Properties

Name Type Description
doc_number string
doc_type object 'TS' or 'TR'.
version string
release string
section_number string
section_title object
term string
match string 'phrase' (the term appears in the clause; the window is around the occurrence asked for), 'terms' (it does not appear as a phrase; the window holds most of its words) or 'none' (no text returned).
match_count object Occurrences of the phrase in the clause. Null for match 'terms'.
occurrence object Which occurrence the window is around (1 is the first).
match_positions array Word numbers (1 is the clause's first word) where the phrase occurs, up to 30. A window starts a quarter of its length before the occurrence.
text string The window: whole words, in the clause's own spacing.
window_start_word object Clause word number of the window's first word.
window_end_word object Clause word number of the window's last word.
returned_words integer
total_words integer Words in the whole clause.
limit_words integer Most words one call returns.
truncated boolean True when the window is not the whole clause.
truncation_reason object 'window' (the rest of the clause is outside the window) or 'clause_daily_limit' (the day's limit for windows of this clause was reached).
latest_version object
latest_release object
same_text_as_latest object
citation object
official_url object
next_step object
provenance object 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.
View JSON Schema on GitHub

JSON Schema

3gppscout-com-section-window-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/3gppscout-com/json-schema/3gppscout-com-section-window-schema.json",
  "title": "SectionWindow",
  "description": "The part of one clause around a term, with its citation (3GP-340).",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/3gppscout-com-openapi.json#/components/schemas/SectionWindow",
  "properties": {
    "doc_number": {
      "type": "string",
      "title": "Doc Number"
    },
    "doc_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Doc Type",
      "description": "'TS' or 'TR'."
    },
    "version": {
      "type": "string",
      "title": "Version"
    },
    "release": {
      "type": "string",
      "title": "Release"
    },
    "section_number": {
      "type": "string",
      "title": "Section Number"
    },
    "section_title": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Section Title"
    },
    "term": {
      "type": "string",
      "title": "Term"
    },
    "match": {
      "type": "string",
      "title": "Match",
      "description": "'phrase' (the term appears in the clause; the window is around the occurrence asked for), 'terms' (it does not appear as a phrase; the window holds most of its words) or 'none' (no text returned)."
    },
    "match_count": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Match Count",
      "description": "Occurrences of the phrase in the clause. Null for match 'terms'."
    },
    "occurrence": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Occurrence",
      "description": "Which occurrence the window is around (1 is the first)."
    },
    "match_positions": {
      "items": {
        "type": "integer"
      },
      "type": "array",
      "title": "Match Positions",
      "description": "Word numbers (1 is the clause's first word) where the phrase occurs, up to 30. A window starts a quarter of its length before the occurrence."
    },
    "text": {
      "type": "string",
      "title": "Text",
      "description": "The window: whole words, in the clause's own spacing.",
      "default": ""
    },
    "window_start_word": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Window Start Word",
      "description": "Clause word number of the window's first word."
    },
    "window_end_word": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Window End Word",
      "description": "Clause word number of the window's last word."
    },
    "returned_words": {
      "type": "integer",
      "title": "Returned Words",
      "default": 0
    },
    "total_words": {
      "type": "integer",
      "title": "Total Words",
      "description": "Words in the whole clause.",
      "default": 0
    },
    "limit_words": {
      "type": "integer",
      "title": "Limit Words",
      "description": "Most words one call returns."
    },
    "truncated": {
      "type": "boolean",
      "title": "Truncated",
      "description": "True when the window is not the whole clause.",
      "default": false
    },
    "truncation_reason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Truncation Reason",
      "description": "'window' (the rest of the clause is outside the window) or 'clause_daily_limit' (the day's limit for windows of this clause was reached)."
    },
    "latest_version": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Latest Version"
    },
    "latest_release": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Latest Release"
    },
    "same_text_as_latest": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Same Text As Latest"
    },
    "citation": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Citation"
    },
    "official_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Official Url"
    },
    "next_step": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Next Step"
    },
    "provenance": {
      "anyOf": [
        {
          "$ref": "#/$defs/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": [
    "doc_number",
    "version",
    "release",
    "section_number",
    "term",
    "match",
    "limit_words"
  ],
  "$defs": {
    "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.\n\nEvery value comes from the 3GPP FTP server: archive and dated plenary folder listings, 3GPP's lists of\nspecifications arising from each TSG round, and the 3GPP change request database. Unknown values stay null."
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/3gppscout-com-section-window"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.