Skip
Purpose
- The
$skipparameter defines how many results should be skipped, allowing pagination in the result set.
Key Points
- It is used with
$topto implement limit and offset paging.
Syntax of $skip Expression
- The expression follows the format:
NUMBER_OF_ITEMS_TO_BE_SKIPPED
- Example
$skip=10
How to Use $skip in a Request
- Add the
$skipparameter to specify how many items should be skipped.
http://api2.saleslayer.com/rest/Catalog/Families/?$select=typ_title,typ_stat,typ_modify,typ_creation&$skip=1
Response Format
- When building your API request, add the
$skipparameter to specify how many items should be skipped.
{
"value": [
{
"typ_stat": "V",
"typ_title": "AV-Air Velocity",
"typ_modify": "2023-11-23T13:35:59",
"typ_creation": "2023-11-23T13:35:59"
}
],
"@count": 2,
"@readLink": "https://catalog-rest.kp.saleslayer.com/rest/Catalog/Families/?$select=typ_title,typ_stat,typ_modify,typ_creation&$skip=1"
}SkipToken
Purpose
- The
$skipTokenparameter allows continuation token-based pagination for fetching data.
Key Points
- It is recommended when no sorting is applied and for faster pagination.
- The continuation token is provided by the API in the response when paging is available.
Syntax of $skipToken Expression
- The expression follows the format:
CONTINUATION_TOKEN
- Example of retrieved
$skipToken
$skipToken=5
How to Use $skipToken in a Request
- When constructing your API request, add the
$skipTokenparameter to continue fetching the next set of results.
http://api2.saleslayer.com/rest/Catalog/Products?$select=prod_ref,cat_ref,prod_title&$skipToken=5&$top=5
Response Format
- When you use
$top, the response will contain the skipToken as@nextLink.
{
"value": [
{
"prod_ref": "MyPer",
"prod_title": {
"en": "My Personify"
}
},
{
"prod_ref": "CuMoApp",
"prod_title": {
"en": "Custom Mobile Apps"
}
},
{
"prod_ref": "Atrius",
"prod_title": {
"en": "Atrius"
}
},
{
"prod_ref": "Builder",
"prod_title": {
"en": "Builder"
}
},
{
"prod_ref": "X-pressP",
"prod_title": {
"en": "X-press gfx Points"
}
}
],
"@count": 11,
"@readLink": "http://api2.saleslayer.com/rest/Catalog/Products?$select=[prod_ref,cat_ref,prod_title]&$top=[5]",
"@nextLink": "http://api2.saleslayer.com/rest/Catalog/Products?$select=prod_ref,cat_ref,prod_title&$skipToken=5&$top=5"
}Top
Purpose
- The
$topparameter defines the maximum number of items returned in the result set.
Key Points
- It is typically used with
$skipfor limit and offset paging. - The default maximum page size is 100 items for most resources.
Syntax of $top Expression
- The expression follows the format:
NUMBER_OF_ITEMS_TO_RETURN
- Example for retrieving only the first 5 products.
$top=5
How to Use $top in a Request
- When constructing your API request, add the
$topparameter to control pagination.
http://api2.saleslayer.com/rest/Catalog/Products?$select=prod_ref,cat_ref,prod_description&$top=1
Response Format
- The response will return only the number of results defined by the
$topparameter.
{
"value": [
{
"prod_ref": "X-pressP",
"cat_ref": "DE",
"prod_description": {
"en": "X-press gfx Points"
}
}
],
"@count": 11,
"@readLink": "http://api2.saleslayer.com/rest/Catalog/Products?$select=prod_ref,cat_ref,prod_description&$top=1",
"@nextLink": "http://api2.saleslayer.com/rest/Catalog/Products?$select=prod_ref,cat_ref,prod_description&$skip=1&$top=1"
}Difference Between @nextLink and Incremental Synchronization
@nextLink is used exclusively for pagination.
It preserves the original query parameters and allows retrieving the next page of results.
Example:
GET /Products?$top=100
If more results are available, the response will include:
"@nextLink": "https://api2.saleslayer.com/rest/Catalog/Products?$skip=100"
Clients should continue requesting the provided @nextLink until no further link is returned.
Incremental Synchronization
Incremental synchronization is not based on @nextLink.
The API does not implement full OData delta token synchronization.
Incremental data retrieval must be implemented using OData $filter queries over modification date fields such as:
prod_modifyfrmt_modifycat_modify- The corresponding modification fields in custom entities
Example:
GET /Products?$filter=prod_modify ge 2026-03-01T00:00:00Z
Recommended Incremental Synchronization Pattern
For reliable incremental synchronization:
- Store the last processed modification timestamp.
- Use
ge(greater or equal) instead ofgt. - Treat the entity ID as the unique identifier and update existing records instead of inserting duplicates when processing incremental results.
- Treat timestamps as UTC ISO 8601 date-time values.
Default Ordering Behavior
If no $orderby parameter is specified, results are returned ordered by the entity ID field in ascending order.
Default ID fields per entity:
- Products →
prod_id - Variants →
frmt_id - Categories →
cat_id - Custom Entities → the entity-specific ID field
For predictable pagination behavior, it is recommended to explicitly specify $orderby when performing paginated queries.
Example:
GET /Products?$orderby=prod_id asc
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article