Skip to main content

API Reference

The Ciyex Hub Marketplace API provides endpoints for browsing apps, managing subscriptions, and configuring installations.

Base URL​

Production: https://ciyexhub.com/api/v1
Development: http://localhost:8081/api/v1

Authentication​

Most read endpoints (app catalog) are public and require no authentication.

Write endpoints (subscriptions, configuration) require a Bearer token from Keycloak:

Authorization: Bearer <jwt-token>

App Catalog​

List Apps​

GET /api/v1/apps?category={category}&page={page}&size={size}&sort={sort}

Query Parameters:

ParameterTypeDefaultDescription
categorystring—Filter by category
pageint0Page number
sizeint20Page size
sortstringnameSort field

Response: Page<AppDto>

Search Apps​

GET /api/v1/apps/search?q={query}&category={category}

Get App Details​

GET /api/v1/apps/{slug}
GET /api/v1/apps/featured

Get Categories​

GET /api/v1/apps/categories

Get App Pricing​

GET /api/v1/apps/{slug}/pricing

Subscriptions​

Create Subscription​

POST /api/v1/subscriptions
Authorization: Bearer <token>
Content-Type: application/json

{
"appSlug": "ciyex-telehealth",
"orgAlias": "my-practice",
"pricingPlanId": "uuid-of-plan"
}

Cancel Subscription​

POST /api/v1/subscriptions/{id}/cancel
Authorization: Bearer <token>

Get Subscriptions​

GET /api/v1/subscriptions?orgAlias={orgAlias}
Authorization: Bearer <token>

App Installations (ciyex-api)​

These endpoints are on the EHR API, not the marketplace.

List Installed Apps​

GET /api/app-installations
Authorization: Bearer <token>

Get Installation​

GET /api/app-installations/{appSlug}
Authorization: Bearer <token>

Check if Installed​

GET /api/app-installations/{appSlug}/installed
Authorization: Bearer <token>

Update Configuration​

PUT /api/app-installations/{appSlug}/config
Authorization: Bearer <token>
Content-Type: application/json

{
"key": "value"
}

Log App Launch​

POST /api/app-installations/{appSlug}/launch
Authorization: Bearer <token>
Content-Type: application/json

{
"patientId": "uuid",
"encounterId": "uuid",
"launchType": "native"
}

Response Format​

All EHR API endpoints return a standard response wrapper:

{
"success": true,
"message": "Apps retrieved successfully",
"data": [ ... ]
}

Error responses:

{
"success": false,
"message": "App not found",
"data": null
}