Skip to main content

Evidence API

Manage evidence artifacts that demonstrate control implementation.

List Evidence​

GET /api/v1/evidence

Returns evidence artifacts for the authenticated organization.

Query Parameters​

ParameterTypeDefaultDescription
limitinteger50Maximum results (1-200)
offsetinteger0Pagination offset
statusstring-Filter: pending, validated, rejected
source_typestring-Filter: screenshot, document, api_export, log, configuration
requirement_idUUID-Filter by evidence requirement

Example Request​

curl "https://api.clawgrc.com/api/v1/evidence?status=validated&limit=10" \
-H "Authorization: Bearer YOUR_TOKEN"

Example Response​

{
"evidence": [
{
"id": "ev-uuid",
"org_id": "org-uuid",
"requirement_id": "req-uuid",
"source_type": "screenshot",
"source_identifier": "AWS IAM MFA Policy - Production",
"storage_path": "evidence/org-uuid/ev-uuid/iam-mfa.png",
"file_hash": "sha256:a1b2c3d4e5f6...",
"collected_at": "2025-01-10T10:00:00Z",
"validated_at": "2025-01-10T14:00:00Z",
"status": "validated",
"metadata": {
"aws_account": "123456789012",
"region": "us-east-1"
},
"created_at": "2025-01-10T10:00:00Z",
"updated_at": "2025-01-10T14:00:00Z"
}
],
"total": 245,
"limit": 10,
"offset": 0
}

Create Evidence​

POST /api/v1/evidence

Upload a new evidence artifact.

Request Body​

FieldTypeRequiredDescription
source_typestringYesscreenshot, document, api_export, log, configuration, certificate, report
source_identifierstringYesHuman-readable label for the artifact
requirement_idUUIDNoLink to an evidence requirement
storage_pathstringNoStorage path for the uploaded file
file_hashstringNoSHA-256 hash of the file content
collected_atdatetimeNoWhen the evidence was collected (defaults to now)
metadataobjectNoArbitrary metadata

Example Request​

curl -X POST https://api.clawgrc.com/api/v1/evidence \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"source_type": "screenshot",
"source_identifier": "AWS IAM MFA Policy - Production",
"requirement_id": "req-uuid-here",
"metadata": {
"aws_account": "123456789012",
"region": "us-east-1"
}
}'

Example Response (201 Created)​

{
"id": "ev-uuid",
"org_id": "org-uuid",
"source_type": "screenshot",
"source_identifier": "AWS IAM MFA Policy - Production",
"status": "pending",
"created_at": "2025-01-15T14:30:00Z"
}

Get Evidence​

GET /api/v1/evidence/:id

Returns a single evidence artifact by ID.

Error Responses​

StatusDescription
404Evidence artifact not found

Update Evidence​

PUT /api/v1/evidence/:id

Update evidence metadata or status. Used for validating or rejecting evidence.

Request Body​

FieldTypeDescription
statusstringpending, validated, or rejected
source_identifierstringUpdate the label
metadataobjectUpdate metadata

Example Request​

curl -X PUT https://api.clawgrc.com/api/v1/evidence/ev-uuid \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "validated"
}'

Delete Evidence (Soft Delete)​

DELETE /api/v1/evidence/:id

Soft-deletes an evidence artifact. Sets deleted_at timestamp but preserves the record for audit trail integrity.

Example Request​

curl -X DELETE https://api.clawgrc.com/api/v1/evidence/ev-uuid \
-H "Authorization: Bearer YOUR_TOKEN"

Response (204 No Content)​

No body returned.