List activity for a company
Lists what happened with a company, newest first: its own events plus the events of every contact on it, merged into one stream. Each occurrence appears once, even when it touched several contacts — an email thread with three of the company's contacts is one activity, and so is an invoice sent to two of them. A Doc is the exception: it is recorded per recipient, so one sent to two contacts is two activities.
id identifies the occurrence, not the row: the same email thread, meeting, note or document send keeps its id wherever it appears. contact_id and company_id say who the activity is about as seen from this company.
You only see the activity types your role can read. Email subjects and meeting titles are null when the mailbox they came from does not share them with you.
Pagination
Pages by page[number] like every other list, up to page 40. To read further back, set filter[occurred_to] to the day of the last activity you read, the date in its occurred_at, and start again from page 1; the activity of that day you already read comes back again. When all 40 pages fall on one day, that day holds more than paging can reach; split it with filter[type] or filter[contact_id]. Activity that arrives while you page shifts later pages, so the same activity can also appear at the end of one page and the start of the next. Dedupe by id.
Filtering
- filter[type] — activity types or groups, comma separated (invoice.paid, email). A group stands for every type in it that your role can read. A type your role cannot read, or a group with no type it can, is refused with 403.
- filter[contact_id] — contact ids, comma separated. Keeps the activity about those contacts and leaves out company-level activity. Every id must be a contact on this company.
- filter[occurred_from] / filter[occurred_to] — ISO 8601 dates (2026-10-31), UTC days, both inclusive.
Request
- Base URLhttps://app.hellobonsai.com
- URLhttps://app.hellobonsai.com/public-api/v1/companies/{id}/activities
- Auth
- OAuth 2Authorization code: https://app.hellobonsai.com/oauth/authorizeToken URL: https://app.hellobonsai.com/oauth/token
- or HTTP bearer
Path parameters
Id of the company.
Query parameters
Page to return, starting at 1. At most 40.
Activities per page. Defaults to 25; anything above 100 is reduced to 100.
Activity types or groups, comma separated. Types: contact.created, contact.updated, contact.added_to_company, contact.removed_from_company, company.created, company.updated, company.archived, company.restored, document.created, document.sent, document.viewed, document.accepted, document.reminder_sent, invoice.sent, invoice.viewed, invoice.paid, invoice.reminder_sent, note.added, deal.assigned, email.sent, email.received, calendar.event, form.sent, form.submitted, portal.invitation_accepted, portal.message_sent. Groups: contact, company, document, invoice, note, deal, email, calendar, form, portal.
Contact ids on this company, comma separated.
Keeps activity on or after this day, in UTC.
Keeps activity on or before this day, in UTC.
Response
A page of activity.
Example response
{
"data": [
{
"id": "evt_48213377",
"type": "invoice.paid",
"occurred_at": "2026-04-14T09:12:04.000Z",
"summary": "Invoice #1042 for $3,200 paid",
"contact_id": 3184,
"company_id": 42,
"actor": {
"kind": "member",
"id": 15,
"name": "Jane Doe"
},
"subject": {
"kind": "invoice",
"title": "Website redesign",
"url": "https://app.hellobonsai.com/invoices/1042"
},
"details": {
"field": "email",
"old_value": "jane@acme.com",
"new_value": "jane.doe@acme.com"
}
}
],
"meta": {
"request_id": "b1f0d2c4-7a9e-4c3b-8d5f-1e2a3b4c5d6e",
"pagination": {
"page": 1,
"page_size": 25,
"has_more": true
}
}
}Changes
No recorded changes to this operation across all 1 revision of this API.