Development

API Reference

Overview of the Envision Portal REST API.

Envision Portal exposes a REST API under /api/. Interactive API documentation is available via Scalar at /api-docs when the server is running.

All API routes use JSON for request and response bodies. Protected routes require an active session cookie obtained by logging in via POST /api/auth/login.

The API surface supports current platform workflows and is expected to expand as discovery, automation, and AI-assist capabilities mature.

Authentication

MethodPathDescription
POST/api/auth/signupRegister a new user (requires a valid platform invitation)
POST/api/auth/loginLog in and create a session
POST/api/auth/verify-emailVerify a user's email address with a token

Datasets

MethodPathDescription
GET/api/datasetsList datasets accessible to the current user
POST/api/datasetsCreate a new dataset
GET/api/datasets/[datasetId]Get dataset details
POST/api/datasets/[datasetId]/new-versionCreate a new version of a dataset

Dataset Metadata

Each metadata section supports GET and PUT:

PathSection
/api/datasets/[datasetId]/metadata/general-informationGeneral information
/api/datasets/[datasetId]/metadata/aboutAbout
/api/datasets/[datasetId]/metadata/identifiersIdentifiers
/api/datasets/[datasetId]/metadata/related-identifiersRelated identifiers
/api/datasets/[datasetId]/metadata/access-rightsAccess rights
/api/datasets/[datasetId]/metadata/data-managementData management
/api/datasets/[datasetId]/metadata/teamTeam / contributors

Study Metadata

Each study metadata section supports GET and PUT:

PathSection
/api/datasets/[datasetId]/study/metadata/aboutStudy summary
/api/datasets/[datasetId]/study/metadata/designStudy design
/api/datasets/[datasetId]/study/metadata/statusStudy status
/api/datasets/[datasetId]/study/metadata/armsStudy arms
/api/datasets/[datasetId]/study/metadata/interventionsInterventions
/api/datasets/[datasetId]/study/metadata/eligibilityEligibility criteria
/api/datasets/[datasetId]/study/metadata/contactsContacts
/api/datasets/[datasetId]/study/metadata/officialsOfficials
/api/datasets/[datasetId]/study/metadata/locationsLocations
/api/datasets/[datasetId]/study/metadata/teamStudy team

Healthsheet

Each healthsheet section supports GET and PUT:

PathSection
/api/datasets/[datasetId]/healthsheet/motivationMotivation
/api/datasets/[datasetId]/healthsheet/compositionComposition
/api/datasets/[datasetId]/healthsheet/collectionCollection
/api/datasets/[datasetId]/healthsheet/preprocessingPreprocessing
/api/datasets/[datasetId]/healthsheet/distributionDistribution
/api/datasets/[datasetId]/healthsheet/usesUses
/api/datasets/[datasetId]/healthsheet/maintenanceMaintenance

Files

MethodPathDescription
GET/api/datasets/[datasetId]/filesList files in a dataset
GET/api/datasets/[datasetId]/uploadGet upload configuration

Publishing

MethodPathDescription
GET/api/datasets/[datasetId]/publishGet publishing status
GET/api/datasets/[datasetId]/publish/dataset-metadataGet metadata for review
GET/api/datasets/[datasetId]/publish/study-metadataGet study metadata for review
GET/api/datasets/[datasetId]/publish/readmeGet README for review
GET/api/datasets/[datasetId]/publish/changelogGet changelog for review
POST/api/datasets/[datasetId]/publish/finalizeFinalize and publish

Access Requests

MethodPathDescription
GET/api/datasets/[datasetId]/requestsList requests for a dataset
GET/api/datasets/[datasetId]/requests/[requestId]Get a specific request
GET/api/requestsList all requests for the current user
GET/api/requests/[requestId]Get a specific user request

Discover (Public)

MethodPathDescription
GET/api/discover/datasetList public datasets
POST/api/discover/dataset/externalRegister an external dataset
GET/api/discover/dataset/[datasetid]Get a public dataset
GET/api/discover/dataset/[datasetid]/datasetIndexGet the dataset file index
POST/api/discover/dataset/[datasetid]/access/publicSubmit a public access request
GET/api/discover/dataset/[datasetid]/access/public/[requestid]Check public request status
POST/api/discover/dataset/[datasetid]/access/request-controlledSubmit a controlled access request

As the platform evolves, discovery APIs are expected to support richer filtering and indexing metadata for ophthalmic modalities, disease focus, and interoperability signals.

Notifications

MethodPathDescription
GET/api/notificationsList notifications for the current user
POST/api/notifications/[notificationId]Mark a notification as read
DELETE/api/notifications/[notificationId]Delete a notification

Contact

MethodPathDescription
POST/api/contactSubmit a contact form message
Copyright © 2026