Retrieve the normalized v1 result JSON for a job that has reached a completed terminal state. The result is immutable — its content never changes after the job finishes. It includes structured documents extracted from the source files, supporting evidence linking findings back to specific pages and regions, usage metrics, and any warnings or errors that arose during processing.
Authentication
Include your API key as Authorization: Bearer YOUR_API_KEY in the request headers.
Endpoint
GET https://plangrep.com/api/open/v1/jobs/{jobId}/result
Path Parameters
The unique identifier of the job whose result you want to retrieve. The job must have a status of completed or completed_with_errors.
Example Request
curl --request GET \
--url https://plangrep.com/api/open/v1/jobs/job_01hy3m8qtn2e5r7k9p0w4x1def/result \
--header "Authorization: Bearer YOUR_API_KEY" \
--header "Accept: application/json"
Response Fields
Always "v1". Used by consumers to select the correct parsing logic as the schema evolves over time.
A concise snapshot of the job that produced this result. Terminal status of the job (completed or completed_with_errors).
Client-supplied correlation ID, or null if none was provided at creation.
ISO 8601 timestamp of when the job was created.
ISO 8601 timestamp of when the job reached its terminal state.
ISO 8601 timestamp after which the job and its result are no longer accessible.
Pre-signed URL to the result JSON object. Populated for completed jobs.
Error detail if the job encountered a fatal error, otherwise null.
Aggregate processing metrics for the job. Total pages submitted for processing.
Pages that were processed without errors.
Total number of pages classified as drawings.
Total number of pages classified as documents.
successfulDrawingPageCount
Drawing pages that were processed successfully.
successfulDocumentPageCount
Document pages that were processed successfully.
Credits charged per successfully processed drawing page. Default: 10.
Credits charged per successfully processed document page. Default: 1.
Total credits debited for this job.
Array of normalized document objects extracted from the uploaded source files. Each document represents a structured entity (e.g., a door schedule, a specification section, a room data sheet) identified by Plangrep during processing. Show ResultDocument fields
Unique identifier for this document within the result.
The document or entity type (e.g., "door_schedule", "spec_section", "room").
The normalized, structured data payload for this document. Shape varies by type.
IDs of evidence entries that support this document’s extracted data.
Source-level evidence records linking extracted data back to specific locations in the uploaded files. Show ResultEvidence fields
Unique identifier for this evidence record.
The source file this evidence was found in.
The page number within the source file.
The sheet number if the source page is a drawing sheet, otherwise null.
Pixel-coordinate bounding box of the region within the page, or null if not available.
Non-fatal warnings raised during processing (e.g., unreadable pages, unsupported file formats). Empty array when there are no warnings.
Page-level or file-level errors that prevented full processing. Present in completed_with_errors results. Empty array for fully completed jobs.
ISO 8601 timestamp of when this result object was generated.
Example Response
{
"schemaVersion" : "v1" ,
"job" : {
"id" : "job_01hy3m8qtn2e5r7k9p0w4x1def" ,
"projectId" : "proj_01hx9z4kqr8e7m3p5n6w2v0abc" ,
"status" : "completed" ,
"externalId" : "order-7890" ,
"createdAt" : "2024-11-02T09:00:00.000Z" ,
"completedAt" : "2024-11-02T09:45:10.000Z" ,
"expiresAt" : "2024-11-09T09:00:00.000Z" ,
"resultUrl" : "https://storage.plangrep.com/results/job_01hy3m8qtn2e5r7k9p0w4x1def?token=..." ,
"error" : null
},
"usage" : {
"pageCount" : 204 ,
"successfulPageCount" : 204 ,
"drawingPageCount" : 180 ,
"documentPageCount" : 24 ,
"successfulDrawingPageCount" : 180 ,
"successfulDocumentPageCount" : 24 ,
"drawingCreditsPerPage" : 10 ,
"documentCreditsPerPage" : 1 ,
"creditsDebited" : 1824
},
"documents" : [
{
"id" : "doc_001" ,
"type" : "door_schedule" ,
"data" : {
"doors" : [
{
"mark" : "101A" ,
"width" : 36 ,
"height" : 84 ,
"material" : "hollow_metal" ,
"fireRating" : "90min"
}
]
},
"evidenceIds" : [ "evd_001" , "evd_002" ]
}
],
"evidence" : [
{
"id" : "evd_001" ,
"fileName" : "architectural_drawings.pdf" ,
"pageNumber" : 14 ,
"sheetNumber" : "A-201" ,
"boundingBox" : { "x" : 120 , "y" : 340 , "width" : 800 , "height" : 240 }
}
],
"warnings" : [],
"errors" : [],
"generatedAt" : "2024-11-02T09:45:15.000Z"
}
Results are only available for jobs with a status of completed or completed_with_errors. Calling this endpoint on a job in any other status — including failed, cancelled, or expired — will return an error. Check job.status with Get Job before calling this endpoint.