v1Resources/Clients/postCreate a client

Create a client

Creates a new client in your agency, plus a first location when address details resolve to a real place.

post/api/v1/clients
clients:write
Request body
businessNamestringrequired
The business name for the new client.
primaryContactEmailstringrequired
Email address of the client's primary contact.
primaryRepresentativeIdstringrequired
ID of the team member responsible for this client — see GET /api/v1/team/members for your agency's member ids.
websitestringoptional
The client's website URL.
industrystringoptional
The client's industry.
goalstring (improve_rankings | get_reviews | fix_listings)optional
The client's primary goal: improve_rankings, get_reviews, or fix_listings.
gbpLinkstringoptional
The client's Google Business Profile URL.
placeIdstringoptional
The client's Google Place id, from Google's Places API — Synup has no places lookup of its own. Also creates the client's first location — do not follow this with a separate location create for the same business.
latitudenumberoptional
The client location's latitude. Required alongside placeId and longitude to also track a keyword.
longitudenumberoptional
The client location's longitude.
googleRatingnumberoptional
The client's current Google star rating, if known.
googleReviewCountnumberoptional
The client's current Google review count, if known.
trackingKeywordstringoptional
A keyword to track the client's local search rank for. Requires placeId, latitude, and longitude to also be set.
clientPlanIdstringoptional
Which customer-portal plan to assign. Defaults to your agency's default plan. There's no endpoint that lists plans — read a valid id off an existing client's clientPlan.id, or your agency's plan settings in Synup.
notesstringoptional
An internal note about the client — visible only to your team, never to the client.
Response
dataobjectoptional
clientobjectoptional
Additional internal fields may be present but are not part of the stable contract — rely only on the fields documented here.
idstringoptional
Unique identifier for the client.
businessNamestringoptional
The client's business name.
websitestringoptional
The client's website URL.
industrystringoptional
The client's industry.
primaryContactEmailstringoptional
Email address of the client's primary contact.
primaryRepresentativeIdstringoptional
ID of the team member responsible for this client — see GET /api/v1/team/members for your agency's member ids.
visibilitystring (public | private)optional
Whether the client is public or private within your agency.
goalstring (improve_rankings | get_reviews | fix_listings)optional
The client's primary goal, or null.
notesstringoptional
An internal note about the client — visible only to your team, never to the client.
gbpLinkstringoptional
The client's Google Business Profile URL, or null.
trackingKeywordstringoptional
A keyword tracked for this client's local search rank, or null.
healthScorenumberoptional
A 0–100 score summarizing the client's account health, or null if not yet computed.
planNamestringoptional
Name of the plan this client is on, if any.
archivedbooleanoptional
Whether the client is archived.
archivedAtstringoptional
When the client was archived, as an ISO 8601 timestamp, or null.
scheduledArchiveAtstringoptional
When archival was requested (also the cohort token for cancelling it), as an ISO 8601 timestamp, or null if none is pending.
createdAtstringoptional
When the client was created, as an ISO 8601 timestamp.
updatedAtstringoptional
When the client was last updated, as an ISO 8601 timestamp.
locationIdstringoptional
ID of the first location created alongside this client, or null if none could be created yet.
locationSkippedstring (place_not_found | missing_country | location_limit | missing_category | failed)optional
Why no first location was created, when a placeId was supplied but no location resulted — for example location_limit means the agency is at its plan's location cap. Null when not applicable.
Errors
401Missing, invalid, expired, or revoked API key.
403The key lacks the required scope, or isn't authorized for this client/location.
422The request is missing a required parameter or is otherwise malformed.
429Too many requests. Retry after the number of seconds in the Retry-After header.
post/api/v1/clients
Your API key
Request body*
{
  "data": {
    "client": {
      "id": "cli_123",
      "businessName": "Acme Dental",
      "website": null,
      "industry": null,
      "primaryContactEmail": "owner@acmedental.com",
      "primaryRepresentativeId": "usr_123",
      "visibility": "public",
      "goal": null,
      "notes": null,
      "gbpLink": null,
      "trackingKeyword": null,
      "healthScore": null,
      "planName": null,
      "archived": false,
      "archivedAt": null,
      "scheduledArchiveAt": null,
      "createdAt": "2026-01-15T10:00:00.000Z",
      "updatedAt": "2026-01-15T10:00:00.000Z"
    },
    "locationId": "loc_456",
    "locationSkipped": null
  }
}