Substy Developers

Requests and pagination

Send ordinary JSON requests and follow each endpoint’s pagination contract.

The production base URL is https://api.substy.ai. Versioned application routes begin with /v1.

Path, query, and body

Agency and resource identifiers belong in the URL. Send the remaining input fields directly as JSON for operations that accept a body. Use Content-Type: application/json. Do not wrap fields inside an input object.

For GET requests, use query parameters. Numbers and booleans use their textual values; arrays repeat the same parameter; object parameters use JSON encoded as one query value. The reference specifies the exact encoding for each endpoint.

?limit=20&active=true&ids=first&ids=second

Path identifiers cannot be overridden through the body or query. Unknown fields and incorrect types are rejected with a validation error.

Responses

{
  "data": {},
  "meta": {
    "requestId": "request-identifier"
  }
}

The contents of data depend on the endpoint. Write responses can also include meta.operationId and meta.status. Responses exclude creator connection secrets and internal authentication material.

Pagination

Pagination is endpoint-specific. Use the fields shown in the endpoint reference instead of assuming every endpoint supports page, offset, or a cursor.

Inbox listing returns an opaque continuation cursor. Pass it back unchanged with the same creator and filters; null means there are no further results. Never derive activity order from fan identifiers or assume every list is ordered by recent activity.

Request sizes

The normal JSON request limit is 8 MiB. Account image and agency logo upload routes allow a 14 MiB JSON body to accommodate base64 encoding of an image up to 10 MiB. A larger request receives 413.

Dates and media

Follow the endpoint schema for timestamps, ranges, and time zones. Use returned media URLs as provided: platform media can require Substy’s proxy, and raw OnlyFans CDN links are not interchangeable with proxied URLs.

On this page