Collections
Collections store your data as items with defined properties. Each collection becomes a RESTful endpoint.
Naming
- Unique within the API
- Case-sensitive
- Allowed characters: letters, digits, hyphens, underscores
- The name becomes the endpoint path
https://eu.restapi.com/my-api/products
└── collection name
note
Renaming a collection changes its endpoint path.
Properties
Each collection can have up to 25 properties.
Property Rules
- Unique names within the collection
- Case-sensitive
- Allowed characters: letters, digits, underscores
- Must begin with a letter
Property Configuration
| Setting | Description |
|---|---|
| Name | Unique identifier for the property |
| Type | Data type (string, integer, decimal, etc.) |
| Required | If true, must be provided on create |
| Default | Value used when property is omitted |
| Validation | Min/max length or value constraints |
Data Types
| Type | Description |
|---|---|
string | Text, max 1024 characters |
integer | Whole numbers (-2,147,483,648 to 2,147,483,647) |
decimal | Decimal numbers |
boolean | true or false |
date | Date only (YYYY-MM-DD) |
date-time | Date and time in ISO 8601 format |
guid | Unique identifier (UUID format) |
blob | Binary data (files) |
object | Reference to another model |
Lookup Properties
Create relationships between collections:
{
"name": "customer",
"type": "lookup",
"target": "customers"
}
Access related data in queries or via the select parameter:
?select=orderDate,total,customer.name,customer.email
Validation
Required Fields
Required properties must be included in POST/PUT requests:
{ "name": "email", "type": "string", "required": true }
Missing required fields return 400 Bad Request.
String Constraints
Limit string length:
{
"name": "title",
"type": "string",
"minLength": 1,
"maxLength": 100
}
Numeric Constraints
Set value boundaries:
{
"name": "quantity",
"type": "integer",
"min": 0,
"max": 1000
}
Default Values
Provide defaults for optional properties:
{
"name": "status",
"type": "string",
"default": "pending"
}
Defaults apply to POST and PUT operations when the property is omitted.
note
Default values don't apply to lookup properties.
Example Collection
{
"name": "products",
"properties": [
{ "name": "sku", "type": "string", "required": true },
{ "name": "name", "type": "string", "required": true, "maxLength": 200 },
{ "name": "description", "type": "string" },
{ "name": "price", "type": "decimal", "required": true, "min": 0 },
{ "name": "stock", "type": "integer", "default": 0, "min": 0 },
{ "name": "isActive", "type": "boolean", "default": true },
{ "name": "category", "type": "lookup", "target": "categories" },
{ "name": "image", "type": "blob" }
]
}