Code and technical data displayed on a screen

DOCUMENTATION

Eyecosystems Data API

REST API for human-verified BVI accessibility data and ADA Title II compliance. JSON responses, API-key auth, weekly-updated records.

Getting Started

The Eyecosystems API provides programmatic access to our human-verified BVI community knowledge graph. All responses are JSON. The API is versioned — the current version is v1.

To get started, you'll need an API key. Keys are issued to Core and Enterprise subscribers. Contact us to get access.

Base URL https://api.eyecosystems.com/v1

All requests must be made over HTTPS. HTTP requests will be rejected. All responses use UTF-8 encoding.

Authentication

Authenticate by passing your API key in the Authorization header as a Bearer token. All requests require a valid API key.

HTTP Header
Authorization: Bearer YOUR_API_KEY
cURL
curl https://api.eyecosystems.com/v1/records \
  -H "Authorization: Bearer YOUR_API_KEY"

To obtain an API key, contact the Eyecosystems team. Keys are issued per subscriber and should be kept confidential. Do not expose your key in client-side code.

Endpoints

All endpoints return JSON. Paginated list responses include total, limit, offset, and data fields.

GET /records

List all verified records. Supports filtering by city, state, and organization type. Results are paginated.

Parameter Type Description
citystringFilter by city name (e.g. Jacksonville)
statestringFilter by two-letter state code (e.g. FL)
typestringFilter by organization type (e.g. nonprofit_advocacy)
limitintegerNumber of results per page. Default: 25. Max: 100
offsetintegerPagination offset. Default: 0
cURL
curl "https://api.eyecosystems.com/v1/records?city=Jacksonville&state=FL&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON Response
{
  "total": 352,
  "limit": 10,
  "offset": 0,
  "data": [
    {
      "eyeco_id": "jax-0001",
      "name": "Eye Spy Foundation",
      "type": "nonprofit_community",
      "verified_at": "2026-04-08T14:32:00Z",
      "verifier": "human_bvi_reviewer",
      "city": "Jacksonville",
      "state": "FL",
      "contact_verified": true,
      "tags": ["community", "bvi", "ada-compliance"],
      "compliance_use": "good_faith_documentation",
      "verification_method": "human_eye_spy_network",
      "provenance_hash": "sha256:e3b0c44...",
      "far_part_13_eligible": true
    }
  ]
}
GET /records/:id

Retrieve a single record by its eyeco_id. Returns the full record including all verified fields and audit metadata.

cURL
curl "https://api.eyecosystems.com/v1/records/jax-0042" \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON Response
{
  "eyeco_id": "jax-0042",
  "name": "Florida Council of the Blind — Jacksonville Chapter",
  "type": "nonprofit_advocacy",
  "verified_at": "2026-04-08T14:32:00Z",
  "verifier": "human_bvi_reviewer",
  "city": "Jacksonville",
  "state": "FL",
  "contact_verified": true,
  "tags": ["advocacy", "peer-support", "ada-compliance"],
  "updated_at": "2026-04-08T14:32:00Z",
  "compliance_use": "good_faith_documentation",
  "verification_method": "human_eye_spy_network",
  "provenance_hash": "sha256:e3b0c44...",
  "far_part_13_eligible": true
}
GET /records/search

Full-text search across record names, tags, and descriptions. Returns ranked results matching the query.

Parameter Type Description
qstringSearch query string (required)
citystringOptionally scope results to a city
statestringOptionally scope results to a state
limitintegerResults per page. Default: 25
offsetintegerPagination offset. Default: 0
cURL
curl "https://api.eyecosystems.com/v1/records/search?q=peer+support&state=FL" \
  -H "Authorization: Bearer YOUR_API_KEY"

Data Schema

Every record in the Eyecosystems knowledge graph shares a common schema. All fields below are present on every record, though some may be null if not yet verified.

Field Type Description
eyeco_id string Unique Eyecosystems record identifier. Format: {city_code}-{sequence}
name string Full verified name of the organization, service, or resource
type string Organization type. Values: nonprofit_advocacy, nonprofit_community, government_service, assistive_tech, education, peer_support, event
verified_at ISO 8601 datetime Timestamp of the most recent human verification
verifier string Verification method identifier. Currently always human_bvi_reviewer
city string City of the organization's primary location
state string Two-letter US state code
contact_verified boolean true if contact information has been verified in this verification cycle
tags array of strings Taxonomy tags for filtering and discovery. Examples: advocacy, peer-support, ada-compliance
updated_at ISO 8601 datetime Timestamp of the last record update (any field change)
compliance_use string Designates the record's utility for ADA Title II and HHS 504 transition plans and good faith documentation
verification_method string The specific human-in-the-loop audit method used (e.g., human_eye_spy_network)
provenance_hash string Cryptographic hash of the verification event for immutable audit trailing
far_part_13_eligible boolean Indicates if the data node was procured under federal micro-purchase thresholds

Rate Limits

Rate limits are enforced per API key. Exceeding the limit returns a 429 Too Many Requests response. The Retry-After header indicates when you may retry.

Core Verification
100 req/min
Standard rate limit (100 req/min) for all Core subscribers. Suitable for GovTech platform integrations and compliance dashboards.
Enterprise & AI Integration
Custom
Custom rate limits negotiated per Enterprise Data Access Agreement. Built for high-volume API ingestion, LLM fine-tuning, and AI Copilot integrations.

All API responses include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers so you can monitor your usage in real time.

Support

Have a question about the API, a data issue, or need help with integration? We respond to all support requests within one business day.

Email: contact@eyecosystems.com

For partnership or Enterprise inquiries, use the contact form and select "Data Access" as the purpose.

To get an API key, you'll need an active Core or Enterprise subscription. View pricing and book a demo →