For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Insert or update multiple records of a custom object in a single API call. Send a POST request to https://api.brevo.com/v3/objects/{object_type}/batch/upsert.
This operation is asynchronous. The endpoint returns a processId you can use to monitor the request status. See the API endpoint here.
Requirements
Custom objects are only available for Enterprise or Pro plan accounts.
This endpoint only supports custom objects. It will not create or update records for Brevo system objects such as contact, company, deal, task, note, store, order, or ticket.
The target object type must already exist in your Brevo schema (see the create custom objects help article). The endpoint does not create new object types and returns an invalid object_type error otherwise.
Attributes in your payload must be defined in the schema attributes. Undefined attributes are ignored, as shown here.
To associate two object records:
An association between the corresponding object types must exist (see here).
Both object records must exist before associating them, otherwise the API returns an error.
Limits and behaviour
Limit
Value
Records per request
1000 in the array
Payload size
Total request body must not exceed 1 MB
Attributes per record
Max 500 attributes per record. Only 500 attributes can be defined for an object type in the database.
Associations per record
Max 10 associations per associated object type per record. To define more than 10 associations for a given associated object type, run multiple requests.
Associations
Associations must reference existing object records, otherwise the API returns an error.
To associate custom objects, use either ext_id or id.
Custom objects can be associated with Brevo system objects. For example, with object_type as vehicle and associated object_type as company:
To associate contacts, use contact_id as id in identifiers.
To associate companies or deals, use ext_id in identifiers and fill it with the Brevo-generated company or deal ID (e.g. company_id as ext_id).
Storing attributes of an object record (when creating or updating one)
Use the attribute_id generated when the object attribute was created as the key.
An attribute_id not defined in the object schema is ignored — it will not be created and does not throw an error.
Attribute name
Datatype
Description
records
Array
Records to be created
attributes
Object
The properties to set and update
associations
Array
Linked object records
associations.object_type
String
Type of the associated object
associations.records
Array of objects
Records associated with the object type
identifiers
Object
Used for identification of records
identifiers.ext_id
String
ID of record in the external system that client want to store in the object system.
Batch request accepted for processing of upsert object records
400
Bad request. Error messages may include: invalid organizationId, invalid object_type, records cannot be empty or more than 1000)
403
Custom objects are not available on this account
404
Object not found for the provided organization or object type
500
Internal server error
A successful response returns a processId and a message.
1
{
2
"processId": 21,
3
"message": "Batch object records are being processed"
4
}
Get the list of object records and total records count for an object
Retrieve a paginated list of records for a specific object type, including associated data and a total record count.
Send a GET request to https://api.brevo.com/v3/objects/{object_type}/records. The endpoint returns a list of records and the total count of object records. See the API endpoint here.
Requirements
This endpoint only supports custom objects. It will not return records for Brevo system objects such as contact, company, deal, task, note, store, order, or ticket.
Custom objects are only available for Enterprise or Pro plan accounts.
Confirm the object type is already defined in your schema. The endpoint does not return records for undefined object types.
Attribute name
Datatype
Description
object_type
String
Object type for attribute
limit
Integer
Number of records returned per page
page_num
Integer
Page number for pagination. It is used to fetch the object records on a provided page number. Must be a valid positive integer
sort
String
Order of the sort. Accepts two possible values: asc or desc
association
String
Specifies whether association should be included. Accepts two possible values: true or false.
A list of object records for an object type. If the association param is set to true, returns 5 associated records per association for an object type.
400
Bad request (e.g., invalid object_type, invalid page_num provided)
403
Custom objects are not available on this account
424
Primary attribute not found
500
Internal server error
The response returns a list of object records with attributes, identifiers, and associations, plus the total count of records for that object type (useful for pagination).