Skip to content
NEWSADA Title II web deadlines: April 24, 2026 (50k+ pop) · April 26, 2027 (under 50k) — Is your site compliant?ADA Title II: April 2026 & 2027 deadlinesLearn more →

API Endpoints

All endpoints are prefixed with https://api.angstroma.com/api/v1. All requests require X-Api-Key: your-key.

Profiles

Profiles store a user's accessibility preferences. The userId is your system's user identifier — any string up to 256 characters.

GET/profiles/{userId}Get full profile with feature settings
GET/profiles/{userId}/active-featuresGet only enabled features (lightweight)
PUT/profiles/{userId}Update feature settings (bulk, creates if not exists)
POST/profiles/{userId}/apply-presetApply a named preset to the profile
DELETE/profiles/{userId}Delete profile and all settings

Get profile

curl https://api.angstroma.com/api/v1/profiles/user_123 \
  -H "X-Api-Key: ang_live_YOUR_KEY"

Response:

{
  "exists": true,
  "userId": "user_123",
  "activePresetCode": "dyslexia-friendly",
  "selfServiceEnabled": true,
  "gradeLevel": 8,
  "configuredBy": "System",
  "features": [
    { "featureCode": "reading_mask", "isEnabled": true, "value": null, "setBy": "System" },
    { "featureCode": "text_zoom", "isEnabled": true, "value": "150", "setBy": "System" }
  ]
}

Update profile

curl -X PUT https://api.angstroma.com/api/v1/profiles/user_123 \
  -H "X-Api-Key: ang_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "features": [
      { "featureCode": "reading_mask", "isEnabled": true },
      { "featureCode": "large_cursor", "isEnabled": true },
      { "featureCode": "text_zoom", "isEnabled": true, "value": "150" }
    ],
    "setBy": "System"
  }'

Apply preset

curl -X POST https://api.angstroma.com/api/v1/profiles/user_123/apply-preset \
  -H "X-Api-Key: ang_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "presetCode": "dyslexia-friendly",
    "clearExisting": false,
    "gradeLevel": 8
  }'

Features & Presets

GET/featuresList all 83 accessibility tools
GET/features/{code}Get a single feature by code
GET/presetsList all available presets
GET/presets/{code}Get a preset with feature list

Analytics

GET/analyticsTenant-level usage statistics
POST/analytics/logLog a feature activation event

Log feature usage

The SDK calls this automatically when trackUsage is enabled. You can also call it directly for custom feature implementations.

curl -X POST https://api.angstroma.com/api/v1/analytics/log \
  -H "X-Api-Key: ang_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "featureCode": "reading_mask",
    "externalUserId": "user_123",
    "action": "activated"
  }'

AI Content Transforms

AI endpoints require a plan with AI credits.

POST/content/simplifySimplify text to a target reading level
POST/content/alt-textGenerate alt text for an image URL
POST/content/hintsGet scaffolded hints for a question
POST/content/rephraseRephrase a question/answer pair
POST/content/vocabularyExtract vocabulary words from text
POST/content/summarizeSummarize a passage
POST/content/translateTranslate text to a target language
POST/content/grammarCheck and correct grammar
POST/content/ocrExtract text from an image URL

Simplify text

curl -X POST https://api.angstroma.com/api/v1/content/simplify \
  -H "X-Api-Key: ang_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "The mitochondria is the powerhouse of the cell.",
    "targetGradeLevel": 5
  }'

Response:

{
  "result": "The mitochondria makes energy for the cell, like a battery.",
  "wasCached": false,
  "tokensUsed": 48
}

WCAG Scanner

POST/scanner/jobsSubmit a URL for WCAG scanning
GET/scanner/jobsList scan jobs
GET/scanner/jobs/{jobId}Get scan job status and results
GET/scanner/jobs/{jobId}/issuesList all issues found in a scan

Compliance

GET/compliance/targetsList compliance targets
POST/compliance/targetsCreate a compliance target
GET/compliance/snapshotsList compliance snapshots
POST/compliance/snapshotsCreate a snapshot
GET/compliance/reportsList generated reports
POST/compliance/reportsGenerate a VPAT or compliance report
GET/compliance/reports/{id}/downloadDownload a report PDF

Tenants & Team

GET/tenantsList tenants the current user belongs to
GET/tenants/{id}Get a tenant by ID
PUT/tenants/{id}Update tenant settings
GET/membersList team members
POST/members/inviteInvite a team member
DELETE/members/{id}Remove a team member

API Keys

GET/tenants/{id}/api-keysList API keys (hashed, never raw)
POST/tenants/{id}/api-keysCreate API key (raw key returned once)
DELETE/tenants/{id}/api-keys/{keyId}Revoke an API key

Health

GET/healthAPI health check (no auth required)