JSON requests and responses

Send request bodies as JSON with a Content-Type: application/json header. Responses use camelCase property names, for example companyName. Property names in requests are matched without regard to case, but sending camelCase keeps your code consistent with what you read back.

Identifiers

Records created in crmSeries have integer IDs, such as a company or lead ID. Identifiers that come from your own system, such as a customer account number or a record ID from your dealer management system, are sent as strings, even when they look numeric. Keep leading zeros and never reuse an identifier for a different record.

Store the crmSeries ID

When an operation returns the ID of a record it created, save it next to your own identifier. You'll need it for any later operation that addresses the record by its crmSeries ID.

Enumerations

Fixed-choice values are sent and returned as integers, not names. Use the numbers listed in each operation's schema, and map them to labels in your own code rather than guessing from their order.

Values that each dealership configures for itself, such as branches, statuses, sources, categories, and sales reps, are different: match them by the code or name your crmSeries administrator gives you, and expect the list to change over time.

Dates and times

Dates use ISO 8601. Send timestamps in UTC with a trailing Z, for example 2026-09-22T14:30:00Z. Date-only fields use YYYY-MM-DD. Some timestamps in responses have no offset, such as 2026-09-22T14:30:00. Check the field's description in the reference, and confirm with your crmSeries contact before you convert one to a local time.

Partial updates

Update operations change only the fields you name. Send the new values along with an updatedFields list naming each property to change, spelled with a leading capital as shown below. Properties missing from updatedFields are left as they are, even if you include them in the body. Every listed field is set to the value you send, including an empty value, so only list the fields you mean to change.

{
  "updatedFields": ["Phone", "Fax"],
  "phone": "555-0142",
  "fax": ""
}
Check each operation's body

Field names and which updates accept updatedFields vary by operation. The request body schema in the API reference is the source of truth.