Portal
API Conventions

Date and Time

UTC date-time and range-filter conventions.

FutureSMS API timestamps are UTC date-time values. Responses serialize date and time values with the Z suffix, and documented range filters should be sent in the same format.

Timestamp format

Use ISO 8601 UTC strings with a trailing Z.

Timestamp
{
  "created_at": "2026-03-25T10:30:00Z",
  "updated_at": "2026-03-25T10:31:48Z"
}
RuleMeaning
Time zoneUTC only.
SuffixUse Z, not a local offset.
Date and time separatorUse T.
Storage meaningReturned timestamps describe the platform event time, not the viewer's local time.

Display conversion belongs in your client. Keep API requests and stored integration state in UTC so retries, reconciliation, and support checks all use the same clock.

Range filters

List endpoints that support time filtering use explicit *_from and *_to parameters.

Created-at range
{
  "created_at_from": "2026-04-01T00:00:00Z",
  "created_at_to": "2026-04-01T23:59:59Z"
}
PatternMeaning
created_at_fromReturn records created at or after this time.
created_at_toReturn records created at or before this time.
updated_at_fromReturn records updated at or after this time.
updated_at_toReturn records updated at or before this time.

Other timestamp fields follow the same suffix pattern when an endpoint exposes them, such as started_at_from, completed_at_to, or reviewed_at_from.

Common fields

FieldTypical meaning
created_atWhen the resource or event was first recorded.
updated_atWhen the resource was last changed.
started_atWhen an asynchronous job or process began.
completed_atWhen an asynchronous job or process finished.
last_attempt_atWhen the latest delivery or callback attempt happened.

Not every endpoint exposes every field. Check the endpoint schema before adding a filter to production traffic.

Validation

Strict UTC endpoints reject ambiguous time values. Send 2026-04-01T00:00:00Z, not 2026-04-01 00:00:00, 2026-04-01T00:00:00+08:00, or a browser-local timestamp.

Validation error shape
{
  "error_code": "VALIDATION_ERROR",
  "reason": null,
  "message": "Validation failed",
  "details": "datetime must use UTC timezone suffix Z",
  "path": "/api/v1/sms/bulk-jobs",
  "timestamp": "2026-04-01T00:00:01Z",
  "request_id": "req_20260401_demo_0001"
}