Overview
The Upload Evidence API allows external systems, CI/CD pipelines, and scripts to programmatically upload evidence files and attach them to compliance tests in LowerPlane. This is useful for automating evidence collection from tools that don’t have a native integration.Authentication
All requests require an API key passed as a Bearer token in theAuthorization header.
lp_.
Endpoints
Upload Evidence to a Test
Upload an evidence file and attach it to a specific test.Upload Evidence to a Test Entity
Upload an evidence file and attach it to a specific entity (resource) within a test. Use the entity’sresource_id (the provider’s identifier, e.g., AWS ARN, Okta user ID) to identify the entity.
Request
Bearer token with your API key. Example:
Bearer lp_abc123...The UUID of the test to attach evidence to.
The resource ID of the specific test entity. This is the provider’s identifier (e.g., AWS ARN, GitHub repo name, Okta user ID), not LowerPlane’s internal UUID.
The evidence file to upload. Supports PDF, PNG, JPG, CSV, JSON, DOCX, and other common file types. Maximum size: 50MB.
Display name for the evidence. Defaults to the uploaded filename if not provided.
Description of the evidence.
Evidence type. One of:
document, screenshot, report, log, certificate, configuration.ISO 8601 date when the evidence becomes valid. Defaults to the current timestamp.
ISO 8601 date when the evidence expires.
Response
The UUID of the created evidence record.
Display name of the evidence.
Original filename.
File size in bytes.
Evidence type.
The test this evidence is attached to.
The resource ID of the entity this evidence is attached to, or
null for test-level evidence.ISO 8601 timestamp of when the evidence was created.
Examples
Upload test-level evidence
Upload entity-level evidence
Upload from a CI/CD pipeline
Python example
Error Responses
| Status | Error | Description |
|---|---|---|
| 400 | file is required | No file was included in the request |
| 401 | Missing or invalid Authorization header | No Bearer token provided |
| 401 | Invalid API key format | Key doesn’t start with lp_ |
| 401 | Invalid or revoked API key | Key not found or has been revoked |
| 404 | Test not found | Test ID doesn’t exist or doesn’t belong to your organization |
| 404 | Entity with resource_id "..." not found in this test | The specified resource ID wasn’t found in the test’s entities |
Finding IDs
Test ID
Navigate to the test in LowerPlane. The test ID is in the URL:/app/tests/{test_id}.