Skip to main content

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

SettingDescription
NameUnique identifier for the property
TypeData type (string, integer, decimal, etc.)
RequiredIf true, must be provided on create
DefaultValue used when property is omitted
ValidationMin/max length or value constraints

Data Types

TypeDescription
stringText, max 1024 characters
integerWhole numbers (-2,147,483,648 to 2,147,483,647)
decimalDecimal numbers
booleantrue or false
dateDate only (YYYY-MM-DD)
date-timeDate and time in ISO 8601 format
guidUnique identifier (UUID format)
blobBinary data (files)
objectReference 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" }
]
}