Couplr Couplr developers
API v1 · API reference · explained by Flip

Notes

Read the notes on a customer or a job, and add a note.

View Markdown

Base URL: https://couplrfsm.com/api/v1. Conventions shared by every endpoint (examples, ids, dates, money) are on the API reference page. Errors, pagination and idempotency are in Errors, limits and retries.

List a customer's notes#

GET /api/v1/customers/{id}/notes · requires the notes:read ability

The notes written on the customer, newest first.

Path parameters

Name Type Required Description
id integer Yes

Query parameters

Name Type Required Description
page integer No Default: 1.
per_page integer No Values above 100 are served as 100. Default: 25.
updated_since string (date-time) No Only records changed at or after this time. ISO 8601, for example 2026-11-14T15:00:00Z.

Example request

curl "https://couplrfsm.com/api/v1/customers/1842/notes" \
  -H "Authorization: Bearer YOUR_API_KEY"

Example response (200)

{
    "data": [
        {
            "id": 9021,
            "body": "Gate code is 4471. Dog is friendly.",
            "is_private": true,
            "is_pinned": false,
            "author_name": "Sam Whitfield",
            "created_at": "2026-11-14T15:02:11+00:00",
            "updated_at": "2026-11-14T15:02:11+00:00"
        }
    ],
    "meta": {
        "page": 1,
        "per_page": 25,
        "total": 1,
        "last_page": 1
    }
}

Errors

Status When
401 No key (api_key_missing), the key is unknown or revoked (api_key_invalid), the key had an end date that has passed (api_key_expired), or the key belongs to a private trial sandbox whose access window has ended (sandbox_expired).
403 The key lacks the ability this endpoint needs (ability_missing), no admin user is left to act for the key (no_acting_admin), or the company's account is not yet verified.
404 No such record in this company (not_found).
422 A parameter or field is invalid (validation_failed). errors maps each field to its messages.
429 Too many requests (rate_limited). Wait Retry-After seconds.

Add a note to a customer#

POST /api/v1/customers/{id}/notes · requires the notes:write ability · accepts Idempotency-Key

The note is added to the log under the name of the person who created the API key. A note cannot be edited or removed through the API.

Send "is_private": true for a note that is for the company's own staff only.

Path parameters

Name Type Required Description
id integer Yes

Headers

Name Type Required Description
Idempotency-Key string No Makes a retry of this request safe. See "Retries and idempotency".

Request body (application/json)

Fields not listed are ignored.

Field Type Required Description
body string Yes
is_private boolean No For the company's own staff only. Ignored on a job, where every note is. Default: false.

Example request

curl -X POST "https://couplrfsm.com/api/v1/customers/1842/notes" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: YOUR_UNIQUE_KEY" \
  -d '{"body":"Gate code is 4471. Dog is friendly.","is_private":true}'

Example response (201)

{
    "data": {
        "id": 9021,
        "body": "Gate code is 4471. Dog is friendly.",
        "is_private": true,
        "is_pinned": false,
        "author_name": "Sam Whitfield",
        "created_at": "2026-11-14T15:02:11+00:00",
        "updated_at": "2026-11-14T15:02:11+00:00"
    }
}

Errors

Status When
401 No key (api_key_missing), the key is unknown or revoked (api_key_invalid), the key had an end date that has passed (api_key_expired), or the key belongs to a private trial sandbox whose access window has ended (sandbox_expired).
403 The key lacks the ability this endpoint needs (ability_missing), no admin user is left to act for the key (no_acting_admin), or the company's account is not yet verified.
404 No such record in this company (not_found).
422 A parameter or field is invalid (validation_failed). errors maps each field to its messages.
429 Too many requests (rate_limited). Wait Retry-After seconds.

List a job's notes#

GET /api/v1/jobs/{id}/notes · requires the notes:read ability

The notes written on the job, newest first.

Path parameters

Name Type Required Description
id integer Yes

Query parameters

Name Type Required Description
page integer No Default: 1.
per_page integer No Values above 100 are served as 100. Default: 25.
updated_since string (date-time) No Only records changed at or after this time. ISO 8601, for example 2026-11-14T15:00:00Z.

Example request

curl "https://couplrfsm.com/api/v1/jobs/1842/notes" \
  -H "Authorization: Bearer YOUR_API_KEY"

Example response (200)

{
    "data": [
        {
            "id": 9021,
            "body": "Gate code is 4471. Dog is friendly.",
            "is_private": true,
            "is_pinned": false,
            "author_name": "Sam Whitfield",
            "created_at": "2026-11-14T15:02:11+00:00",
            "updated_at": "2026-11-14T15:02:11+00:00"
        }
    ],
    "meta": {
        "page": 1,
        "per_page": 25,
        "total": 1,
        "last_page": 1
    }
}

Errors

Status When
401 No key (api_key_missing), the key is unknown or revoked (api_key_invalid), the key had an end date that has passed (api_key_expired), or the key belongs to a private trial sandbox whose access window has ended (sandbox_expired).
403 The key lacks the ability this endpoint needs (ability_missing), no admin user is left to act for the key (no_acting_admin), or the company's account is not yet verified.
404 No such record in this company (not_found).
422 A parameter or field is invalid (validation_failed). errors maps each field to its messages.
429 Too many requests (rate_limited). Wait Retry-After seconds.

Add a note to a job#

POST /api/v1/jobs/{id}/notes · requires the notes:write ability · accepts Idempotency-Key

The note is added to the log under the name of the person who created the API key. A note cannot be edited or removed through the API.

A note on a job is always internal to the company, whatever is_private says. It does not change the job's notes field.

Path parameters

Name Type Required Description
id integer Yes

Headers

Name Type Required Description
Idempotency-Key string No Makes a retry of this request safe. See "Retries and idempotency".

Request body (application/json)

Fields not listed are ignored.

Field Type Required Description
body string Yes
is_private boolean No For the company's own staff only. Ignored on a job, where every note is. Default: false.

Example request

curl -X POST "https://couplrfsm.com/api/v1/jobs/1842/notes" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: YOUR_UNIQUE_KEY" \
  -d '{"body":"Customer asked for a call 30 minutes ahead."}'

Example response (201)

{
    "data": {
        "id": 9021,
        "body": "Gate code is 4471. Dog is friendly.",
        "is_private": true,
        "is_pinned": false,
        "author_name": "Sam Whitfield",
        "created_at": "2026-11-14T15:02:11+00:00",
        "updated_at": "2026-11-14T15:02:11+00:00"
    }
}

Errors

Status When
401 No key (api_key_missing), the key is unknown or revoked (api_key_invalid), the key had an end date that has passed (api_key_expired), or the key belongs to a private trial sandbox whose access window has ended (sandbox_expired).
403 The key lacks the ability this endpoint needs (ability_missing), no admin user is left to act for the key (no_acting_admin), or the company's account is not yet verified.
404 No such record in this company (not_found).
422 A parameter or field is invalid (validation_failed). errors maps each field to its messages.
429 Too many requests (rate_limited). Wait Retry-After seconds.

Copy this page as Markdown

Your browser blocked automatic copying. The complete page is selected below. Press Ctrl+C (Cmd+C on a Mac) to copy it.