Dates

Use ISO 8601 datetime strings for scheduled post times.

2026-07-01T09:00:00Z

Use UTC when possible. If you generate local times in your app, convert them to a timezone-aware ISO string before sending the request.

Pagination

List endpoints can accept pagination parameters such as page and perPage when supported by the endpoint.

Use small page sizes for user-facing interfaces and larger page sizes only for background jobs that can tolerate slower responses.

Media URLs

Post media URLs must be absolute URLs that Ocoya can fetch.

https://example.com/image.jpg

Avoid private URLs, expiring URLs with very short lifetimes, and files that require cookies or custom request headers.

Brand-Scoped Requests

Most publishing and workflow operations need a brandId.

Use GET /brands first, then pass the selected brand ID to endpoints such as:

  • GET /brands/{brandId}
  • GET /channels
  • GET /post
  • POST /post
  • POST /post/ai
  • GET /campaigns
  • POST /campaigns
  • GET /workflow

Channel IDs

Use GET /channels?brandId=BRAND_ID to find the channelIds that posts should target.

Only use profiles connected to the same brand as the post.