POST /v1/clients with a name of 150 characters or fewer — there is no clients screen
A client record is the anchor for agency reporting work, and it is created only through the API — the dashboard has no clients screen, so nothing here has a click path to photograph.
Create#
POST /v1/clients with { name, primaryUrl?, brandProfileId?, defaultTemplateId? }. name is required and capped at 150 characters: an empty or longer name fails with Client name is required and must be 150 characters or fewer. primaryUrl is free-form context for the record (the site the work targets) and is stored as-is.
References are checked#
If you pass brandProfileId or defaultTemplateId, each must already exist in your workspace — the service looks the row up scoped to your tenant and rejects the save with Brand profile not found for this tenant. or Report template not found for this tenant. That keeps every client pointing only at brand profiles and report templates you own (see Create a brand profile).
Read it back#
The response carries { id, tenantId, name, brandProfileId, defaultTemplateId, primaryUrl, createdAt, updatedAt }. GET /v1/clients lists every record in the workspace and GET /v1/clients/:id fetches one — every later call (schedules, reports, deletion) scopes through this id and fails with Client not found for this tenant. when the id is not yours.

