API reference
27 operations, generated from the same declaration the router dispatches on — so it cannot describe an endpoint that does not exist, or miss one that does. Paste a key to run any of them against your own data.
API reference
Every endpoint below is generated from the router itself, so it cannot drift out of date.
Used only by the “Try it” buttons on this page, in your browser. Create one in Settings → API keys.
Sign in to 360Nook and open Settings → API keys to create one.
/v1/contacts/bulkcontacts:writeCreate many contacts at once from a pasted list, optionally tagging them all. Use this instead of calling create_contact repeatedly.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
texttagscreatedskippedtagsreasonscurl -X POST /api/v1/contacts/bulk \
-H "Authorization: Bearer nook_sk_your_key" \
-H "Content-Type: application/json" \
-d '{}'/v1/knowledgeknowledge:readList what the AI assistant knows about this business.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. | |
limitintegerHow many rows to return, 1–200. Values above 200 are clamped, not rejected. | |
cursorstringContinue from a previous page. Pass the next_cursor you were given; treat it as opaque. |
idquestionanswersourceenabledcreated_atcurl /api/v1/knowledge \ -H "Authorization: Bearer nook_sk_your_key"
/v1/knowledgeknowledge:writeTeach the AI assistant a question and its answer. Used on chat, email and the phone.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
questionansweridquestionanswersourceenabledcreated_atcurl -X POST /api/v1/knowledge \
-H "Authorization: Bearer nook_sk_your_key" \
-H "Content-Type: application/json" \
-d '{}'/v1/pipelinesopportunities:writeCreate a pipeline with its stages, in order.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
namedescriptionstagesidnamedescriptioncreated_atcurl -X POST /api/v1/pipelines \
-H "Authorization: Bearer nook_sk_your_key" \
-H "Content-Type: application/json" \
-d '{}'/v1/contacts/:id/notescontacts:readList the notes on a contact, newest first.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. | |
limitintegerHow many rows to return, 1–200. Values above 200 are clamped, not rejected. | |
cursorstringContinue from a previous page. Pass the next_cursor you were given; treat it as opaque. |
idbodycreated_atcurl /api/v1/contacts/:id/notes \ -H "Authorization: Bearer nook_sk_your_key"
/v1/contacts/:id/notescontacts:writeAdd a note to a contact.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
bodyidbodycreated_atcurl -X POST /api/v1/contacts/:id/notes \
-H "Authorization: Bearer nook_sk_your_key" \
-H "Content-Type: application/json" \
-d '{}'/v1/taskstasks:readList tasks, soonest due first. Completed ones are excluded by default.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. | |
limitintegerHow many rows to return, 1–200. Values above 200 are clamped, not rejected. | |
cursorstringContinue from a previous page. Pass the next_cursor you were given; treat it as opaque. | |
contact_iduuidOnly tasks about this contact. | |
include_completedstringPass "true" to include tasks already done. |
idtitledescriptiondue_atcompletedcontact_idcreated_atcurl /api/v1/tasks \ -H "Authorization: Bearer nook_sk_your_key"
/v1/taskstasks:writeCreate a task, optionally about a contact.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
titledescriptiondue_atcontact_ididtitledescriptiondue_atcompletedcontact_idcreated_atcurl -X POST /api/v1/tasks \
-H "Authorization: Bearer nook_sk_your_key" \
-H "Content-Type: application/json" \
-d '{}'/v1/tasks/:id/completetasks:writeMark a task done.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
idtitlecompletedcreated_atcurl -X POST /api/v1/tasks/:id/complete \
-H "Authorization: Bearer nook_sk_your_key" \
-H "Content-Type: application/json" \
-d '{}'/v1/contactscontacts:readList contacts, newest first.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. | |
limitintegerHow many rows to return, 1–200. Values above 200 are clamped, not rejected. | |
cursorstringContinue from a previous page. Pass the next_cursor you were given; treat it as opaque. | |
qstringCase-insensitive search. |
idfirst_namelast_nameemailphonecreated_atcurl /api/v1/contacts \ -H "Authorization: Bearer nook_sk_your_key"
/v1/opportunitiesopportunities:readList opportunities, newest first. Deleted ones are excluded.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. | |
limitintegerHow many rows to return, 1–200. Values above 200 are clamped, not rejected. | |
cursorstringContinue from a previous page. Pass the next_cursor you were given; treat it as opaque. | |
pipeline_iduuidOnly opportunities in this pipeline. |
idtitlevaluecurrencypipeline_idstage_idcontact_idcreated_atcurl /api/v1/opportunities \ -H "Authorization: Bearer nook_sk_your_key"
/v1/pipelinesopportunities:readList pipelines.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. | |
limitintegerHow many rows to return, 1–200. Values above 200 are clamped, not rejected. | |
cursorstringContinue from a previous page. Pass the next_cursor you were given; treat it as opaque. |
idnamedescriptionis_defaultsort_ordercurl /api/v1/pipelines \ -H "Authorization: Bearer nook_sk_your_key"
/v1/calendarscalendars:readList calendars. Deleted ones are excluded.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. | |
limitintegerHow many rows to return, 1–200. Values above 200 are clamped, not rejected. | |
cursorstringContinue from a previous page. Pass the next_cursor you were given; treat it as opaque. |
idnameslugtimezoneslot_durationis_activecurl /api/v1/calendars \ -H "Authorization: Bearer nook_sk_your_key"
/v1/appointmentscalendars:readList appointments, soonest first.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. | |
limitintegerHow many rows to return, 1–200. Values above 200 are clamped, not rejected. | |
cursorstringContinue from a previous page. Pass the next_cursor you were given; treat it as opaque. | |
calendar_iduuidOnly appointments on this calendar. |
idtitlestarts_atends_atstatuscalendar_idcontact_idcurl /api/v1/appointments \ -H "Authorization: Bearer nook_sk_your_key"
/v1/conversationsconversations:readList conversations, most recently active first.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. | |
limitintegerHow many rows to return, 1–200. Values above 200 are clamped, not rejected. | |
cursorstringContinue from a previous page. Pass the next_cursor you were given; treat it as opaque. |
idcontact_idlast_message_atlast_message_previewmessage_countstarredcurl /api/v1/conversations \ -H "Authorization: Bearer nook_sk_your_key"
/v1/workflowsworkflows:readList workflows. Deleted ones are excluded.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. | |
limitintegerHow many rows to return, 1–200. Values above 200 are clamped, not rejected. | |
cursorstringContinue from a previous page. Pass the next_cursor you were given; treat it as opaque. |
idnamedescriptionactive_enrolledtotal_enrolledlast_run_atcurl /api/v1/workflows \ -H "Authorization: Bearer nook_sk_your_key"
/v1/workflowsworkflows:writeCreate a workflow from a trigger and an ordered list of actions. Created as a draft; publish it in the builder.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
namedescriptiontriggertrigger_configstepsidnamestatuswarningscurl -X POST /api/v1/workflows \
-H "Authorization: Bearer nook_sk_your_key" \
-H "Content-Type: application/json" \
-d '{}'/v1/contactscontacts:writeCreate a contact.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
first_namelast_nameemailphoneidfirst_namelast_nameemailphonecreated_atcurl -X POST /api/v1/contacts \
-H "Authorization: Bearer nook_sk_your_key" \
-H "Content-Type: application/json" \
-d '{}'/v1/contacts/:idcontacts:writeUpdate a contact. Only the fields you send are changed.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
first_namelast_nameemailphoneidfirst_namelast_nameemailphonecreated_atcurl -X PATCH /api/v1/contacts/:id \
-H "Authorization: Bearer nook_sk_your_key" \
-H "Content-Type: application/json" \
-d '{}'/v1/opportunitiesopportunities:writeCreate an opportunity.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
titlevaluecurrencypipeline_idstage_idcontact_idstatuslost_reasonidtitlevaluecurrencypipeline_idstage_idcontact_idstatuscreated_atcurl -X POST /api/v1/opportunities \
-H "Authorization: Bearer nook_sk_your_key" \
-H "Content-Type: application/json" \
-d '{}'/v1/opportunities/:idopportunities:writeUpdate an opportunity — move its stage, change its value, win or lose it.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
titlevaluecurrencypipeline_idstage_idcontact_idstatuslost_reasonidtitlevaluecurrencypipeline_idstage_idcontact_idstatuscreated_atcurl -X PATCH /api/v1/opportunities/:id \
-H "Authorization: Bearer nook_sk_your_key" \
-H "Content-Type: application/json" \
-d '{}'/v1/appointmentscalendars:writeBook an appointment. Availability is checked; a taken slot is refused, not queued.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
calendar_idstarts_atcontact_idguest_nameguest_emailguest_phonenotestimezonestatuscancel_reasonidcalendar_idstarts_atends_atstatuscontact_idcurl -X POST /api/v1/appointments \
-H "Authorization: Bearer nook_sk_your_key" \
-H "Content-Type: application/json" \
-d '{}'/v1/appointments/:idcalendars:writeReschedule an appointment, cancel it, or record whether they showed.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
calendar_idstarts_atcontact_idguest_nameguest_emailguest_phonenotestimezonestatuscancel_reasonidcalendar_idstarts_atends_atstatuscontact_idcurl -X PATCH /api/v1/appointments/:id \
-H "Authorization: Bearer nook_sk_your_key" \
-H "Content-Type: application/json" \
-d '{}'/v1/conversations/messagesconversations:writeSend a message to a contact on email, SMS, WhatsApp or LINE.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
contact_idchannelbodysubjectfrom_nameidconversation_idchanneldeliveredcodecurl -X POST /api/v1/conversations/messages \
-H "Authorization: Bearer nook_sk_your_key" \
-H "Content-Type: application/json" \
-d '{}'/v1/contacts/:idcontacts:readFetch one contact.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
idfirst_namelast_nameemailphonecreated_atcurl /api/v1/contacts/:id \ -H "Authorization: Bearer nook_sk_your_key"
/v1/opportunities/:idopportunities:readFetch one opportunity.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
idtitlevaluecurrencypipeline_idstage_idcontact_idstatuscreated_atcurl /api/v1/opportunities/:id \ -H "Authorization: Bearer nook_sk_your_key"
/v1/appointments/:idcalendars:readFetch one appointment.
| Parameter | Value |
|---|---|
sub_account_iduuidAct on one of your sub-accounts. Agency keys only — a sub-account key is already scoped and does not need it. |
idcalendar_idstarts_atends_atstatuscontact_idcurl /api/v1/appointments/:id \ -H "Authorization: Bearer nook_sk_your_key"