API Reference
Compliance API
API reference for running compliance scans and retrieving results.
Compliance API#
Trigger Compliance Scan#
POST
/v1/projects/:id/compliance— Requires authentication
Starts an asynchronous compliance scan for a project. The scan checks 40+ rules across privacy, security, metadata, functionality, accessibility, and monetization.
Path Parameters#
| Name | Type | Required | Description |
|------|------|----------|-------------|
| id | string | Yes | The project ID. |
Response#
{
"scanId": "scan_def456",
"status": "scanning"
}
Example#
curl -X POST \
-H "Authorization: Bearer sk_stora_..." \
https://stora.sh/api/v1/projects/proj_abc123/compliance
Note: Compliance scans typically complete in under 60 seconds. For projects with source code connected, the scan performs deeper analysis including dependency auditing and code-level checks.
Get Compliance Results#
GET
/v1/projects/:id/compliance/:scanId— Requires authentication
Returns the results of a completed compliance scan.
Path Parameters#
| Name | Type | Required | Description |
|------|------|----------|-------------|
| id | string | Yes | The project ID. |
| scanId | string | Yes | The scan ID returned by the trigger endpoint. |
Response#
{
"scanId": "scan_def456",
"status": "completed",
"overallScore": 87,
"issues": [
{
"severity": "error",
"category": "privacy",
"title": "Missing privacy policy URL",
"description": "No privacy policy link was found in the app or store listing.",
"recommendation": "Add a privacy policy URL in your app's settings screen and in the App Store metadata."
},
{
"severity": "warning",
"category": "metadata",
"title": "Description too short",
"description": "The app description is 120 characters. Apple recommends at least 300 characters.",
"recommendation": "Expand the description to highlight key features, use cases, and differentiators."
},
{
"severity": "info",
"category": "accessibility",
"title": "VoiceOver labels missing on 3 screens",
"description": "Some interactive elements lack accessibility labels.",
"recommendation": "Add accessibility labels to all buttons, images, and interactive controls."
}
],
"submissionReadiness": "needs_review"
}
Status Values#
| Status | Description |
|---|---|
| scanning | The scan is in progress. |
| completed | The scan finished. Results are available. |
| failed | The scan encountered an error. |
Issue Severity Levels#
| Severity | Meaning |
|---|---|
| error | Likely to cause rejection. Must fix before submission. |
| warning | May cause rejection or negatively impact listing. Should fix. |
| info | Best practice recommendation. Optional but beneficial. |
Submission Readiness#
| Value | Meaning |
|---|---|
| ready | No blocking issues found. Safe to submit. |
| needs_review | Warnings exist. Review them before submitting. |
| not_ready | Critical errors found. Fix them before submitting. |
Example#
curl -H "Authorization: Bearer sk_stora_..." \
https://stora.sh/api/v1/projects/proj_abc123/compliance/scan_def456