1. API Reference
  2. api-reference/api-design-philosophy

​
API Design Philosophy

GET methods use search parameters instead of resource URLs for composability and flexibility. URLs like ...?id=123121 allow for more flexible querying patterns.

​
Always an Array

All HTTP methods (GET, POST, PUT, DELETE) accept or return arrays to enable batch operations. This design allows for efficient bulk processing of resources.

​
Summary vs Detail

GET endpoints support list_type=detail or list_type=summary to control the level of information returned:

  • Detail: Full resource information including all nested objects and relationships
  • Summary: Condensed resource information with key fields only

​
GET, POST, PUT, DELETE, No Patch

The API follows a simplified REST approach:

  • GET: Retrieve resources using search parameters
  • POST: Create new resources
  • PUT: Update existing resources (full replacement of records)
  • DELETE: Remove resources
  • No PATCH: Full object replacement is required for updates

​
Error Handling

Bulk operations return HTTP 200 with individual success/failure status for each object in the batch:

{
  "records_submitted": 3,
  "records_processed": 3, 
  "records_failed": 1,
  "records_succeeded": 2,
  "results": [
    {
      "customer_identifier": "item1",
      "status": "success"
    },
    {
      "customer_identifier": "item2", 
      "status": "failure",
      "reason": "Validation error"
    },
    {
      "customer_identifier": "item3",
      "status": "success"
    }
  ]
}

​
Date Time Format

All date/time values conform to the RFC3339 standard format:

2018-08-05T17:32:28Z
2018-12-11T15:53:23.095637Z

This ensures consistent date handling across all API endpoints and integrations.