https://api.mouradsoft.com
Developer Platform
Mouradsoft API
Build against authenticated platform services for identity, workspace data, telemetry, and event automation with predictable status codes and typed payloads.
Authentication
Pass a bearer token with every request.
Use a server-side API key to request a short-lived access token, then send
that token through the Authorization header. Client applications
should never ship private API keys.
Authorization: Bearer ms_live_eyJhbGciOi...
Tokens expire after 60 minutes and can be refreshed through the auth endpoint.
Rate Limits & Errors
Status codes are consistent across services.
| Code | Meaning | Action |
|---|---|---|
200 |
Request completed successfully. | Read the returned resource or pagination cursor. |
400 |
Payload validation failed. | Check required fields, enum values, and malformed JSON. |
401 |
Missing, expired, or invalid credentials. | Refresh the token or verify the bearer header. |
429 |
Rate limit exceeded. | Back off and retry after the returned reset timestamp. |
Available Endpoints
Service categories for platform integration.
POST
/v1/auth
Exchange a private API key for a short-lived bearer token scoped to a workspace.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
api_key |
string | Required | Server-side key issued from the Mouradsoft developer console. |
workspace_id |
string | Required | Workspace identifier for the session scope. |
Response Fields
| Field | Type | Description |
|---|---|---|
access_token |
string | Bearer token used for subsequent API calls. |
expires_in |
number | Token lifetime in seconds. |
scope |
string | Granted permissions for the token. |
GET
/v1/data
Read workspace resources with cursor pagination and optional type filtering.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
type |
string | Optional | Filter records by device, project, or document. |
limit |
number | Optional | Number of records to return. Defaults to 25, maximum 100. |
cursor |
string | Optional | Pagination cursor returned by the previous response. |
Response Fields
| Field | Type | Description |
|---|---|---|
items |
array | Matching resources for the workspace. |
next_cursor |
string | null | Cursor for the next page when more data is available. |
POST
/v1/events
Send operational events from desktop agents, mobile apps, or automation services.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
event_type |
string | Required | Namespaced event key such as device.booted. |
source |
string | Required | Originating application, device, or integration name. |
payload |
object | Required | Structured event data. Nested JSON objects are supported. |
Response Fields
| Field | Type | Description |
|---|---|---|
event_id |
string | Unique identifier assigned to the accepted event. |
received_at |
string | ISO 8601 timestamp for ingestion time. |