Available starting with the October 2026 release. Until that release is live, the journals endpoint only accepts POST to create an entry. See API - Journal - Create.
Read journal entries (CRM notes) through the API, and update an existing entry. You can read one entry by its ID, all the entries of one lead, customer or organization, or every entry in your account for a period of time.
| Action | Method | URL |
|---|---|---|
| Read one entry | GET | /api6/journals/{journal_id} |
| List the entries of a lead, customer or organization | GET | /api6/journals?type={type}&id={id} |
| List all entries in a time window | GET | /api6/journals?since={time} |
| Update an entry | PATCH | /api6/journals/{journal_id} |
Base URL: https://rental.software/api6. Every request needs your apiKey.
Before You Start
- Package: WP/API and Sales CRM.
- Permission: the API key's Lead CRM Journal Note permission decides what it can do.
| Lead CRM Journal Note | What the key can do |
|---|---|
| None | Read only the entries the key created itself |
| Read Only | Read all entries |
| Full Access | Read all entries and update them |
If the API key is limited to certain locations, it only sees entries whose lead, customer and organization are in those locations.
Read One Entry
curl "https://rental.software/api6/journals/9914527?apiKey=YOUR_API_KEY"
{
"id": 9914527,
"time": "2026-10-12T11:00:00-04:00",
"time_ts": 1791817200,
"time_utc": "2026-10-12T15:00:00Z",
"note": "Customer called to ask about a rain date",
"from": "frontdesk",
"from_name": "Sam Carter",
"status": "open",
"read": 0,
"assigned_to_type": "worker",
"assigned_to_worker_id": 13687,
"assigned_to_name": "Jamie Lee",
"lead_id": 520247,
"customer_id": 533268,
"organization_id": null,
"deleted": false,
"request_time": 1791817260
}Entry Fields
| Field | Description |
|---|---|
| id | Journal entry ID |
| time, time_ts, time_utc | When the entry was written: in your account's time zone, as a Unix timestamp, and in UTC |
| note | The text of the entry |
| from, from_name | Who wrote the entry |
| status | awaiting, open, closed, or null when no status is set |
| read | 1 when the entry is marked as read, otherwise 0 |
| assigned_to_type, assigned_to_worker_id, assigned_to_name | Who the entry is assigned to, if anyone |
| lead_id, customer_id, organization_id | The records the entry is linked to. null when not linked |
| deleted | true when the entry was deleted. Deleted entries are only returned when you ask for them |
List the Entries of One Record
Send the kind of record in type and its ID in id.
curl "https://rental.software/api6/journals?apiKey=YOUR_API_KEY&type=lead&id=520247"
| Parameter | Required | Default | Description |
|---|---|---|---|
| type | Yes | lead, customer or organization | |
| id | Yes | The ID of that lead, customer or organization | |
| since | No | Only entries written from this time on | |
| until | No | Only entries written up to this time | |
| limit | No | 25 | Number of entries to return. The maximum is 100 |
| offset | No | 0 | Number of entries to skip |
| order | No | Newest first | Send asc to get the oldest entries first |
| include_deleted | No | Send 1 to also return deleted entries |
When you list the entries of a lead, you also get the entries saved on that lead's customer that are not tied to a specific lead. This matches what the lead shows in the software.
{
"type": "lead",
"id": 520247,
"offset": 0,
"limit": 25,
"has_more": false,
"items": [
{
"id": 9914527,
"time": "2026-10-12T11:00:00-04:00",
"time_ts": 1791817200,
"time_utc": "2026-10-12T15:00:00Z",
"note": "Customer called to ask about a rain date",
"from": "frontdesk",
"from_name": "Sam Carter",
"status": "open",
"read": 0,
"assigned_to_type": null,
"assigned_to_worker_id": null,
"assigned_to_name": null,
"lead_id": 520247,
"customer_id": 533268,
"organization_id": null,
"deleted": false
}
],
"request_time": 1791817260
}has_more tells you whether there is another page. When it is true, add your limit to offset and call again.
List All Entries in a Time Window
Leave out type and id, and send since. This returns the entries of your whole account that were written in that period. It is the call to use when you sync journal entries into another system.
curl "https://rental.software/api6/journals?apiKey=YOUR_API_KEY&since=2026-10-01&until=2026-10-08"
- since is required. until defaults to now.
- The window can be at most 366 days.
- A time can be a Unix timestamp in seconds (1791817200) or a date (2026-10-01 or 2026-10-01T09:00:00-04:00). A date without a time zone is read as UTC.
- limit, offset, order and include_deleted work the same as above.
Update an Entry
Send a PATCH request with the Journal ID in the URL and only the fields you want to change. The key needs Lead CRM Journal Note set to Full Access.
curl -X PATCH "https://rental.software/api6/journals/9914527?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"crmstatus": "closed", "read": 1}'| Field | Description |
|---|---|
| desc | The text of the entry. Cannot be empty. At most 2000 characters |
| crmstatus | awaiting, open or closed |
| read | 1 to mark as read, 0 to mark as unread |
| assignedtoid | Worker ID to assign the entry to. Send 0 to remove the assignment |
The answer is the updated entry, in the same format as Read One Entry.
- Send the PATCH body as JSON, or put the fields in the query string.
- The lead, customer and organization of an entry cannot be changed. A request that tries is refused.
- If your HTTP client cannot send PATCH, send a POST with the header X-HTTP-Method: PATCH.
Errors
| Status | Message | What to do |
|---|---|---|
| 400 | Send type and id (lead, customer or organization), or a since time to list entries in a time window | A list call needs either type and id, or since |
| 400 | Invalid type. Use one of: lead, customer, organization | Fix the type value |
| 400 | The time window can be at most 366 days | Use a shorter period between since and until |
| 400 | since must be a unix timestamp or an ISO 8601 date | Fix the format of the time |
| 400 | Nothing to update. Send one or more of: desc, crmstatus, read, assignedtoid | The PATCH had no fields to change |
| 400 | Invalid crmstatus. Use one of: awaiting, open, closed | Fix the crmstatus value |
| 400 | The lead, customer and organization of a journal entry cannot be changed | Remove lead, cust and org from the PATCH |
| 403 | Permission access restricted. Reading other workers' journal entries needs the 'Lead CRM Journal Note' read permission. | Set Lead CRM Journal Note to Read Only or Full Access on the API key |
| 403 | Permission access restricted. Editing journal entries needs the 'Lead CRM Journal Note' write permission. | Set Lead CRM Journal Note to Full Access on the API key |
| 403 | Location access restricted | The entry is linked to a record in a location the key cannot access |
| 404 | Journal entry not found | Check the Journal ID. Deleted entries are also reported as not found unless you send include_deleted=1 |
| 404 | Lead not found, Customer not found, Organization not found | Check the id you sent with type |
See API - Errors and Rate Limits for errors that apply to every call.