Overview

All list endpoints return paginated results to ensure optimal performance and manageable response sizes.

Request Parameters

page
integer
default:"1"
The page number to retrieve. Pages are 1-indexed.
per_page
integer
default:"50"
Number of items per page. Maximum value is 100.

Response Format

Paginated responses include metadata about the results:
{
  "success": true,
  "data": {
    "object": "list",
    "data": [...], // Array of items
    "has_more": true,
    "total": 245,
    "page": 1,
    "per_page": 50,
    "total_pages": 5
  },
  "meta": {
    "version": "v1",
    "response_time": "23.45ms"
  }
}

Response Fields

FieldTypeDescription
objectstringAlways “list” for paginated responses
dataarrayThe requested items
has_morebooleanWhether more pages exist
totalintegerTotal number of items
pageintegerCurrent page number
per_pageintegerItems per page
total_pagesintegerTotal number of pages

Examples

Basic Pagination

Request the first page with default page size:
curl https://api.contazen.ro/v1/clients \
  -H "Authorization: Bearer YOUR_API_KEY"

Custom Page Size

Request 20 items per page:
curl "https://api.contazen.ro/v1/clients?per_page=20" \
  -H "Authorization: Bearer YOUR_API_KEY"
Get page 3 of results:
curl "https://api.contazen.ro/v1/clients?page=3&per_page=20" \
  -H "Authorization: Bearer YOUR_API_KEY"

Best Practices

Code Examples

async function getAllClients(apiKey) {
  const clients = [];
  let page = 1;
  let hasMore = true;
  
  while (hasMore) {
    const response = await fetch(
      `https://api.contazen.ro/v1/clients?page=${page}&per_page=100`,
      {
        headers: {
          'Authorization': `Bearer ${apiKey}`
        }
      }
    );
    
    const data = await response.json();
    clients.push(...data.data.data);
    
    hasMore = data.data.has_more;
    page++;
  }
  
  return clients;
}

Performance Tips

  1. Cache Results: Store paginated results when data doesn’t change frequently
  2. Parallel Requests: Fetch multiple pages simultaneously when order doesn’t matter
  3. Progressive Loading: Load initial page quickly, fetch more as needed
  4. Use Filters: Combine pagination with filters to reduce dataset size