# Plangrep ## Docs - [Stream an Artifact Using a One-Time Download Token](https://docs.plangrep.com/api-reference/artifacts/get-artifact-download.md): GET /api/open/v1/artifact-downloads/:token — streams artifact bytes via a one-time token. Unauthenticated route; token is consumed on a successful GET. - [Fetch an Artifact from a Job's Immutable Result Snapshot](https://docs.plangrep.com/api-reference/artifacts/get-job-artifact.md): GET /api/open/v1/jobs/:jobId/artifact — fetches artifact bytes from the immutable result snapshot. Only artifacts from that job's result are accessible. - [Fetch an Artifact from a Project Entity or Source Catalog](https://docs.plangrep.com/api-reference/artifacts/get-project-artifact.md): GET /api/open/v1/projects/:projectId/artifact — fetches artifact bytes exposed by project entity or source catalog responses for this project. - [Validate an Artifact Download Token Without Consuming It](https://docs.plangrep.com/api-reference/artifacts/head-artifact-download.md): HEAD /api/open/v1/artifact-downloads/:token — validates a download token and returns artifact headers without consuming the token or streaming bytes. - [Cancel a Non-Terminal Plangrep Job](https://docs.plangrep.com/api-reference/jobs/cancel-job.md): POST /api/open/v1/jobs/:jobId/cancel — cancels a job that has not yet reached a terminal state. Processed pages may still be billed. - [Create a Processing Job in a Plangrep Project](https://docs.plangrep.com/api-reference/jobs/create-job.md): POST /api/open/v1/projects/:projectId/jobs — creates a new processing job. Pass a webhookUrl to receive push notifications on status changes. - [Get Job State](https://docs.plangrep.com/api-reference/jobs/get-job.md): GET /api/open/v1/jobs/:jobId — retrieves the current state of a processing job, including status, billing, file metadata, and any error details. - [Get Normalized Result JSON for a Plangrep Job](https://docs.plangrep.com/api-reference/jobs/get-job-result.md): GET /api/open/v1/jobs/:jobId/result — returns the immutable normalized v1 result JSON for a completed job, including documents, evidence, and usage. - [List Jobs for a Plangrep API Project](https://docs.plangrep.com/api-reference/jobs/list-jobs.md): GET /api/open/v1/projects/:projectId/jobs — returns all processing jobs for an API project, ordered by creation time, newest first. - [Resume a Job Blocked by Insufficient Credits](https://docs.plangrep.com/api-reference/jobs/resume-job.md): POST /api/open/v1/jobs/:jobId/resume — resumes a job paused due to insufficient credits. Add credits to your account before calling this endpoint. - [Get One Processed Document Entity from a Plangrep Project](https://docs.plangrep.com/api-reference/project-reads/get-doc.md): GET /api/open/v1/projects/:projectId/docs/:docId — retrieves a single processed document entity with type, status, and artifact links. - [Retrieve a Single Extracted File from a Plangrep Project](https://docs.plangrep.com/api-reference/project-reads/get-file.md): GET /api/open/v1/projects/:projectId/files/:fileId — retrieves a single extracted file entity with full metadata, artifact URLs, and processing status. - [Retrieve a Single Drawing Region from a Plangrep Project](https://docs.plangrep.com/api-reference/project-reads/get-region.md): GET /api/open/v1/projects/:projectId/regions/:regionId — retrieves a single drawing region with bounding box, extracted text, and artifacts. - [Retrieve a Single Drawing Sheet from a Plangrep Project](https://docs.plangrep.com/api-reference/project-reads/get-sheet.md): GET /api/open/v1/projects/:projectId/sheets/:sheetId — retrieves a single extracted sheet entity including sheet number, display name, and artifacts. - [Get a Single Extracted Specification Section from a Project](https://docs.plangrep.com/api-reference/project-reads/get-specification.md): GET /api/open/v1/projects/:projectId/specifications/:specificationId — retrieves a single specification section with facets and source text artifacts. - [List Processed Document Entities in a Plangrep Project](https://docs.plangrep.com/api-reference/project-reads/list-docs.md): GET /api/open/v1/projects/:projectId/docs — paginated list of processed doc entities with filtering by doc type, status, and classification. - [List All Extracted Files Belonging to a Plangrep Project](https://docs.plangrep.com/api-reference/project-reads/list-files.md): GET /api/open/v1/projects/:projectId/files — paginated list of extracted files with optional filtering by name, classification, and status. - [List Extracted Drawing Regions in a Plangrep Project](https://docs.plangrep.com/api-reference/project-reads/list-regions.md): GET /api/open/v1/projects/:projectId/regions — paginated list of extracted drawing regions filterable by region type, drawing type, layout, and more. - [List All Extracted Drawing Sheets in a Plangrep Project](https://docs.plangrep.com/api-reference/project-reads/list-sheets.md): GET /api/open/v1/projects/:projectId/sheets — paginated list of extracted sheets with filtering by sheet number, file, classification, and more. - [List Extracted Specification Sections in a Project](https://docs.plangrep.com/api-reference/project-reads/list-specifications.md): GET /api/open/v1/projects/:projectId/specifications — paginated list of specification sections with filtering by section number and page range. - [Read Paginated Source Text for a Plangrep Project Entity](https://docs.plangrep.com/api-reference/project-reads/read-source-text.md): POST /api/open/v1/projects/:projectId/source-text — retrieves bounded text for a given sourceCatalogUri. Supports pagination and multiple text kinds. - [Search Project Sources Using Semantic and Keyword Queries](https://docs.plangrep.com/api-reference/project-reads/search-sources.md): POST /api/open/v1/projects/:projectId/source-search — semantic and keyword search across all indexed sources in a project. Returns hits with snippets. - [Create an API Project in Plangrep](https://docs.plangrep.com/api-reference/projects/create-project.md): POST /api/open/v1/projects — provisions a new API project under your organization. Returns 202 immediately; poll for ready status before submitting jobs. - [Get API Project State](https://docs.plangrep.com/api-reference/projects/get-project.md): GET /api/open/v1/projects/:projectId — retrieves the current state of a single project. Use for polling readiness after creation before submitting jobs. - [Get a Source-Ready Summary of a Plangrep Project](https://docs.plangrep.com/api-reference/projects/get-project-summary.md): GET /api/open/v1/projects/:projectId/summary — returns aliases, key files, detected disciplines, and entity counts for a project. - [List API Projects for Your Organization](https://docs.plangrep.com/api-reference/projects/list-projects.md): GET /api/open/v1/projects — returns all API projects for your organization, including each project's status, runtime health, and creation timestamps. - [Search Projects by Name and Semantic Source Hits](https://docs.plangrep.com/api-reference/projects/search-projects.md): POST /api/open/v1/projects/search — searches organization projects by name and semantic source content. Supports filtering and pagination. - [Complete Job Uploads and Trigger Plangrep Processing](https://docs.plangrep.com/api-reference/uploads/complete-uploads.md): POST /api/open/v1/jobs/:jobId/uploads/complete — closes the upload window and starts processing. Supports idempotency for safe retries. - [Register Signed Upload Instructions for Large Files](https://docs.plangrep.com/api-reference/uploads/register-uploads.md): POST /api/open/v1/jobs/:jobId/uploads — registers files and returns signed direct PUT or multipart upload instructions with upload tokens. - [Upload Files to a Plangrep Job via Multipart Form Data](https://docs.plangrep.com/api-reference/uploads/upload-files.md): POST /api/open/v1/jobs/:jobId/files — default batch upload path. Send multipart/form-data with metadata and file parts to store files on the job. - [Upload Base64 Content for a Registered Direct PUT File](https://docs.plangrep.com/api-reference/uploads/upload-registered-file.md): POST /api/open/v1/jobs/:jobId/uploads/:documentId/content — uploads base64-encoded bytes for a registered direct_put document. API compatibility helper. - [Create a New Scoped Open API Key for the Workspace](https://docs.plangrep.com/api-reference/workspace-keys/create-key.md): Creates a new scoped Open API key with an optional expiration date. The plaintext key is returned in this response only and cannot be retrieved again. - [List All Open API Keys and Profile for Your Workspace](https://docs.plangrep.com/api-reference/workspace-keys/list-keys.md): Returns all API keys belonging to the current workspace along with the organization's Open API profile settings, including credit rates and limits. - [Revoke All Active Open API Keys for Your Workspace](https://docs.plangrep.com/api-reference/workspace-keys/revoke-all-keys.md): Immediately and permanently revokes every active Open API key in the workspace. All integrations using any key will begin receiving 401 errors instantly. - [Immediately Revoke a Single Workspace Open API Key](https://docs.plangrep.com/api-reference/workspace-keys/revoke-key.md): Immediately revokes a single Open API key by ID. The key is permanently disabled and will return 401 Unauthorized on all subsequent API requests. - [Authenticate with the Plangrep API Using Bearer Tokens](https://docs.plangrep.com/authentication.md): Learn how to create a scoped API key in the Plangrep app, pass it as a bearer token on every request, and understand key scopes and error responses. - [Plangrep Credits: How Processing Is Billed by Page](https://docs.plangrep.com/concepts/credits.md): Learn how Plangrep credits work, how many are charged per drawing or document page, and what happens when credits run low during a job. - [Jobs: Processing Units for Uploaded Document Files](https://docs.plangrep.com/concepts/jobs.md): Understand how Plangrep jobs manage the full lifecycle of file uploads and document processing, from creation through completion and result retrieval. - [Projects: Persistent Containers for Processed Document Data](https://docs.plangrep.com/concepts/projects.md): Learn how Plangrep projects store processed files, enable semantic search, and serve as the organizing unit for your construction documents. - [Plangrep Result JSON: Schema and Extracted Entities](https://docs.plangrep.com/concepts/results.md): Understand the normalized v1 result JSON returned by Plangrep jobs, including documents, sheets, regions, specifications, and evidence records. - [Uploading Files to Plangrep Jobs: Three Upload Modes](https://docs.plangrep.com/concepts/uploads.md): Learn the three upload paths Plangrep supports: multipart form upload, signed direct PUT, and signed multipart upload for large files. - [Poll for Job Status or Receive Webhook Notifications](https://docs.plangrep.com/guides/polling-and-webhooks.md): Learn how to track Plangrep job progress by polling the job status endpoint or by receiving push notifications via a registered webhook URL. - [Read, Interpret, and Download Plangrep Job Results](https://docs.plangrep.com/guides/reading-results.md): Learn how to fetch the normalized v1 result JSON, interpret extracted documents, sheets, regions, and evidence records, and download artifacts. - [Search Construction Document Sources with Plangrep](https://docs.plangrep.com/guides/searching-sources.md): Learn how to run semantic and keyword searches across processed project sources using Plangrep's source search and project search endpoints. - [Upload Construction Files and Submit a Processing Job](https://docs.plangrep.com/guides/submit-a-job.md): Learn how to create a Plangrep project, upload construction drawings and specification documents, and start the async processing pipeline. - [Plangrep: Process Construction Docs into Normalized JSON](https://docs.plangrep.com/introduction.md): Plangrep is an async API that processes construction drawings, specifications, and documents into structured, searchable JSON. Get started in minutes. - [Quickstart: Process Your First Construction Document](https://docs.plangrep.com/quickstart.md): Step-by-step guide to creating a project, uploading a construction document, and retrieving normalized JSON results from the Plangrep API.