Bulk upsert departments
Header Parameters
Path Parameters
Company ID. Must be one of the IDs returned by GET /api/v2/companies/.
Body Parameters
Optional, for matching only: the department's id. An id that matches nothing in this company falls through to the next lookup field, and a new record is created with a fresh id.
Must belong to this company, or 400.
User ids. Each must be an active member of this company, or 400.
Show child attributes
User ids. Each must be an active member of this company, or 400.
Show child attributes
User ids. Each must be an active member of this company, or 400.
Show child attributes
Response
Always 200, even when rows failed: per-row results in upserted and errors, in row order.
Response Attributes
One entry per stored row, in row order: the row as you sent it, plus the record's id and the action taken.
Show child attributes
One entry per failed row. A failed row never fails the batch.
The whole request was refused: the body is not a JSON array, or it has more than 50 rows. Plain {"error": …} body, this one predates the error envelope and existing clients parse it.
Response Attributes
Only on the over-limit refusal.
Only on the over-limit refusal.
Missing, invalid, or expired API key, or a session credential was used instead of an API key.
Response Attributes
validationErrorclientErrorserverError Show child attributes
Authenticated but not entitled: the key's user is not an active member of this company, the External API feature (or the resource's own feature) is not enabled for it, the key lacks the scope this verb needs, or a browser session was used.
Response Attributes
validationErrorclientErrorserverError Show child attributes
Rate limit exceeded (60 requests per minute per API key). Retry after the number of seconds given in the message.
Response Attributes
validationErrorclientErrorserverError