API Reference Overview
The Nymbl API is a RESTful API that implements a subset of the OData v4 protocol.
Base URL
Standard OData Endpoints
Service Document
Returns a list of all available entity sets (resources).
Metadata Document
Returns the complete schema definition in EDMX format, including:
- Entity types and their properties
- Navigation properties and relationships
- Data types and constraints
- Capabilities and annotations
HTTP Methods
| Method | Usage | Supported On |
|---|---|---|
GET |
Retrieve resource(s) | All entity sets |
POST |
Upload a document | Documents |
PATCH |
Not supported | - |
PUT |
Not supported | - |
DELETE |
Not supported | - |
Request Headers
Required Headers
Recommended Headers
Response Format
All responses are in JSON format following OData conventions.
Success Response
{
"@odata.context": "https://api.nymbldev.com/$metadata#Patients",
"value": [
{
"patient_id": 12345,
"first_name": "John",
"last_name": "Smith",
"date_of_birth": "1980-05-15"
}
]
}
Single Entity Response
{
"@odata.context": "https://api.nymbldev.com/$metadata#Patients/$entity",
"patient_id": 12345,
"first_name": "John",
"last_name": "Smith",
"date_of_birth": "1980-05-15"
}
Error Response
{
"error": {
"code": "InvalidFilter",
"message": "The query specified in the URI is not valid.",
"details": "Property 'invalid_field' does not exist on type 'Patient'"
}
}
HTTP Status Codes
| Code | Meaning | When Used |
|---|---|---|
| 200 | OK | Successful GET |
| 400 | Bad Request | Invalid query syntax |
| 401 | Unauthorized | Missing or invalid access token |
| 403 | Forbidden | Insufficient permissions |
| 404 | Not Found | Resource not found |
| 500 | Internal Server Error | Server-side error |
Rate Limits
The API enforces the following limits:
- Page Size: Maximum 100 records per request
- Expand Depth: Maximum 3 levels of nested expansion
- Request Rate: 2–5 requests/second sustained (depending on plan), with burst allowances
Exceeding the rate limit returns a 429 Too Many Requests response. See Limits & Quotas for full details by plan and quota tier.
Data Types
| OData Type | JSON Type | Example |
|---|---|---|
| Edm.String | string | "John Smith" |
| Edm.Int32 | number | 12345 |
| Edm.Decimal | string | "99.99" |
| Edm.Boolean | boolean | true |
| Edm.Date | string | "2024-01-15" |
| Edm.DateTimeOffset | string | "2024-01-15T10:30:00Z" |
Common Patterns
Retrieve All Records
Because the API returns a maximum of 100 records per request, use $count, $top, and $skip to page through the full dataset.
First page — request total count:
Response:
{
"@odata.context": "https://api.nymbldev.com/$metadata#Patients",
"@odata.count": 1500,
"value": [ ... ]
}
Use @odata.count to determine how many pages remain: ceil(1500 / 100) = 15 pages.
Subsequent pages — increment $skip by 100 each request:
See the Pagination Guide for a complete code example.
Retrieve Single Record
OpenAPI Specification
Download the OpenAPI 3.0 specification:
This can be imported into tools like Postman, Swagger UI, or used to generate client SDKs.