Conversations between an account and its creators. Everything an inbox needs is on the API, so you can build your own.
GET /v1/threads lists conversations and GET /v1/messages?thread=thr_… reads one. Start one with a creator you work with (or reopen the existing one) with POST /v1/threads:
{ "kind": "direct", "with": "crtr_06ZqNevhUeDnqxzC6VkeuQr", "message": { "body": "Welcome aboard!" } }
Reply with POST /v1/messages:
{ "thread": "thr_06ZqNevhUeDnqxzC6VkeuQr", "body": "Loved the first cut!" }
PATCH /v1/messages/:id edits or deletes a message you sent (send its version) or sets a reaction: { "reaction": { "emoji": "🎉", "active": true } }.
A partner does all of this as a roster creator with Lucra-Account: crtr_…. The message.created webhook tells you when one arrives. Read and unread, muting and live updates are yours to keep in your own app: track what each of your users has seen against message IDs.
Endpoints
/v1/messagesList messages
lucra.messages.list({ query })Query parameters
limitintegercursorstringcreatedAfterstringOnly items created at or after this time.
createdBeforestringOnly items created before this time.
threadthr_…
Response200A page of items, 12 fields each, and nextCursorShow
idstringthreadstringsenderobjectShow 4 child fieldsHide child fields
idstringtypeenumorganizationcreatorsupportnamestringnullableavatarstringnullable
automatedbooleanbodystringfilesobject[]Show 8 child fieldsHide child fields
idstringnamestringkindenumimagevideodocumentsizenumbernullablewidthnumbernullableheightnumbernullableurlstringnullablethumbnailUrlstringnullable
replyTostringnullablereactionsobject[]Show 2 child fieldsHide child fields
emojistringactorsstring[]
createdAtstringeditedAtstringnullabledeletedAtstringnullableversioninteger
/v1/messagesSend a message
lucra.messages.create({ body })Body
threadthr_…requiredbodystringfilesfile_…[]Attachments: `chat_attachment` files.
replyTomsg_…
Response20112 fieldsShow
idstringthreadstringsenderobjectShow 4 child fieldsHide child fields
idstringtypeenumorganizationcreatorsupportnamestringnullableavatarstringnullable
automatedbooleanbodystringfilesobject[]Show 8 child fieldsHide child fields
idstringnamestringkindenumimagevideodocumentsizenumbernullablewidthnumbernullableheightnumbernullableurlstringnullablethumbnailUrlstringnullable
replyTostringnullablereactionsobject[]Show 2 child fieldsHide child fields
emojistringactorsstring[]
createdAtstringeditedAtstringnullabledeletedAtstringnullableversioninteger
/v1/messages/:idEdit or delete a message the caller sent (at its version), react to a message, or report it; one change per request
lucra.messages.update({ path: { id }, body })Path parameters
idstringrequired
Body
versionintegerThe message's `version` as read; required to edit or delete.
bodystringNew text for a message the caller sent.
statusstringDelete a message the caller sent.
deletedreactionobjectAdd or remove the caller's emoji reaction.
Show 2 child fieldsHide child fields
emojistringrequiredactivebooleanrequiredtrue adds the reaction, false removes it.
reportobjectReport the message to Lucra.
Show 2 child fieldsHide child fields
reasonenumrequiredspamharassmentunsafe_contentotherdetailstring
Response20012 fieldsShow
idstringthreadstringsenderobjectShow 4 child fieldsHide child fields
idstringtypeenumorganizationcreatorsupportnamestringnullableavatarstringnullable
automatedbooleanbodystringfilesobject[]Show 8 child fieldsHide child fields
idstringnamestringkindenumimagevideodocumentsizenumbernullablewidthnumbernullableheightnumbernullableurlstringnullablethumbnailUrlstringnullable
replyTostringnullablereactionsobject[]Show 2 child fieldsHide child fields
emojistringactorsstring[]
createdAtstringeditedAtstringnullabledeletedAtstringnullableversioninteger
/v1/threadsList the conversations the account (or, acting as a creator, the creator) takes part in, most recently active first
lucra.threads.list({ query })Query parameters
limitintegercursorstringcreatedAfterstringOnly items created at or after this time.
createdBeforestringOnly items created before this time.
kindenumdirectprogramsupportprogramprog_…
Response200A page of items, 14 fields each, and nextCursorShow
idstringkindenumdirectprogramsupportaccountstringnullableprogramstringnullablesupportobjectnullableShow 2 child fieldsHide child fields
statusenumwaiting_on_lucrawaiting_on_customerresolvedresolvedAtstringnullable
participantsobject[]Show 3 child fieldsHide child fields
actorobjectShow 4 child fieldsHide child fields
idstringtypeenumorganizationcreatorsupportnamestringnullableavatarstringnullable
lastReadstringnullablejoinedAtstring
lastMessageobjectnullableShow 12 child fieldsHide child fields
idstringthreadstringsenderobjectShow 4 child fieldsHide child fields
idstringtypeenumorganizationcreatorsupportnamestringnullableavatarstringnullable
automatedbooleanbodystringfilesobject[]Show 8 child fieldsHide child fields
idstringnamestringkindenumimagevideodocumentsizenumbernullablewidthnumbernullableheightnumbernullableurlstringnullablethumbnailUrlstringnullable
replyTostringnullablereactionsobject[]Show 2 child fieldsHide child fields
emojistringactorsstring[]
createdAtstringeditedAtstringnullabledeletedAtstringnullableversioninteger
mutedbooleanblockedstring[]canSendbooleanunreadCountintegercreatedAtstringupdatedAtstringversioninteger
/v1/threadsOpen a direct conversation with an account or creator you work with, a program's group chat or a Lucra Support thread; an existing one is returned
lucra.threads.create({ body })Body
kindenumrequireddirect: one account or creator; program: a program's group chat; support: Lucra Support.
directprogramsupportwithstringdirect: the account (acct_) or creator (crtr_) to talk to; a creator must work with the account (and the reverse).
programstringprogram: the program (prog_) whose group chat to open.
messageobjectA first message, sent when the conversation is new.
Show 2 child fieldsHide child fields
bodystringThe message text.
filesstring[]Attachments: `chat_attachment` files (file_).
Response20114 fieldsShow
idstringkindenumdirectprogramsupportaccountstringnullableprogramstringnullablesupportobjectnullableShow 2 child fieldsHide child fields
statusenumwaiting_on_lucrawaiting_on_customerresolvedresolvedAtstringnullable
participantsobject[]Show 3 child fieldsHide child fields
actorobjectShow 4 child fieldsHide child fields
idstringtypeenumorganizationcreatorsupportnamestringnullableavatarstringnullable
lastReadstringnullablejoinedAtstring
lastMessageobjectnullableShow 12 child fieldsHide child fields
idstringthreadstringsenderobjectShow 4 child fieldsHide child fields
idstringtypeenumorganizationcreatorsupportnamestringnullableavatarstringnullable
automatedbooleanbodystringfilesobject[]Show 8 child fieldsHide child fields
idstringnamestringkindenumimagevideodocumentsizenumbernullablewidthnumbernullableheightnumbernullableurlstringnullablethumbnailUrlstringnullable
replyTostringnullablereactionsobject[]Show 2 child fieldsHide child fields
emojistringactorsstring[]
createdAtstringeditedAtstringnullabledeletedAtstringnullableversioninteger
mutedbooleanblockedstring[]canSendbooleanunreadCountintegercreatedAtstringupdatedAtstringversioninteger
/v1/threads/:idGet a conversation; its messages are GET /v1/messages?thread=
lucra.threads.retrieve({ path: { id } })Path parameters
idstringrequired
Response20014 fieldsShow
idstringkindenumdirectprogramsupportaccountstringnullableprogramstringnullablesupportobjectnullableShow 2 child fieldsHide child fields
statusenumwaiting_on_lucrawaiting_on_customerresolvedresolvedAtstringnullable
participantsobject[]Show 3 child fieldsHide child fields
actorobjectShow 4 child fieldsHide child fields
idstringtypeenumorganizationcreatorsupportnamestringnullableavatarstringnullable
lastReadstringnullablejoinedAtstring
lastMessageobjectnullableShow 12 child fieldsHide child fields
idstringthreadstringsenderobjectShow 4 child fieldsHide child fields
idstringtypeenumorganizationcreatorsupportnamestringnullableavatarstringnullable
automatedbooleanbodystringfilesobject[]Show 8 child fieldsHide child fields
idstringnamestringkindenumimagevideodocumentsizenumbernullablewidthnumbernullableheightnumbernullableurlstringnullablethumbnailUrlstringnullable
replyTostringnullablereactionsobject[]Show 2 child fieldsHide child fields
emojistringactorsstring[]
createdAtstringeditedAtstringnullabledeletedAtstringnullableversioninteger
mutedbooleanblockedstring[]canSendbooleanunreadCountintegercreatedAtstringupdatedAtstringversioninteger