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 the Authorization header. See Authentication for how to create and use API keys.

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’s resource_id (the provider’s identifier, e.g., AWS ARN, Okta user ID) to identify the entity.
You can find the resource_id for any entity by clicking on it in the test detail view. The Resource ID is displayed at the top of the entity detail modal with a copy button.

Request

string
required
Bearer token with your API key. Example: Bearer lp_abc123...
string
required
The UUID of the test to attach evidence to.
string
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.
file
required
The evidence file to upload. Supports PDF, PNG, JPG, CSV, JSON, DOCX, and other common file types. Maximum size: 50MB.
string
Display name for the evidence. Defaults to the uploaded filename if not provided.
string
Description of the evidence.
string
default:"document"
Evidence type. One of: document, screenshot, report, log, certificate, configuration.
string
ISO 8601 date when the evidence becomes valid. Defaults to the current timestamp.
string
ISO 8601 date when the evidence expires.

Response

string
The UUID of the created evidence record.
string
Display name of the evidence.
string
Original filename.
number
File size in bytes.
string
Evidence type.
string
The test this evidence is attached to.
string
The resource ID of the entity this evidence is attached to, or null for test-level evidence.
string
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

Finding IDs

Test ID

Navigate to the test in LowerPlane. The test ID is in the URL: /app/tests/{test_id}.

Resource ID

Open the test detail view, go to the Entities tab, and click on any entity. The Resource ID is displayed at the top of the detail modal with a copy button. This is the provider’s identifier (e.g., AWS ARN, GitHub repository name, Okta user login).