Returns a paginated list of extracted specification sections within a project. Each entity represents a discrete CSI-formatted (or similar) specification section, including its section number, title, page range, and structured facets that break the section into labeled sub-components. Filter by section number or page range to zero in on specific content.
Endpoint
GET https://plangrep.com/api/open/v1/projects/{projectId}/specifications
Path Parameters
The unique identifier of the project whose specification sections you want to list.
Query Parameters
Maximum number of records to return per page. Must be between 1 and 500 .
Pagination cursor returned as nextCursor from a previous response. Omit to fetch the first page.
When true, artifact URL fields are stripped from each entity, reducing payload size.
Comma-separated list of sheet IDs to narrow results.
Restrict results to specification sections from a specific file.
Case-insensitive substring match on the parent file name.
Filter by parent file classification. One of: plans, specifications, documents, addenda, mixed, other.
Filter to sections with this exact section number (e.g. 03 30 00, 09 90 00).
Filter to sections whose content starts at or after this 1-based page number. Minimum: 1.
Filter to sections whose content ends at or before this 1-based page number. Minimum: 1.
Response
Returns a ProjectSpecificationEntityListResponse object.
Total number of specification sections matching the current filters across all pages.
The page size limit that was applied to this response.
The cursor value used for this page (echoed back from the request).
Opaque cursor to pass as cursor to retrieve the next page. null when there are no more pages.
Number of specification entities actually returned in this response.
true if additional pages are available beyond this response.
Relay-style page info object. Cursor pointing to the first record in this page.
Cursor pointing to the last record in this page.
true if records exist before this page.
true if records exist after this page.
Data Fields
specifications
ProjectSpecificationEntity[]
Array of extracted specification section entities. Show ProjectSpecificationEntity fields
Unique identifier for this specification section.
ID of the parent file this section was extracted from.
Specification section number (e.g. 03 30 00).
Full title of the specification section (e.g. Cast-In-Place Concrete).
1-based page number where this section begins in the source file.
1-based page number where this section ends in the source file.
facets
ProjectSpecificationFacetEntity[]
Structured sub-components of the section (e.g. Part 1 General, Part 2 Products). See facet fields below. Show ProjectSpecificationFacetEntity fields
Unique identifier for this facet.
Machine-readable key identifying the facet type.
Category of the facet (e.g. part, article, paragraph).
Human-readable label for this facet (e.g. PART 1 – GENERAL).
Describes how completely this facet covers its source content.
Raw source text for this facet, up to 50,000 characters .
1-based page number where this facet begins.
1-based page number where this facet ends.
Array of artifact objects with URLs to derived outputs. Omitted when compact=true.
Example Request
curl -X GET "https://plangrep.com/api/open/v1/projects/proj_abc123/specifications?limit=20§ionNumber=03%2030%2000" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Example Response
{
"total" : 85 ,
"limit" : 20 ,
"cursor" : null ,
"nextCursor" : "eyJvZmZzZXQiOjIwfQ==" ,
"returnedCount" : 20 ,
"hasMore" : true ,
"pageInfo" : {
"startCursor" : "eyJvZmZzZXQiOjB9" ,
"endCursor" : "eyJvZmZzZXQiOjE5fQ==" ,
"hasPreviousPage" : false ,
"hasNextPage" : true
},
"specifications" : [
{
"specificationId" : "spec_001" ,
"fileId" : "file_002" ,
"fileName" : "Project_Specifications.pdf" ,
"sectionNumber" : "03 30 00" ,
"sectionTitle" : "Cast-In-Place Concrete" ,
"pageStart" : 45 ,
"pageEnd" : 62 ,
"facets" : [
{
"facetId" : "facet_001" ,
"facetKey" : "part_1_general" ,
"facetKind" : "part" ,
"facetLabel" : "PART 1 – GENERAL" ,
"coverageKind" : "full" ,
"facetText" : "1.01 SUMMARY \n A. Section includes cast-in-place concrete..." ,
"pageStart" : 45 ,
"pageEnd" : 48
}
],
"artifacts" : []
}
]
}