{ "openapi": "3.0.0", "x-api-id": "front", "x-explorer-enabled": false, "x-proxy-enabled": true, "x-samples-enabled": true, "info": { "version": "1.0.0", "title": "Core API", "contact": { "name": "Front Platform", "email": "api@frontapp.com" } }, "security": [ { "http": [] } ], "servers": [ { "url": "https://api2.frontapp.com" } ], "components": { "schemas": { "ResourceID": { "type": "string" }, "ShiftInterval": { "type": "object", "required": [ "start", "end" ], "properties": { "start": { "type": "string", "description": "Start of shift", "example": "09:00" }, "end": { "type": "string", "description": "End of shift", "example": "17:00" } } }, "ShiftIntervals": { "type": "object", "properties": { "mon": { "$ref": "#/components/schemas/ShiftInterval" }, "tue": { "$ref": "#/components/schemas/ShiftInterval" }, "wed": { "$ref": "#/components/schemas/ShiftInterval" }, "thu": { "$ref": "#/components/schemas/ShiftInterval" }, "fri": { "$ref": "#/components/schemas/ShiftInterval" }, "sat": { "$ref": "#/components/schemas/ShiftInterval" }, "sun": { "$ref": "#/components/schemas/ShiftInterval" } } }, "TagIds": { "type": "object", "required": [ "tag_ids" ], "properties": { "tag_ids": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "TeammateIds": { "type": "object", "required": [ "teammate_ids" ], "properties": { "teammate_ids": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "ChannelIds": { "type": "object", "required": [ "channel_ids" ], "properties": { "channel_ids": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "InboxIds": { "type": "object", "required": [ "inbox_ids" ], "properties": { "inbox_ids": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "TeamIds": { "type": "object", "required": [ "team_ids" ], "properties": { "team_ids": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "ContactIds": { "type": "object", "required": [ "contact_ids" ], "properties": { "contact_ids": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "AccountIds": { "type": "object", "required": [ "account_ids" ], "properties": { "account_ids": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "Account": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the Account" }, "description": { "type": "string", "description": "Account description" }, "domains": { "type": "array", "items": { "type": "string", "description": "List of domains associated to be associated the Account" } }, "external_id": { "type": "string", "description": "ID of the Account in an external system" }, "custom_fields": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Custom attributes for this account." } } }, "AnalyticsFilters": { "description": "Resources to compute the analytics for. Defaults to all.", "anyOf": [ { "$ref": "#/components/schemas/TagIds" }, { "$ref": "#/components/schemas/TeammateIds" }, { "$ref": "#/components/schemas/ChannelIds" }, { "$ref": "#/components/schemas/InboxIds" }, { "$ref": "#/components/schemas/TeamIds" }, { "$ref": "#/components/schemas/AccountIds" } ] }, "AnalyticsReportRequest2": { "properties": { "start": { "type": "number", "description": "Start time of the data to include in the export (seconds since 1970-01-01T00:00:00+00). Will be rounded down to the start of the day." }, "end": { "type": "number", "description": "End time of the data to include in the export (seconds since 1970-01-01T00:00:00+00). Will be rounded up to the end of the day." }, "timezone": { "type": "string", "description": "[IANA name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) of the timezone to format the dates with. If omitted, the export will use Etc/UTC." }, "filters": { "$ref": "#/components/schemas/AnalyticsFilters" }, "metrics": { "type": "array", "description": "List of the metrics required.", "items": { "$ref": "#/components/schemas/AnalyticsMetricId" } } }, "required": [ "start", "end", "metrics" ] }, "AnalyticsExportRequest2": { "properties": { "start": { "type": "number", "description": "Start time of the data to include in the export (seconds since 1970-01-01T00:00:00+00). Will be rounded down to the start of the day." }, "end": { "type": "number", "description": "End time of the data to include in the export (seconds since 1970-01-01T00:00:00+00). Will be rounded up to the end of the day." }, "timezone": { "type": "string", "description": "[IANA name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) of the timezone to format the dates with. If omitted, the export will use Etc/UTC." }, "filters": { "$ref": "#/components/schemas/AnalyticsFilters" }, "type": { "type": "string", "enum": [ "events", "messages" ] } }, "required": [ "start", "end", "type" ] }, "AnalyticsMetricId": { "type": "string", "enum": [ "avg_csat_survey_response", "avg_first_response_time", "avg_handle_time", "avg_response_time", "avg_sla_breach_time", "avg_total_reply_time", "new_segments_count", "num_active_segments_full", "num_archived_segments", "num_archived_segments_with_reply", "num_csat_survey_response", "num_messages_received", "num_messages_sent", "num_sla_breach", "pct_csat_survey_satisfaction", "pct_tagged_conversations", "num_open_segments_start", "num_closed_segments", "num_open_segments_end", "num_workload_segments" ] }, "CreateMessageTemplateFolderAsChild": { "type": "object", "description": "A message template folder that is used to store message templates or other folders.", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "Name of the message template folder", "example": "PTO templates" } } }, "CreateMessageTemplateFolder": { "type": "object", "description": "A message template folder that is used to store message templates or other folders.", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "Name of the message template folder", "example": "PTO templates" }, "parent_folder_id": { "type": "string", "description": "ID of the parent folder to be placed into. Goes into the root folder if unspecified or if null.", "example": null } } }, "UpdateMessageTemplateFolder": { "type": "object", "description": "A message template folder that is used to store message templates or other folders.", "properties": { "name": { "type": "string", "description": "Name of the message template folder" }, "parent_folder_id": { "type": "string", "description": "ID of the parent folder to be placed into. Goes into the root folder if unspecified or if null." } } }, "UpdateMessageTemplate": { "properties": { "name": { "type": "string", "description": "Name of the message template" }, "subject": { "type": "string", "description": "Subject of the message template" }, "body": { "type": "string", "description": "Body of the message template" }, "folder_id": { "type": "string", "description": "ID of the parent folder to be placed into. Goes into the root folder if unspecified or if null." }, "inbox_ids": { "type": "array", "items": { "type": "string", "description": "The specific inboxes this template is available in. If null, then it will be available in all inboxes. Array should be non-empty. If unspecified, will retain previous value." } } } }, "CreateMessageTemplateAsChild": { "type": "object", "description": "A message template that is used for pre-written responses", "required": [ "name", "body" ], "properties": { "name": { "type": "string", "description": "Name of the message template", "example": "Out of Office" }, "subject": { "type": "string", "description": "Subject of the message template. If not set, the name will be used to populate the subject.", "example": "Out of Office" }, "body": { "type": "string", "description": "Body of the message template", "example": "Sorry, I'm OOO until October 25th." }, "inbox_ids": { "type": "array", "items": { "type": "string", "description": "The specific inboxes this template is available in. If unspecified or null, then it will be available in all inboxes. Array should be non-empty." }, "example": null } } }, "CreatePrivateMessageTemplate": { "type": "object", "description": "A message template that is used for pre-written responses", "required": [ "name", "body" ], "properties": { "name": { "type": "string", "description": "Name of the message template", "example": "Out of Office" }, "subject": { "type": "string", "description": "Subject of the message template. If not set, the name will be used to populate the subject.", "example": "Out of Office" }, "body": { "type": "string", "description": "Body of the message template", "example": "Sorry, I'm OOO until October 25th." }, "folder_id": { "type": "string", "description": "ID of the message template folder to place this message template in", "example": null } } }, "CreateSharedMessageTemplate": { "type": "object", "description": "A message template that is used for pre-written responses", "required": [ "name", "body" ], "properties": { "name": { "type": "string", "description": "Name of the message template", "example": "Out of Office" }, "subject": { "type": "string", "description": "Subject of the message template. If not set, the name will be used to populate the subject.", "example": "Out of Office" }, "body": { "type": "string", "description": "Body of the message template", "example": "Sorry, I'm OOO until October 25th." }, "folder_id": { "type": "string", "description": "ID of the message template folder to place this message template in", "example": null }, "inbox_ids": { "type": "array", "items": { "type": "string", "description": "The specific inboxes this template is available in. If unspecified or null, then it will be available in all inboxes. Array should be non-empty." }, "example": null } } }, "CreateContactGroup": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "Name of the group" } } }, "AddContactsToGroup": { "required": [ "contact_ids" ], "properties": { "contact_ids": { "type": "array", "description": "List of IDs of the contacts to add in the requested group", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "ContactHandle": { "type": "object", "required": [ "handle", "source" ], "properties": { "handle": { "type": "string", "description": "Handle used to reach the contact." }, "source": { "type": "string", "enum": [ "twitter", "email", "phone", "facebook", "intercom", "front_chat", "custom" ], "description": "Source of the handle. Can be `email`, `phone`, `twitter`, `facebook`, `intercom`, `front_chat`, or `custom`." } } }, "CreateContact": { "required": [ "handles" ], "allOf": [ { "$ref": "#/components/schemas/Contact" }, { "type": "object", "properties": { "handles": { "type": "array", "description": "List of the handles for this contact. Each handle object should include `handle` and `source` fields.", "items": { "$ref": "#/components/schemas/ContactHandle" } } } } ] }, "Contact": { "type": "object", "properties": { "name": { "type": "string", "description": "Contact name" }, "description": { "type": "string", "description": "Contact description" }, "avatar": { "type": "string", "description": "Binary data of avatar. Must use `Content-Type: multipart/form-data` if specified.", "format": "binary" }, "is_spammer": { "type": "boolean", "description": "Whether or not the contact is marked as a spammer" }, "links": { "type": "array", "description": "List of all the links of the contact", "items": { "type": "string" } }, "group_names": { "type": "array", "description": "List of all the group names the contact belongs to. It will automatically create missing groups", "items": { "type": "string" } }, "custom_fields": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Custom field attributes for this contact. Leave empty if you do not wish to update the attributes. Not sending existing attributes will automatically remove them." } } }, "MergeContacts": { "required": [ "contact_ids" ], "properties": { "target_contact_id": { "type": "string", "description": "Optional contact ID to merge the other contacts into." }, "contact_ids": { "type": "array", "description": "Array of all the contact IDs of the contacts to be merged. If a target contact id is provided and that contact id is not in this array, the length of this array must be between 1 and 49. If no target contact id is provided or it is contained in this array, the length must be between 2 and 50.", "items": { "type": "string" } } } }, "DeleteContactHandle": { "allOf": [ { "$ref": "#/components/schemas/ContactHandle" }, { "type": "object", "properties": { "force": { "type": "boolean", "description": "Force the deletetion of the contact if the handle is the last one", "default": false } } } ] }, "CreateContactNote": { "type": "object", "required": [ "author_id", "body" ], "properties": { "author_id": { "type": "string", "description": "ID of teammate creating the note" }, "body": { "type": "string", "description": "Content of the note" } } }, "UpdateChannel": { "properties": { "name": { "type": "string", "description": "Name of the channel" }, "settings": { "type": "object", "description": "Settings to replace.\nFor custom channels, all settings may be replaced.\nFor all other channels, only `undo_send_time` and `all_teammates_can_reply` may be replaced.\n", "properties": { "undo_send_time": { "type": "integer", "description": "The time (measured in seconds) that users have to undo a send operation in the channel.", "enum": [ 0, 5, 10, 15, 30, 60 ] }, "all_teammates_can_reply": { "type": "boolean", "description": "Whether teammates without inbox access can reply on this channel. Only allowed for shared channels." } } } } }, "CreateChannel": { "required": [ "type" ], "properties": { "name": { "type": "string", "description": "Name of the channel" }, "settings": { "type": "object", "description": "Settings of the channel", "properties": { "undo_send_time": { "type": "integer", "description": "The time (measured in seconds) that users have to undo a send operation in the channel.", "enum": [ 0, 5, 10, 15, 30, 60 ] }, "all_teammates_can_reply": { "type": "boolean", "description": "Whether teammates without inbox access can reply on this channel. Only allowed for shared channels." } } }, "type": { "type": "string", "description": "Type of the channel", "enum": [ "custom", "smtp", "twilio" ] }, "send_as": { "type": "string", "description": "Sending address of your channel" } } }, "CreateComment": { "required": [ "body" ], "properties": { "author_id": { "type": "string", "description": "ID of the teammate creating the comment. If omitted, will post as the API Token or OAuth client of the requester." }, "body": { "type": "string", "description": "Content of the comment" }, "attachments": { "description": "Binary data of attached files. Must use `Content-Type: multipart/form-data` if specified. See [example](https://gist.github.com/hdornier/e04d04921032e98271f46ff8a539a4cb).", "type": "array", "items": { "type": "string", "format": "binary" } } } }, "CreateConversation": { "required": [ "type", "subject", "comment" ], "properties": { "type": { "description": "Conversation type", "type": "string", "enum": [ "discussion" ] }, "inbox_id": { "description": "Inbox ID for the conversation. Either `inbox_id` OR `teammate_ids` must be provided (not both).", "type": "string" }, "teammate_ids": { "description": "Teammates to add to the conversation. Either `inbox_id` OR `teammate_ids` must be provided (not both).", "type": "array", "items": { "type": "string" } }, "subject": { "description": "Subject of the conversation", "type": "string" }, "comment": { "description": "Details for the starter comment", "type": "object", "required": [ "body" ], "properties": { "author_id": { "description": "ID of the teammate creating the comment. If omitted, will post as the API Token or OAuth client of the requester.", "type": "string" }, "body": { "description": "Content of the comment", "type": "string" }, "attachments": { "description": "Binary data of attached files. Must use `Content-Type: multipart/form-data` if specified. See [example](https://gist.github.com/hdornier/e04d04921032e98271f46ff8a539a4cb).", "type": "array", "items": { "type": "string", "format": "binary" } } } } } }, "UpdateConversation": { "properties": { "assignee_id": { "type": "string", "description": "ID of the teammate to assign the conversation to. Set it to null to unassign." }, "inbox_id": { "type": "string", "description": "ID of the inbox to move the conversation to." }, "status": { "type": "string", "description": "New status of the conversation", "enum": [ "archived", "open", "deleted", "spam" ] }, "tag_ids": { "type": "array", "description": "List of all the tag IDs replacing the old conversation tags", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "UpdateConversationAssignee": { "required": [ "assignee_id" ], "properties": { "assignee_id": { "type": "string", "description": "ID of the teammate to assign the conversation to. Set it to null to unassign." } } }, "UpdateConversationReminders": { "required": [ "teammate_id", "scheduled_at" ], "properties": { "teammate_id": { "type": "string", "description": "ID of the teammate to create a reminder for. For a private conversation, specify the id of the teammate that owns the conversation. For a shared conversation, use the id of any teammate that has access to the conversation's shared inbox." }, "scheduled_at": { "type": "string", "description": "Timestamp to schedule the reminder for. Set to null to cancel." } } }, "UpdateCustomField": { "properties": { "name": { "type": "string", "description": "Name of the custom field" }, "description": { "type": "string", "description": "Description of the custom field" } } }, "CreateDraft": { "type": "object", "required": [ "author_id", "body" ], "properties": { "author_id": { "type": "string", "description": "ID of the teammate on behalf of whom the draft will be created" }, "to": { "type": "array", "items": { "type": "string", "description": "List of recipient handles who will receive the message once the draft is sent" } }, "cc": { "type": "array", "items": { "type": "string", "description": "List of recipient handles who will receive a copy of the message once the draft is sent" } }, "bcc": { "type": "array", "items": { "type": "string", "description": "List of the recipient handles who will receive a blind copy of the message once the draft is sent" } }, "subject": { "type": "string", "description": "Subject of the draft." }, "body": { "type": "string", "description": "Body of the draft" }, "attachments": { "description": "Binary data of attached files. Must use `Content-Type: multipart/form-data` if specified. See [example](https://gist.github.com/hdornier/e04d04921032e98271f46ff8a539a4cb).", "type": "array", "items": { "type": "string", "format": "binary" } }, "mode": { "description": "Mode of the draft to create. Can be 'private' (draft is visible to the author only) or 'shared' (draft is visible to all teammates with access to the conversation).", "type": "string", "enum": [ "private", "shared" ], "default": "private" }, "signature_id": { "description": "ID of the signature to attach to this draft. If null, no signature is attached.", "type": "string" }, "should_add_default_signature": { "type": "boolean", "description": "Whether or not Front should try to resolve a signature for the message. Is ignored if signature_id is included. Default false;" } } }, "ReplyDraft": { "required": [ "author_id", "body", "channel_id" ], "allOf": [ { "$ref": "#/components/schemas/CreateDraft" }, { "type": "object", "properties": { "channel_id": { "type": "string", "description": "ID of the channel from which the draft will be sent" } } } ] }, "EditDraft": { "required": [ "author_id", "body", "channel_id" ], "allOf": [ { "$ref": "#/components/schemas/ReplyDraft" }, { "type": "object", "properties": { "version": { "type": "string", "description": "Version of the draft" }, "mode": { "description": "Mode of the draft to update. Can only be 'shared' (draft is visible to all teammates with access to the conversation).", "type": "string", "enum": [ "shared" ] } } } ] }, "DeleteDraft": { "required": [ "version" ], "properties": { "version": { "type": "string", "description": "Version of the draft" } } }, "CreateInbox": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string" }, "teammate_ids": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "OutboundMessage": { "required": [ "to", "body" ], "properties": { "to": { "type": "array", "items": { "type": "string", "description": "List of the recipient handles who will receive this message" } }, "cc": { "type": "array", "items": { "type": "string", "description": "List of the recipient handles who will receive a copy of this message" } }, "bcc": { "type": "array", "items": { "type": "string", "description": "List of the recipient handles who will receive a blind copy of this message" } }, "sender_name": { "type": "string", "description": "Name used for the sender info of the message" }, "subject": { "type": "string", "description": "Subject of the message for email message" }, "author_id": { "type": "string", "description": "ID of the teammate on behalf of whom the answer is sent" }, "body": { "type": "string", "description": "Body of the message" }, "text": { "type": "string", "description": "Text version of the body for email messages" }, "options": { "type": "object", "properties": { "tag_ids": { "type": "array", "items": { "type": "string", "description": "List of tag IDs to add to the conversation" } }, "archive": { "type": "boolean", "default": true, "description": "Archive the conversation right when sending the message" } } }, "attachments": { "description": "Binary data of attached files. Must use `Content-Type: multipart/form-data` if specified. See [example](https://gist.github.com/hdornier/e04d04921032e98271f46ff8a539a4cb).", "type": "array", "items": { "type": "string", "format": "binary" } }, "signature_id": { "type": "string", "description": "ID of the signature to attach to this draft. If null, no signature is attached." }, "should_add_default_signature": { "type": "boolean", "description": "Whether or not Front should try to resolve a signature for the message. Is ignored if signature_id is included. Default false;" } } }, "OutboundReplyMessage": { "required": [ "body" ], "properties": { "to": { "type": "array", "items": { "type": "string", "description": "List of the recipient handles who will receive this message" } }, "cc": { "type": "array", "items": { "type": "string", "description": "List of the recipient handles who will receive a copy of this message" } }, "bcc": { "type": "array", "items": { "type": "string", "description": "List of the recipient handles who will receive a blind copy of this message" } }, "sender_name": { "type": "string", "description": "Name used for the sender info of the message" }, "subject": { "type": "string", "description": "Subject of the message for email message" }, "author_id": { "type": "string", "description": "ID of the teammate on behalf of whom the answer is sent" }, "channel_id": { "type": "string", "description": "Channel ID the message is sent from" }, "body": { "type": "string", "description": "Body of the message" }, "text": { "type": "string", "description": "Text version of the body for email messages" }, "options": { "type": "object", "properties": { "tag_ids": { "type": "array", "items": { "type": "string", "description": "List of tag IDs to add to the conversation" } }, "archive": { "type": "boolean", "default": true, "description": "Archive the conversation right when sending the message. `true` by default" } } }, "attachments": { "description": "Binary data of attached files. Must use `Content-Type: multipart/form-data` if specified. See [example](https://gist.github.com/hdornier/e04d04921032e98271f46ff8a539a4cb).", "type": "array", "items": { "type": "string", "format": "binary" } }, "signature_id": { "type": "string", "description": "ID of the signature to attach to this draft. If null, no signature is attached." }, "should_add_default_signature": { "type": "boolean", "description": "Whether or not Front should try to resolve a signature for the message. Is ignored if signature_id is included. Default false;" } } }, "CustomMessage": { "required": [ "sender", "body" ], "properties": { "sender": { "type": "object", "description": "Data of the sender", "required": [ "handle" ], "properties": { "contact_id": { "type": "string", "description": "ID of the contact in Front corresponding to the sender" }, "name": { "type": "string", "description": "Name of the sender" }, "handle": { "type": "string", "description": "Handle of the sender. It can be any string used to uniquely identify the sender" } } }, "subject": { "type": "string", "description": "Subject of the message" }, "body": { "type": "string", "description": "Body of the message" }, "body_format": { "type": "string", "description": "Format of the message body. Can be `markdown` (default) or `html`.", "enum": [ "html", "markdown" ], "default": "markdown" }, "metadata": { "type": "object", "properties": { "thread_ref": { "type": "string", "description": "Reference which will be used to thread messages. If omitted, Front threads by sender instead" }, "headers": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Custom object where any internal information can be stored" } } }, "attachments": { "description": "Binary data of attached files. Must use `Content-Type: multipart/form-data` if specified. See [example](https://gist.github.com/hdornier/e04d04921032e98271f46ff8a539a4cb).", "type": "array", "items": { "type": "string", "format": "binary" } } } }, "ImportMessage": { "required": [ "sender", "to", "body", "external_id", "created_at", "metadata" ], "properties": { "sender": { "type": "object", "description": "Data of the sender", "required": [ "handle" ], "properties": { "author_id": { "type": "string", "description": "ID of the teammate who is the author of the message. Ignored if the message is inbound." }, "name": { "type": "string", "description": "Name of the sender" }, "handle": { "type": "string", "description": "Handle of the sender. It can be any string used to uniquely identify the sender" } } }, "to": { "type": "array", "items": { "type": "string", "description": "List of the recipient handles who will receive this message" } }, "cc": { "type": "array", "items": { "type": "string", "description": "List of the recipient handles who will receive a copy of this message" } }, "bcc": { "type": "array", "items": { "type": "string", "description": "List of the recipient handles who will receive a blind copy of this message" } }, "subject": { "type": "string", "description": "Subject of the message" }, "body": { "type": "string", "description": "Body of the message" }, "body_format": { "type": "string", "description": "Format of the message body. Can be `markdown` (default) or `html`, and can only be specified for `email` type.", "enum": [ "html", "markdown" ], "default": "markdown" }, "external_id": { "type": "string", "description": "External identifier of the message. Front won't import two messages with the same external ID." }, "created_at": { "type": "integer", "description": "Date at which the message as been sent or received." }, "type": { "type": "string", "description": "Type of the message to import. Default is `email`.", "enum": [ "email", "sms", "intercom", "custom" ], "default": "email" }, "assignee_id": { "type": "string", "description": "ID of the teammate who will be assigned to the conversation." }, "tags": { "type": "array", "description": "List of tag names to add to the conversation", "items": { "type": "string" } }, "metadata": { "type": "object", "required": [ "is_inbound" ], "properties": { "thread_ref": { "type": "string", "description": "Reference which will be used to thread messages. If omitted, Front threads by sender instead" }, "is_inbound": { "type": "boolean", "description": "Determines if message is received (inbound) or sent (outbound) by you." }, "is_archived": { "type": "boolean", "description": "Determines if message is archived after import." }, "should_skip_rules": { "type": "boolean", "description": "Determines if rules should be skipped. `true` by default.", "default": true } } }, "attachments": { "description": "Binary data of attached files. Must use `Content-Type: multipart/form-data` if specified. See [example](https://gist.github.com/hdornier/e04d04921032e98271f46ff8a539a4cb).", "type": "array", "items": { "type": "string", "format": "binary" } } } }, "CreateShift": { "required": [ "name", "color", "timezone", "times", "teammate_ids" ], "properties": { "name": { "type": "string", "description": "Name of the shift" }, "color": { "type": "string", "enum": [ "black", "grey", "pink", "purple", "blue", "teal", "green", "yellow", "orange", "red" ], "description": "Color of the shift" }, "timezone": { "type": "string", "description": "A timezone name as defined in the IANA tz database" }, "times": { "description": "The shift intervals per day of the week", "$ref": "#/components/schemas/ShiftIntervals" }, "teammate_ids": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "UpdateShift": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the shift" }, "color": { "type": "string", "enum": [ "black", "grey", "pink", "purple", "blue", "teal", "green", "yellow", "orange", "red" ], "description": "Color of the shift" }, "timezone": { "type": "string", "description": "A timezone name as defined in the IANA tz database" }, "times": { "description": "The shift intervals per day of the week", "$ref": "#/components/schemas/ShiftIntervals" }, "teammate_ids": { "type": "array", "description": "List of all the teammate ids who will be part of this shift.", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "CreatePrivateSignature": { "type": "object", "description": "A signature that can be used to sign messages.", "required": [ "name", "body" ], "properties": { "name": { "type": "string", "description": "Name of the signature" }, "sender_info": { "type": "string", "description": "Sender info of the signature that will appear in the From line of emails sent." }, "body": { "type": "string", "description": "Body of the signature" }, "is_default": { "type": "boolean", "description": "If true, the signature will be set as the default signature for the teammate.", "default": false }, "channel_ids": { "type": "array", "items": { "type": "string", "description": "The specific channels this signature if available in. If omitted or null, is available in all channels the teammate has access to." } } } }, "CreateSharedSignature": { "type": "object", "description": "A signature that can be used to sign messages.", "required": [ "name", "body" ], "properties": { "name": { "type": "string", "description": "Name of the signature" }, "sender_info": { "type": "string", "description": "Sender info of the signature that will appear in the From line of emails sent." }, "body": { "type": "string", "description": "Body of the signature" }, "is_visible_for_all_teammate_channels": { "type": "boolean", "description": "Whether or not the signature is visible in all individual channels for teammates in the given team." }, "is_default": { "type": "boolean", "description": "If true, the signature will be set as the default signature for the team.", "default": false }, "channel_ids": { "type": "array", "items": { "type": "string", "description": "The specific shared channels this signature if available in. If omitted or null, is available in all shared channels available to this team." } } } }, "UpdateSignature": { "type": "object", "description": "A signature that can be used to sign messages.", "properties": { "name": { "type": "string", "description": "Name of the signature" }, "sender_info": { "type": "string", "description": "Sender info of the signature that will appear in the From line of emails sent." }, "body": { "type": "string", "description": "Body of the signature" }, "is_visible_for_all_teammate_channels": { "type": "boolean", "description": "Whether or not the signature is visible in all individual channels for teammates in the given team. Can only be set for shared signatures." }, "is_default": { "type": "boolean", "description": "If true, the signature will be set as the default signature for the team or teammate.", "default": false }, "channel_ids": { "type": "array", "items": { "type": "string", "description": "The specific shared channels this signature if available in. If null, then it will be available in all channels. If unspecified, will retain previous value." } } } }, "CreateTag": { "type": "object", "description": "A tag is a label that can be used to classify conversations.", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "Name of the tag" }, "highlight": { "type": "string", "description": "Highlight color of the tag.", "enum": [ "grey", "pink", "red", "orange", "yellow", "green", "light-blue", "blue", "purple" ] }, "is_visible_in_conversation_lists": { "type": "boolean", "description": "Whether the tag is visible in conversation lists.", "default": false } } }, "UpdateTag": { "properties": { "name": { "type": "string", "description": "Name of the tag" }, "highlight": { "type": "string", "description": "Highlight color of the tag.", "enum": [ "grey", "pink", "red", "orange", "yellow", "green", "light-blue", "blue", "purple" ] }, "parent_tag_id": { "type": "string", "description": "ID of the parent of this tag. Set to `null` to remove the parent tag." }, "is_visible_in_conversation_lists": { "type": "boolean", "description": "Whether the tag is visible in conversation lists." } } }, "UpdateTeammate": { "properties": { "username": { "type": "string", "description": "New username. It must be unique and can only contains lowercase letters, numbers and underscores." }, "first_name": { "type": "string", "description": "New first name" }, "last_name": { "type": "string", "description": "New last name" }, "is_available": { "type": "boolean", "description": "New availability status" } } }, "CreateLink": { "type": "object", "description": "A link is used to connect a Front conversation to an external resource.", "required": [ "external_url" ], "properties": { "name": { "type": "string", "description": "Name of the link. If none is specified, the external_url is used as a default" }, "external_url": { "type": "string", "description": "Underlying identifying url of the link" } } }, "UpdateLink": { "properties": { "name": { "type": "string", "description": "Name of the link" } } }, "AccountResponse": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" }, "related": { "type": "object", "properties": { "contacts": { "type": "string", "description": "Link to contacts associated to the account" } } } } }, "id": { "type": "string", "description": "Unique identifier of the account" }, "name": { "type": "string", "description": "Account name" }, "logo_url": { "type": "string", "description": "URL of the Account's logo" }, "description": { "type": "string", "description": "Account Description" }, "domains": { "type": "array", "items": { "type": "string", "description": "List of domains associated to the Account" } }, "external_id": { "type": "string", "description": "ID of the Account in an External system, such as your backoffice system or CRM" }, "custom_fields": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Custom Attributes for this account" }, "created_at": { "type": "integer", "description": "Timestamp when the account was created" }, "updated_at": { "type": "integer", "description": "Timestamp when the account was updated" } } }, "EventResponse": { "description": "An event is created everytime something interesting is happening in Front.", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "id": { "type": "integer", "description": "Unique identifier of the event" }, "type": { "type": "string", "description": "Type of event", "enum": [ "assign", "unassign", "archive", "reopen", "trash", "restore", "comment", "inbound", "outbound", "move", "forward", "tag", "untag", "sending_error" ] }, "emitted_at": { "type": "string", "description": "Date at which the event has been emitted" }, "source": { "type": "object", "description": "Event source", "properties": { "_meta": { "type": "object", "description": "Metadata about the resource", "properties": { "type": { "type": "string", "description": "Type of resource", "enum": [ "teamate", "inbox", "tag", "comment", "message" ] } } }, "data": { "description": "The resource which triggered the event", "oneOf": [ { "$ref": "#/components/schemas/RuleResponse" }, { "$ref": "#/components/schemas/TeammateResponse" }, { "type": "array", "items": { "$ref": "#/components/schemas/InboxResponse" } } ] } } }, "target": { "type": "object", "description": "Partial representation (type & id) of the event's target", "properties": { "_meta": { "type": "object", "description": "Metadata about the resource", "properties": { "type": { "description": "Type of resource", "type": "string", "enum": [ "teamate", "inbox", "tag", "comment", "message", "link" ] }, "data": { "description": "The resource which received the event", "oneOf": [ { "$ref": "#/components/schemas/TeammateResponse" }, { "$ref": "#/components/schemas/InboxResponse" }, { "$ref": "#/components/schemas/TagResponse" }, { "$ref": "#/components/schemas/CommentResponse" }, { "$ref": "#/components/schemas/MessageResponse" }, { "$ref": "#/components/schemas/LinkResponse" } ] } } } } }, "conversation": { "$ref": "#/components/schemas/ConversationResponse", "description": "The conversation on which the event happened" } } }, "IdentityResponse": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "id": { "type": "integer", "description": "Unique ID of company" }, "name": { "type": "string", "description": "Name of company" } } }, "AnalyticsExportResponse2": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to analytics export" } } }, "status": { "type": "string", "enum": [ "running", "done", "failed" ], "description": "Status of the analytics" }, "progress": { "type": "integer", "minimum": 0, "maximum": 100, "description": "Number ranging from 0 to 100 corresponding to the percentage of the analytics processed." }, "url": { "type": "string", "description": "The URL from which the export data can be downloaded." }, "size": { "type": "number", "description": "Size (in bytes) of the export data." }, "created_at": { "type": "number", "description": "Timestamp (in seconds) at which the export was requested." }, "filters": { "$ref": "#/components/schemas/AnalyticsFilters" } } }, "AnalyticsReportResponse2": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to analytics job." } } }, "status": { "type": "string", "enum": [ "running", "done", "failed" ], "description": "Status of the report." }, "progress": { "type": "integer", "minimum": 0, "maximum": 100, "description": "Number ranging from 0 to 100 corresponding to the percentage of the analytics processed." }, "metrics": { "type": "array", "description": "The metrics computed for the report.", "items": { "$ref": "#/components/schemas/AnalyticsScalar2" } } } }, "AnalyticsScalar2": { "type": "object", "properties": { "id": { "$ref": "#/components/schemas/AnalyticsMetricId" }, "type": { "$ref": "#/components/schemas/AnalyticsScalarType" }, "value": { "$ref": "#/components/schemas/AnalyticsScalarValue" } } }, "AnalyticsScalarType": { "type": "string", "enum": [ "number", "percentage", "string", "duration" ] }, "AnalyticsScalarValue": { "type": "object", "properties": { "id": { "$ref": "#/components/schemas/AnalyticsMetricId" }, "type": { "$ref": "#/components/schemas/AnalyticsScalarType" }, "value": { "oneOf": [ { "type": "integer" }, { "type": "string" }, { "type": "object", "properties": { "label": { "type": "string" }, "resource": { "type": "object", "properties": { "id": { "type": "number" }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to a resource." } } } } } } } ], "description": "The value of a scalar metric." } } }, "Attachment": { "properties": { "id": { "type": "string" }, "filename": { "type": "string", "description": "Name of the attached file" }, "url": { "type": "string", "description": "URL to download the attached file" }, "content_type": { "type": "string", "description": "Content type of the attached file" }, "size": { "type": "integer", "description": "Size (in byte) of the attached file" }, "metadata": { "description": "Attachment metadata", "type": "object", "properties": { "is_inline": { "type": "boolean", "description": "Whether or not the attachment is part of the message body" }, "cid": { "type": "string", "description": "Unique identifier used to link an attachment to where it is used in the message body" } } } } }, "MessageTemplateFolderResponse": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" }, "related": { "type": "object", "properties": { "owner": { "type": "string", "description": "Link to resource's owner" } } } } }, "id": { "type": "string", "description": "Unique identifier of the message template folder", "example": "rsf_123" }, "name": { "type": "string", "description": "Name of the message template folder", "example": "PTO templates" } } }, "MessageTemplateResponse": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" }, "related": { "type": "object", "properties": { "owner": { "type": "string", "description": "Link to resource's owner" } } } } }, "id": { "type": "string", "description": "Unique identifier of the response", "example": "rsp_123" }, "name": { "type": "string", "description": "Name of the response", "example": "Out of Office" }, "subject": { "type": "string", "description": "Subject of the response", "example": "Out of Office" }, "body": { "type": "string", "description": "Body of the response", "example": "Sorry, I'm OOO until October 25th." }, "attachments": { "type": "array", "description": "List of files attached to the response", "items": { "$ref": "#/components/schemas/Attachment" }, "example": [] }, "is_available_for_all_inboxes": { "type": "boolean", "description": "Whether or not the template is available in all inboxes.", "example": true }, "inbox_ids": { "type": "array", "items": { "type": "string", "description": "List of inboxes the template is available in, null if there are no restrictions.", "example": null } } } }, "ContactGroupResponses": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" }, "related": { "type": "object", "properties": { "contacts": { "type": "string", "description": "Link to group contacts" }, "owner": { "type": "string", "description": "Link to group owner" } } } } }, "id": { "type": "string", "description": "Unique identifier of the group" }, "name": { "type": "string", "description": "Name of the group" }, "is_private": { "type": "boolean", "description": "Whether or not the contact is individual" } } }, "ContactNoteResponses": { "type": "object", "properties": { "author": { "$ref": "#/components/schemas/TeammateResponse", "description": "Teammate who wrote the note" }, "body": { "type": "string", "description": "Content of the note" }, "created_at": { "type": "integer", "description": "Date at which the note have been created" } } }, "ChannelResponse": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" }, "related": { "type": "object", "properties": { "inbox": { "type": "string", "description": "Link to channel inbox" }, "owner": { "type": "string", "description": "Link to channel owner" } } } } }, "id": { "type": "string", "description": "Unique identifier for the channel" }, "address": { "type": "string", "description": "Address receiving the messages" }, "types": { "type": "string", "description": "Type of the channel", "enum": [ "smtp", "imap", "twilio", "twitter", "facebook", "smooch", "intercom", "truly", "custom" ] }, "send_as": { "type": "string", "description": "Address which appears as the sender for messages sent from Front" }, "settings": { "type": "object", "description": "Channel settings", "properties": { "undo_send_time": { "type": "integer", "description": "The time (measured in seconds) that users have to undo a send operation in the channel.", "enum": [ 0, 5, 10, 15, 30, 60 ] }, "all_teammates_can_reply": { "type": "boolean", "description": "Whether teammates without inbox access can reply on this channel. Only present for shared channels; omitted for private channels." } } }, "is_private": { "type": "boolean", "default": false, "description": "Whether or not the channel is individual" }, "is_valid": { "type": "boolean", "default": false, "description": "Whether or not the channel configuration is valid" } } }, "CommentResponse": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" }, "related": { "type": "object", "properties": { "conversations": { "type": "string", "description": "Link to comment's conversation" }, "mentions": { "type": "string", "description": "Link to comment mentions" } } } } }, "id": { "type": "string", "description": "Unique identifier of the comment" }, "author": { "description": "Teammate who wrote the comment", "$ref": "#/components/schemas/TeammateResponse" }, "body": { "type": "string", "description": "Content of the comment" }, "posted_at": { "type": "integer", "description": "Date at which the comment was posted" }, "attachments": { "type": "array", "items": { "$ref": "#/components/schemas/Attachment" }, "description": "List of files attached to the comment" } } }, "ContactResponse": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" }, "related": { "type": "object", "properties": { "notes": { "type": "string", "description": "Link to contact notes" }, "conversations": { "type": "string", "description": "Link to contact conversations" }, "owner": { "type": "string", "description": "Link to contact owner" } } } } }, "id": { "type": "string", "description": "Unique identifier of the contact" }, "name": { "type": "string", "description": "Contact name" }, "description": { "type": "string", "description": "Contact description" }, "avatar_url": { "type": "string", "description": "URL of the contact's avatar" }, "is_spammer": { "type": "boolean", "description": "Whether or not the contact is marked as a spammer" }, "links": { "type": "array", "description": "List of all the links of the contact", "items": { "type": "string" } }, "groups": { "type": "array", "description": "List of the groups the contact belongs to.", "items": { "$ref": "#/components/schemas/ContactGroupResponses" } }, "handles": { "type": "array", "description": "List of the handles and sources with which the contact is reachable.", "items": { "$ref": "#/components/schemas/ContactHandle" } }, "custom_fields": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Custom field attributes for this contact." }, "is_private": { "type": "boolean", "description": "Whether or not the contact is individual" } } }, "ConversationResponse": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" }, "related": { "type": "object", "properties": { "events": { "type": "string", "description": "Link to conversation events" }, "followers": { "type": "string", "description": "Link to conversation followers" }, "messages": { "type": "string", "description": "Link to conversation messages" }, "comments": { "type": "string", "description": "Link to conversation comment" }, "inboxes": { "type": "string", "description": "Link to conversation inboxes" }, "last_message": { "type": "string", "description": "Link to last message of the conversation" } } } } }, "id": { "type": "string", "description": "Unique identifier of the message" }, "subject": { "type": "string", "description": "Subject of the message for email message" }, "status": { "type": "string", "description": "Status of the conversation", "enum": [ "archived", "unassigned", "deleted", "assigned" ] }, "assignee": { "$ref": "#/components/schemas/TeammateResponse", "description": "Partial representation of the teammate assigned to the conversation" }, "recipient": { "$ref": "#/components/schemas/RecipientResponse", "description": "Main recipient of the conversation" }, "tags": { "type": "array", "description": "List of the tags for this conversation", "items": { "$ref": "#/components/schemas/TagResponse" } }, "links": { "type": "array", "description": "List of the links for this conversation", "items": { "$ref": "#/components/schemas/LinkResponse" } }, "created_at": { "type": "integer", "description": "Timestamp at which the conversation have been created." }, "is_private": { "type": "boolean", "description": "Whether or not the conversation is private" }, "scheduled_reminders": { "type": "array", "description": "List of scheduled (non-expired and non-canceled) reminders for this conversation", "items": { "$ref": "#/components/schemas/Reminder" } }, "metadata": { "type": "object", "description": "Optional metadata about the conversation", "properties": { "external_conversation_ids": { "type": "array", "description": "List of external_ids for partner channel associated with the conversation. Only present for partner channel token authenticated requests.", "items": { "type": "string" } } } } } }, "CustomFieldResponse": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "id": { "type": "string", "description": "Unique identifier of the custom field" }, "name": { "type": "string", "description": "Name of the custom field" }, "description": { "type": "string", "description": "Description of the custom field" }, "type": { "type": "string", "description": "Type of the custom field", "enum": [ "string", "boolean", "datetime", "number" ] } } }, "InboxResponse": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" }, "related": { "type": "object", "properties": { "teammates": { "type": "string", "description": "Link to inbox teammates" }, "conversations": { "type": "string", "description": "Link to inbox conversations" }, "channels": { "type": "string", "description": "Link to inbox channels" }, "owner": { "type": "string", "description": "Link to inbox owner" } } } } }, "id": { "type": "string", "description": "Unique identifier for the inbox" }, "name": { "type": "string", "description": "Name of the inbox" }, "is_private": { "type": "boolean", "description": "Whether or not the inbox is individual" } } }, "MessageResponse": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" }, "related": { "type": "object", "properties": { "conversation": { "type": "string", "description": "Link to message converation" }, "message_replied_to": { "type": "string", "description": "Link to message this message replied to" }, "message_seen": { "type": "string", "description": "Link to message seen informatiion" } } } } }, "id": { "type": "string", "description": "Unique identifier of the message" }, "type": { "type": "string", "description": "Type of the message", "enum": [ "email", "tweet", "sms", "smooch", "facebook", "intercom", "truly-call", "custom" ] }, "is_inbound": { "type": "boolean", "description": "Whether or not the message has been received or sent" }, "draft_mode": { "type": "string", "nullable": true, "description": "If the message is a draft, describes the draft mode. Can be 'private' (draft is visible to the author only) or 'shared' (draft is visible to all teammates with access to the conversation).", "enum": [ "shared", "private" ] }, "error_type": { "type": "string", "description": "Type of the error when the draft failed to be sent" }, "version": { "type": "string", "description": "The current version of the message in Front" }, "created_at": { "type": "integer", "description": "Date at which the message as been sent or received" }, "subject": { "type": "string", "description": "Subject of the message" }, "blurb": { "type": "string", "description": "Preview of the message body" }, "author": { "$ref": "#/components/schemas/TeammateResponse", "description": "Front teammate who sent this message" }, "recipients": { "type": "array", "items": { "$ref": "#/components/schemas/RecipientResponse" } }, "body": { "type": "string", "description": "Body of the message" }, "text": { "type": "string", "description": "Text version of the body for email messages" }, "attachments": { "type": "array", "items": { "$ref": "#/components/schemas/Attachment" }, "description": "List of files attached to the message" }, "signature": { "$ref": "#/components/schemas/SignatureResponse", "description": "The signature attached to this message" }, "metadata": { "type": "object", "description": "Optional metadata about the message", "properties": { "intercom_url": { "type": "string", "description": "For `intercom` messages only. URL of the Intercom conversation the message is comming from." }, "duration": { "type": "integer", "description": "For `truly-call` messages only. Length of the call in seconds." }, "have_been_answered": { "type": "boolean", "description": "For `truly-call` messages only. Whether or not the call have been answered." }, "external_id": { "type": "string", "description": "For `tweet` or 'custom' (partner channel token authenticated) messages only. Unique message identifier in the underlying provider (Twitter or Partner). For custom messages, only present for partner channel token authenticated requests." }, "twitter_url": { "type": "string", "description": "For `tweet` messages only. URL of the tweet." }, "is_retweet": { "type": "boolean", "description": "For `tweet` messages only. Whether or not the tweet is a retweet." }, "have_been_retweeted": { "type": "boolean", "description": "For `tweet` messages only. Whether or not the tweet have been retweeted." }, "have_been_favorited": { "type": "boolean", "description": "For `tweet` messages only. Whether or not the tweet have been favorited." }, "thread_ref": { "type": "string", "description": "For `custom` messages only. Custom reference which is used to thread messages." }, "headers": { "type": "object", "additionalProperties": { "type": "string" }, "description": "For `custom` messages only. Custom object holding internal information." } } } } }, "RecipientResponse": { "properties": { "_links": { "type": "object", "properties": { "related": { "type": "object", "properties": { "contact": { "type": "string", "description": "Link to recipient contact" } } } } }, "name": { "type": "string", "description": "Name of the recipient." }, "handle": { "type": "string", "description": "Handle of the contact. Can be any string used to uniquely identify the contact" }, "role": { "type": "string", "description": "Role of the recipient", "enum": [ "from", "to", "cc", "bcc" ] } } }, "Reminder": { "properties": { "_links": { "type": "object", "properties": { "related": { "type": "object", "properties": { "owner": { "type": "string", "description": "Link to conversation owner" } } } } }, "created_at": { "type": "integer", "description": "Timestamp at which the conversation reminder has been created" }, "scheduled_at": { "type": "integer", "description": "Timestamp that the conversation reminder has been scheduled for" }, "updated_at": { "type": "integer", "description": "Timestamp at which the conversation reminder has been updated" } } }, "RoleResponse": { "properties": { "_links": { "type": "object", "properties": { "related": { "type": "object", "properties": { "owner": { "type": "string", "description": "Link to role owner" } } } } }, "id": { "type": "string", "description": "Unique identifier of the role" }, "name": { "type": "string", "description": "Name of the role" } } }, "RuleResponse": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" }, "related": { "type": "object", "properties": { "owner": { "type": "string", "description": "Link to rule owner" } } } } }, "id": { "type": "string", "description": "Unique identifier of the rule" }, "name": { "type": "string", "description": "Name of the rule" }, "actions": { "type": "array", "description": "List of the rule's actions description", "items": { "type": "string" } }, "is_private": { "type": "boolean", "description": "Whether or not the rule is individual" } } }, "SeenReceiptResponse": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to self" }, "related": { "type": "object", "properties": { "message": { "type": "string", "description": "Link to message associated with the seen record" } } } } }, "first_seen_at": { "type": "string", "description": "Timestamp when message was seen" }, "seen_by": { "$ref": "#/components/schemas/ContactHandle" } } }, "ShiftResponse": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" }, "related": { "type": "object", "properties": { "teammates": { "type": "string", "description": "Link to shift teammates" }, "owner": { "type": "string", "description": "Link to shift owner" } } } } }, "id": { "type": "string", "description": "Unique identifier of the shift" }, "name": { "type": "string", "description": "Name of the shift" }, "color": { "type": "string", "enum": [ "black" ], "description": "Color of the shift" }, "timezone": { "type": "string", "description": "A timezone name as defined in the IANA tz database" }, "times": { "description": "The shift intervals per day of the week", "$ref": "#/components/schemas/ShiftIntervals" }, "created_at": { "type": "integer" }, "updated_at": { "type": "integer" } } }, "SignatureResponse": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" }, "related": { "type": "object", "properties": { "owner": { "type": "string", "description": "Link to signature's owner (either a team or teammate)" } } } } }, "id": { "type": "string", "description": "Unique identifier of the signature", "example": "sig_123" }, "name": { "type": "string", "description": "Name of the signature" }, "body": { "type": "string", "description": "Body of the signature" }, "sender_info": { "type": "string", "description": "Sender info of the signature" }, "is_visible_for_all_teammate_channels": { "type": "boolean", "description": "Whether or not the signature is available in teammate channels.", "example": true }, "is_default": { "type": "boolean", "description": "Whether the signature is the default signature for the team or teammate.", "example": false }, "channel_ids": { "type": "array", "items": { "type": "string", "description": "List of channels the signature is available in. If belonging to a teammate, represents all channels this can be used in. If belonging to a team, represents all team channels this can be used in. If null, there are no restrictions." } } } }, "TagResponse": { "type": "object", "description": "A tag is a label that can be used to classify conversations.", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" }, "related": { "type": "object", "properties": { "conversations": { "type": "string", "description": "Link to tag conversations" }, "owner": { "type": "string", "description": "Link to tag owner" }, "children": { "type": "string", "description": "Link to tag children" } } } } }, "id": { "type": "string", "description": "Unique identifier of the tag" }, "name": { "type": "string", "description": "Name of the tag" }, "highlight": { "type": "string", "description": "Highlight color of the tag.", "enum": [ "grey", "pink", "red", "orange", "yellow", "green", "light-blue", "blue", "purple" ] }, "is_private": { "type": "boolean", "description": "Whether or not the tag is individual" }, "is_visible_in_conversation_lists": { "type": "boolean", "description": "Whether the tag is visible in conversation lists." }, "created_at": { "type": "integer", "description": "Timestamp of tag create creation" }, "updated_at": { "type": "integer", "description": "Timestamp of the last tag update" } } }, "TeamResponse": { "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "id": { "type": "string", "description": "Unique identifier of the team" }, "name": { "type": "string", "description": "Name of the team" }, "inboxes": { "type": "array", "description": "List of the inboxes in the team", "items": { "$ref": "#/components/schemas/InboxResponse" } }, "members": { "type": "array", "description": "List of the teammates that have access to the team", "items": { "$ref": "#/components/schemas/TeammateResponse" } } } }, "TeammateResponse": { "description": "A teammate is a user in Front.", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" }, "related": { "type": "object", "properties": { "inboxes": { "type": "string", "description": "Link to teammate's inboxes" }, "conversations": { "type": "string", "description": "Link to teammate's conversations" } } } } }, "id": { "type": "string", "description": "Unique identifier of the teammate" }, "email": { "type": "string", "description": "Email address of the teammate" }, "username": { "type": "string", "description": "Username of the teammate (used for \"@\" mentions)" }, "first_name": { "type": "string", "description": "First name of the teammate" }, "last_name": { "type": "string", "description": "Last name of the teammate" }, "is_admin": { "type": "boolean", "description": "Whether or not the teammate is an admin in your company" }, "is_available": { "type": "boolean", "description": "Whether or not the teammate is available" }, "is_blocked": { "type": "boolean", "description": "Whether or not the teammate account has been blocked" } } }, "LinkResponse": { "type": "object", "description": "A link used to connect a Front conversation to an external resource.", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "id": { "type": "string", "description": "Unique identifier of the link" }, "name": { "type": "string", "description": "Display name of the link" }, "type": { "type": "string", "description": "Type of the link. Typically associated with the underlying link provider (if known)" }, "external_url": { "type": "string", "description": "Underlying identifying external URL of the link" } } } }, "securitySchemes": { "http": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT" } }, "parameters": { "activityQuery": { "name": "q", "in": "query", "description": "Search query object with optional properties `before`, `after`, or `types`. `before` and `after` should be a timestamp in seconds with up to 3 decimal places. `types` should be a list of event types.", "schema": { "type": "string" } }, "cardQuery": { "name": "q", "in": "query", "description": "Search query object with the optional properties `updated_after` and `updated_before`, whose value should be a timestamp in seconds with up to 3 decimal places.", "schema": { "type": "string" } }, "conversationQuery": { "name": "q", "in": "query", "description": "Search query object with a property `statuses`, whose value should be a list of conversation statuses (`assigned`, `unassigned`, `archived`, or `deleted`).", "schema": { "type": "string" } }, "topicQuery": { "name": "q", "in": "query", "description": "Search query object with a property `types`, whose value should be a list of link types (examples - `web`, `jira`, `asana` ).", "schema": { "type": "string" } }, "pageToken": { "name": "page_token", "in": "query", "description": "Token to use to request the next page", "schema": { "type": "string" } }, "limit": { "name": "limit", "in": "query", "description": "Max number of results per page", "schema": { "type": "integer", "maximum": 100 } }, "sortBy": { "name": "sort_by", "in": "query", "description": "Field used to sort the records", "schema": { "type": "string" } }, "sortOrder": { "name": "sort_order", "in": "query", "description": "Order by which results should be sorted", "schema": { "type": "string", "enum": [ "asc", "desc" ] } } }, "responses": { "listOfCannedAnswers": { "description": "Array of message templates", "content": { "application/json": { "schema": { "type": "object", "properties": { "_pagination": { "type": "object", "properties": { "next": { "type": "string", "description": "Link to next page of results" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/MessageTemplateResponse" } } } } } } }, "listOfCannedAnswerFolders": { "description": "Array of message template folders", "content": { "application/json": { "schema": { "type": "object", "properties": { "_pagination": { "type": "object", "properties": { "next": { "type": "string", "description": "Link to next page of results" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/MessageTemplateResponse" } } } } } } }, "listOfSignatures": { "description": "Array of signatures", "content": { "application/json": { "schema": { "type": "object", "properties": { "_pagination": { "type": "object", "properties": { "next": { "type": "string", "description": "Link to next page of results" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/SignatureResponse" } } } } } } }, "listOfInboxes": { "description": "Array of Inboxes", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/InboxResponse" } } } } } } }, "listOfComments": { "description": "Array of Comments", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/CommentResponse" } } } } } } }, "listOfTeams": { "description": "Array of teams", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/TeamResponse" } } } } } } }, "listOfTeammates": { "description": "Array of teammates", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/TeammateResponse" } } } } } } }, "listOfShifts": { "description": "Array of Shifts", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/ShiftResponse" } } } } } } }, "listOfContacts": { "description": "Array of contacts", "content": { "application/json": { "schema": { "type": "object", "properties": { "_pagination": { "type": "object", "properties": { "next": { "type": "string", "description": "Link to next page of results" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/ContactResponse" } } } } } } }, "listOfAccounts": { "description": "Array of accounts", "content": { "application/json": { "schema": { "type": "object", "properties": { "_pagination": { "type": "object", "properties": { "next": { "type": "string", "description": "Link to next page of results" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/AccountResponse" } } } } } } }, "listOfContactGroups": { "description": "Array of contact groups", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/ContactGroupResponses" } } } } } } }, "listOfContactNotes": { "description": "Array of contact notes", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/ContactNoteResponses" } } } } } } }, "listOfMessages": { "description": "Array of messages", "content": { "application/json": { "schema": { "type": "object", "properties": { "_pagination": { "type": "object", "properties": { "next": { "type": "string", "description": "Link to next page of results" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/MessageResponse" } } } } } } }, "listOfSeenReceipts": { "description": "Array of seen receipts", "content": { "application/json": { "schema": { "type": "object", "properties": { "_pagination": { "type": "object", "properties": { "next": { "type": "string", "description": "Link to next page of results" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/SeenReceiptResponse" } } } } } } }, "listOfConversations": { "description": "Array of conversations", "content": { "application/json": { "schema": { "type": "object", "properties": { "_pagination": { "type": "object", "properties": { "next": { "type": "string", "description": "Link to next page of results" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/ConversationResponse" } } } } } } }, "listOfConversationSearchResults": { "description": "Array of conversation search results", "content": { "application/json": { "schema": { "type": "object", "properties": { "_pagination": { "type": "object", "properties": { "next": { "type": "string", "description": "Link to next page of results" } } }, "_total": { "type": "integer", "description": "Total number of matching conversations" }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/ConversationResponse" } } } } } } }, "listOfEvents": { "description": "Array of events", "content": { "application/json": { "schema": { "type": "object", "properties": { "_pagination": { "type": "object", "properties": { "next": { "type": "string", "description": "Link to next page of results" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/EventResponse" } } } } } } }, "listOfRoles": { "description": "Array of Roles", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/RoleResponse" } } } } } } }, "listOfRules": { "description": "Array of Rules", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/RuleResponse" } } } } } } }, "listOfTags": { "description": "Array of Tags", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/TagResponse" } } } } } } }, "listOfLinks": { "description": "Array of Links", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/LinkResponse" } } } } } } }, "listOfChannels": { "description": "Array of Channels", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/ChannelResponse" } } } } } } }, "listOfCustomFields": { "description": "Array of Custom Fields", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/CustomFieldResponse" } } } } } } }, "account": { "description": "An Account", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountResponse" } } } }, "contact": { "description": "A contact", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactResponse" } } } }, "message": { "description": "A message", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageResponse" } } } }, "conversation": { "description": "A conversation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConversationResponse" } } } }, "role": { "description": "A role", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoleResponse" } } } }, "rule": { "description": "A rule", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RuleResponse" } } } }, "tag": { "description": "A tag", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagResponse" } } } }, "link": { "description": "A link", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkResponse" } } } }, "attachment": { "description": "An attachment", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Attachment" } } } }, "identity": { "description": "API Token details", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IdentityResponse" } } } }, "cannedAnswer": { "description": "A message template", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageTemplateResponse" } } } }, "cannedAnswerFolder": { "description": "A message template folder", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageTemplateFolderResponse" } } } }, "signature": { "description": "A signature", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SignatureResponse" } } } }, "contactNote": { "description": "A contact note", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactNoteResponses" } } } }, "channel": { "description": "A channel", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChannelResponse" } } } }, "comment": { "description": "A comment", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommentResponse" } } } }, "inbox": { "description": "An inbox", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InboxResponse" } } } }, "shift": { "description": "A shift", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ShiftResponse" } } } }, "team": { "description": "A team", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamResponse" } } } }, "teammate": { "description": "A teammate", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeammateResponse" } } } }, "event": { "description": "An event", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventResponse" } } } }, "acceptedMessage": { "description": "An accepted message", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "string", "default": "accepted" }, "message_uid": { "type": "string", "description": "Message unique identifier" } } } } } }, "acceptedCannedAnswerFolderDeletion": { "description": "A message template folder accepted for deletion", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "string", "default": "accepted" }, "message_template_folder_id": { "type": "string", "description": "id of the message template to be deleted" } } } } } }, "accepted": { "description": "Request accepted", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "string", "default": "accepted" } } } } } } } }, "paths": { "/accounts": { "get": { "summary": "List Accounts", "description": "List the accounts of the company.", "tags": [ "Accounts" ], "operationId": "listAccounts", "parameters": [ { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/sortBy" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfAccounts" } } }, "post": { "summary": "Create account", "description": "Create a new account.", "tags": [ "Accounts" ], "operationId": "createAccount", "requestBody": { "content": { "application/json": { "schema": { "required": [ "name" ], "$ref": "#/components/schemas/Account" } } } }, "responses": { "201": { "$ref": "#/components/responses/account" } } } }, "/accounts/{account_id}": { "get": { "summary": "Fetch an account", "description": "Fetches an account", "tags": [ "Accounts" ], "operationId": "fetchAccount", "parameters": [ { "in": "path", "name": "account_id", "required": true, "description": "The Account ID", "schema": { "type": "string", "default": "acc_123" } } ], "responses": { "200": { "$ref": "#/components/responses/account" } } }, "patch": { "summary": "Update account", "description": "Updates an account.", "tags": [ "Accounts" ], "operationId": "updateAccount", "parameters": [ { "in": "path", "name": "account_id", "required": true, "description": "The Account ID", "schema": { "type": "string", "default": "acc_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Account" } } } }, "responses": { "200": { "$ref": "#/components/responses/account" } } }, "delete": { "summary": "Delete an account", "description": "Deletes an account", "tags": [ "Accounts" ], "operationId": "deleteAccount", "parameters": [ { "in": "path", "name": "account_id", "required": true, "description": "The Account ID", "schema": { "type": "string", "default": "acc_123" } } ], "responses": { "204": { "description": "No content" } } } }, "/accounts/{account_id}/contacts": { "get": { "summary": "List account contacts", "description": "Lists the contacts associated to an Account", "tags": [ "Accounts" ], "operationId": "listAccountContacts", "parameters": [ { "in": "path", "name": "account_id", "required": true, "description": "The Account ID", "schema": { "type": "string", "default": "acc_123" } }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/limit" } ], "responses": { "200": { "$ref": "#/components/responses/listOfContacts" } } }, "post": { "summary": "Add contact to Account", "description": "Adds a list of contacts to an Account", "tags": [ "Accounts" ], "operationId": "addContactsToAccount", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactIds" } } } }, "parameters": [ { "in": "path", "name": "account_id", "required": true, "description": "The Account ID", "schema": { "type": "string", "default": "acc_123" } } ], "responses": { "204": { "description": "No content" } } }, "delete": { "summary": "Remove contact from Account", "description": "Removes a list of contacts from an Account", "tags": [ "Accounts" ], "operationId": "removeContactsFromAccount", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactIds" } } } }, "parameters": [ { "in": "path", "name": "account_id", "required": true, "description": "The Account ID", "schema": { "type": "string", "default": "acc_123" } } ], "responses": { "204": { "description": "No content" } } } }, "/events": { "get": { "summary": "List events", "description": "Lists all the detailed events which occured in the inboxes of the company ordered in reverse chronological order (newest first).\n> ⚠️ Deprecated field may be included\n>\n> This route return the deprecated `last_message` conversation field for conversations\n> associated with individual events. Please use the conversation's\n> `_links.related.last_message` field instead.\n", "tags": [ "Events" ], "operationId": "listEvents", "parameters": [ { "$ref": "#/components/parameters/activityQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfEvents" } } } }, "/events/{event_id}": { "get": { "summary": "Get event", "description": "Fetch an event.\n> ⚠️ Deprecated field may be included\n>\n> This route return the deprecated `last_message` conversation field for conversations\n> associated with individual events. Please use the conversation's\n> `_links.related.last_message` field instead.\n", "tags": [ "Events" ], "operationId": "getEvent", "parameters": [ { "in": "path", "name": "event_id", "required": true, "description": "The event ID", "schema": { "type": "string", "default": "evt_55c8c149" } } ], "responses": { "200": { "$ref": "#/components/responses/event" } } } }, "/analytics/reports": { "post": { "summary": "Create a new analytics report.", "description": "Create a new analytics report for a set of metrics over a specific time span.\nThe report will be executed asynchronously. The response will include a link that can be used to retrieve the\nreport status & result.\n", "operationId": "create-analytics-report", "tags": [ "Analytics" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnalyticsReportRequest2" } } } }, "responses": { "201": { "description": "An analytics report.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnalyticsReportResponse2" } } } } } } }, "/analytics/reports/{report_uid}": { "get": { "summary": "Fetch an analytics report.", "operationId": "get-analytics-report", "tags": [ "Analytics" ], "parameters": [ { "in": "path", "name": "report_uid", "required": true, "description": "The report UID.", "schema": { "type": "string", "default": "723ec32796f12c6f05f6b124d8ef76191a38cec990e0f65d549206c51373f1a0" } } ], "responses": { "200": { "description": "An analytics report.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnalyticsReportResponse2" } } } } } } }, "/analytics/exports": { "post": { "summary": "Create a new analytics export.", "description": "Create a new analytics export of messages or activities over a specific time span.\nThe export will be executed asynchronously. The response will include a link that can be used to retrieve the\nexport status & result.\n", "operationId": "create-analytics-export", "tags": [ "Analytics" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnalyticsExportRequest2" } } } }, "responses": { "201": { "description": "An analytics export.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnalyticsExportResponse2" } } } } } } }, "/analytics/exports/{export_id}": { "get": { "summary": "Fetch an analytics export.", "operationId": "get-analytics-export", "tags": [ "Analytics" ], "parameters": [ { "in": "path", "name": "export_id", "required": true, "description": "The export ID.", "schema": { "type": "string", "default": "exp_123" } } ], "responses": { "200": { "description": "An analytics export.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnalyticsExportResponse2" } } } } } } }, "/download/{attachment_link_id}": { "get": { "summary": "Download attachment", "description": "Download an attachment file.", "tags": [ "Attachments" ], "operationId": "downloadAttachment", "parameters": [ { "in": "path", "name": "attachment_link_id", "required": true, "description": "The Attachment ID", "schema": { "type": "string", "default": "fil_55c8c149" } } ], "responses": { "200": { "$ref": "#/components/responses/attachment" } } } }, "/me": { "get": { "tags": [ "Token Identity" ], "summary": "API Token details", "description": "Fetch the details of the API token.", "operationId": "getTokenIdentity", "responses": { "200": { "$ref": "#/components/responses/identity" } } } }, "/message_template_folders": { "get": { "summary": "List folders", "description": "List the message template folders.", "tags": [ "Message Template Folders" ], "operationId": "listFolders", "responses": { "200": { "$ref": "#/components/responses/listOfCannedAnswerFolders" } } }, "post": { "summary": "Create folder", "description": "Create a new message template folder.", "tags": [ "Message Template Folders" ], "operationId": "createFolder", "requestBody": { "description": "Message template folder to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateMessageTemplateFolder" } } } }, "responses": { "201": { "$ref": "#/components/responses/cannedAnswerFolder" } } } }, "/teams/{team_id}/message_template_folders": { "get": { "summary": "List team folders", "description": "List the message template folders belonging to the requested team.", "tags": [ "Message Template Folders" ], "operationId": "listTeamFolders", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_55c8c149" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfCannedAnswerFolders" } } }, "post": { "summary": "Create team folder", "description": "Create a new message template folder belonging to the requested team.", "tags": [ "Message Template Folders" ], "operationId": "createTeamFolder", "requestBody": { "description": "Message template folder to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateMessageTemplateFolder" } } } }, "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_55c8c149" } } ], "responses": { "201": { "$ref": "#/components/responses/cannedAnswerFolder" } } } }, "/teammates/{teammate_id}/message_template_folders": { "get": { "summary": "List teammate folders", "description": "List the message template folders belonging to the requested teammate.", "tags": [ "Message Template Folders" ], "operationId": "listTeammateFolders", "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfCannedAnswerFolders" } } }, "post": { "summary": "Create teammate folder", "description": "Create a new message template folder belonging to the requested teammate.", "tags": [ "Message Template Folders" ], "operationId": "createTeammateFolder", "requestBody": { "description": "Message template folder to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateMessageTemplateFolder" } } } }, "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "201": { "$ref": "#/components/responses/cannedAnswerFolder" } } } }, "/message_template_folders/{message_template_folder_id}/message_template_folders": { "get": { "summary": "Get child folders", "description": "Fetch the child message templates folders of a message template folder.", "tags": [ "Message Template Folders" ], "operationId": "getChildFolders", "parameters": [ { "in": "path", "name": "message_template_folder_id", "required": true, "description": "The message template folder ID", "schema": { "type": "string", "default": "rsf_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfCannedAnswerFolders" } } }, "post": { "summary": "Create child folder", "description": "Create a new message template folder as a child of the given folder", "tags": [ "Message Template Folders" ], "operationId": "createChildFolder", "requestBody": { "description": "Message template folder to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateMessageTemplateFolderAsChild" } } } }, "parameters": [ { "in": "path", "name": "message_template_folder_id", "required": true, "description": "The parent message template folder ID", "schema": { "type": "string", "default": "rsf_123" } } ], "responses": { "201": { "$ref": "#/components/responses/cannedAnswerFolder" } } } }, "/message_template_folders/{message_template_folder_id}/message_templates": { "get": { "summary": "Get child templates", "description": "Fetch the child message templates of a message template folder.", "tags": [ "Message Templates" ], "operationId": "getChildTemplates", "parameters": [ { "in": "path", "name": "message_template_folder_id", "required": true, "description": "The message template folder ID", "schema": { "type": "string", "default": "rsf_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfCannedAnswerFolders" } } }, "post": { "summary": "Create child template", "description": "Create a new message template as a child of the given folder", "tags": [ "Message Templates" ], "operationId": "createChildTemplate", "requestBody": { "description": "Message template to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateMessageTemplateAsChild" } } } }, "parameters": [ { "in": "path", "name": "message_template_folder_id", "required": true, "description": "The parent message template folder ID", "schema": { "type": "string", "default": "rsf_123" } } ], "responses": { "201": { "$ref": "#/components/responses/cannedAnswer" } } } }, "/message_template_folders/{message_template_folder_id}": { "get": { "summary": "Get folder", "description": "Fetch a message template folder.", "tags": [ "Message Template Folders" ], "operationId": "getFolder", "parameters": [ { "in": "path", "name": "message_template_folder_id", "required": true, "description": "The message template folder ID", "schema": { "type": "string", "default": "rsf_123" } } ], "responses": { "200": { "$ref": "#/components/responses/cannedAnswerFolder" } } }, "patch": { "summary": "Update folder", "description": "Update message template folder", "tags": [ "Message Template Folders" ], "operationId": "updateFolder", "requestBody": { "description": "Message template folder to update", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateMessageTemplateFolder" } } } }, "parameters": [ { "in": "path", "name": "message_template_folder_id", "required": true, "description": "The message template folder ID", "schema": { "type": "string", "default": "rsf_123" } } ], "responses": { "200": { "$ref": "#/components/responses/cannedAnswerFolder" } } }, "delete": { "summary": "Delete folder", "description": "Delete a message template folder and child folders/templates", "tags": [ "Message Template Folders" ], "operationId": "deleteFolder", "parameters": [ { "in": "path", "name": "message_template_folder_id", "required": true, "description": "The message template folder id", "schema": { "type": "string", "default": "rsf_123" } } ], "responses": { "202": { "$ref": "#/components/responses/acceptedCannedAnswerFolderDeletion" } } } }, "/message_templates": { "get": { "summary": "List message templates", "description": "List the message templates.", "tags": [ "Message Templates" ], "operationId": "listMessageTemplates", "responses": { "200": { "$ref": "#/components/responses/listOfCannedAnswers" } } }, "post": { "summary": "Create message template", "description": "Create a new message template.", "tags": [ "Message Templates" ], "operationId": "createMessageTemplate", "requestBody": { "description": "Message template to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSharedMessageTemplate" } } } }, "responses": { "201": { "$ref": "#/components/responses/cannedAnswer" } } } }, "/teams/{team_id}/message_templates": { "get": { "summary": "List team message templates", "description": "List the message templates belonging to the requested team.", "tags": [ "Message Templates" ], "operationId": "listTeamMessageTemplates", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_55c8c149" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfCannedAnswers" } } }, "post": { "summary": "Create team message template", "description": "Create a new message template for the given team", "tags": [ "Message Templates" ], "operationId": "createTeamMessageTemplate", "requestBody": { "description": "Message template to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSharedMessageTemplate" } } } }, "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_55c8c149" } } ], "responses": { "201": { "$ref": "#/components/responses/cannedAnswer" } } } }, "/teammates/{teammate_id}/message_templates": { "get": { "summary": "List teammate message templates", "description": "List the message templates belonging to the requested teammate.", "tags": [ "Message Templates" ], "operationId": "listTeammateMessageTemplates", "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfCannedAnswers" } } }, "post": { "summary": "Create teammate message template", "description": "Create a new message template for the given teammate", "tags": [ "Message Templates" ], "operationId": "createTeammateMessageTemplate", "requestBody": { "description": "Message template to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePrivateMessageTemplate" } } } }, "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "201": { "$ref": "#/components/responses/cannedAnswer" } } } }, "/message_templates/{message_template_id}": { "get": { "summary": "Get message template", "description": "Fetch a message template.", "tags": [ "Message Templates" ], "operationId": "getMessageTemplate", "parameters": [ { "in": "path", "name": "message_template_id", "required": true, "description": "The message template ID", "schema": { "type": "string", "default": "rsp_123" } } ], "responses": { "200": { "$ref": "#/components/responses/cannedAnswer" } } }, "patch": { "summary": "Update message template", "description": "Update message template", "tags": [ "Message Templates" ], "operationId": "updateMessageTemplate", "requestBody": { "description": "Message template to update", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateMessageTemplate" } } } }, "parameters": [ { "in": "path", "name": "message_template_id", "required": true, "description": "The message template ID", "schema": { "type": "string", "default": "rsp_123" } } ], "responses": { "200": { "$ref": "#/components/responses/cannedAnswer" } } }, "delete": { "summary": "Delete message template", "description": "Delete a message template", "tags": [ "Message Templates" ], "operationId": "deleteMessageTemplate", "parameters": [ { "in": "path", "name": "message_template_id", "required": true, "description": "The message template ID", "schema": { "type": "string", "default": "rsp_123" } } ], "responses": { "204": { "description": "No content" } } } }, "/contact_groups": { "get": { "summary": "List groups", "description": "List the contact groups.", "tags": [ "Contact Groups" ], "operationId": "listGroups", "responses": { "200": { "$ref": "#/components/responses/listOfContactGroups" } } }, "post": { "summary": "Create group", "description": "Create a new contact group in the default team.", "tags": [ "Contact Groups" ], "operationId": "createGroup", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContactGroup" } } } }, "responses": { "204": { "description": "No content" } } } }, "/teams/{team_id}/contact_groups": { "get": { "summary": "List team groups", "description": "List contact groups belonging to the requested team.", "tags": [ "Contact Groups" ], "operationId": "listTeamGroups", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfContactGroups" } } }, "post": { "summary": "Create team group", "description": "Create a new contact group for the requested team.", "tags": [ "Contact Groups" ], "operationId": "createTeamGroup", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContactGroup" } } } }, "responses": { "204": { "description": "No content" } } } }, "/teammates/{teammate_id}/contact_groups": { "get": { "summary": "List teammate groups", "description": "List the contact groups belonging to the requested teammate.", "tags": [ "Contact Groups" ], "operationId": "listTeammateGroups", "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfContactGroups" } } }, "post": { "summary": "Create teammate group", "description": "Create a new contact group for the requested teammate.", "tags": [ "Contact Groups" ], "operationId": "createTeammateGroup", "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContactGroup" } } } }, "responses": { "204": { "description": "No content" } } } }, "/contact_groups/{contact_group_id}": { "delete": { "summary": "Delete group", "description": "Delete a contact group.", "tags": [ "Contact Groups" ], "operationId": "deleteGroup", "parameters": [ { "in": "path", "name": "contact_group_id", "required": true, "description": "The contact group ID", "schema": { "type": "string", "default": "grp_123" } } ], "responses": { "204": { "description": "No content" } } } }, "/contact_groups/{contact_group_id}/contacts": { "get": { "summary": "List contacts in group", "description": "List the contacts belonging to the requested group.", "tags": [ "Contact Groups" ], "operationId": "listGroupContacts", "parameters": [ { "in": "path", "name": "contact_group_id", "required": true, "description": "The contact group ID", "schema": { "type": "string", "default": "grp_123" } }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/limit" } ], "responses": { "200": { "$ref": "#/components/responses/listOfContacts" } } }, "post": { "summary": "Add contacts to group", "description": "Add contacts to the requested group.", "tags": [ "Contact Groups" ], "operationId": "addContactsToGroup", "parameters": [ { "in": "path", "name": "contact_group_id", "required": true, "description": "The contact group ID", "schema": { "type": "string", "default": "grp_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddContactsToGroup" } } } }, "responses": { "204": { "description": "No content" } } } }, "/contacts": { "get": { "summary": "List contacts", "description": "List the contacts of the company.", "tags": [ "Contacts" ], "operationId": "listContacts", "parameters": [ { "$ref": "#/components/parameters/cardQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/sortBy" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfContacts" } } }, "post": { "summary": "Create contact", "description": "Create a new contact.", "tags": [ "Contacts" ], "operationId": "createContact", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContact" } } } }, "responses": { "201": { "$ref": "#/components/responses/contact" } } } }, "/teams/{team_id}/contacts": { "get": { "summary": "List team contacts", "description": "List the contacts of a team.", "tags": [ "Contacts" ], "operationId": "listTeamContacts", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } }, { "$ref": "#/components/parameters/cardQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/sortBy" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfContacts" } } }, "post": { "summary": "Create team contact", "description": "Create a contact for a team.", "tags": [ "Contacts" ], "operationId": "createTeamContact", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContact" } } } }, "responses": { "201": { "$ref": "#/components/responses/contact" } } } }, "/teammates/{teammate_id}/contacts": { "get": { "summary": "List teammate contacts", "description": "List the contacts of a teammate.", "tags": [ "Contacts" ], "operationId": "listTeammateContacts", "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } }, { "$ref": "#/components/parameters/cardQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/sortBy" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfContacts" } } }, "post": { "summary": "Create teammate contact", "description": "Create a contact for a teammate.", "tags": [ "Contacts" ], "operationId": "createTeammateContact", "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContact" } } } }, "responses": { "201": { "$ref": "#/components/responses/contact" } } } }, "/contacts/{contact_id}": { "get": { "summary": "Get contact", "description": "Fetch a contact.", "tags": [ "Contacts" ], "operationId": "getContact", "parameters": [ { "in": "path", "name": "contact_id", "required": true, "description": "The contact ID", "schema": { "type": "string", "default": "crd_123" } } ], "responses": { "201": { "$ref": "#/components/responses/contact" } } }, "patch": { "summary": "Update a contact", "description": "Updates a contact.", "tags": [ "Contacts" ], "operationId": "updateContact", "parameters": [ { "in": "path", "name": "contact_id", "required": true, "description": "The contact ID", "schema": { "type": "string", "default": "crd_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Contact" } } } }, "responses": { "204": { "description": "No content" } } }, "delete": { "summary": "Delete a contact", "description": "Delete a contact.", "tags": [ "Contacts" ], "operationId": "deleteContact", "parameters": [ { "in": "path", "name": "contact_id", "required": true, "description": "The contact ID", "schema": { "type": "string", "default": "crd_123" } } ], "responses": { "204": { "description": "No content" } } } }, "/contacts/merge": { "post": { "summary": "Merge contacts", "description": "Merges the contacts specified into a single contact, deleting the merged-in contacts.\nIf a target contact ID is supplied, the other contacts will be merged into that one.\nOtherwise, some contact in the contact ID list will be treated as the target contact.\nMerge conflicts will be resolved in the following ways:\n * name will prioritize manually-updated and non-private contact names\n * descriptions will be concatenated and separated by newlines in order from\n oldest to newest with the (optional) target contact's description first\n * all handles, groups, links, and notes will be preserved\n * other conflicts will use the most recently updated contact's value\n", "tags": [ "Contacts" ], "operationId": "mergeContacts", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MergeContacts" } } } }, "responses": { "200": { "$ref": "#/components/responses/contact" } } } }, "/contacts/{contact_id}/handles": { "post": { "summary": "Add contact handle", "description": "Adds a new handle to a contact.", "tags": [ "Contact Handles" ], "operationId": "addContactHandle", "parameters": [ { "in": "path", "name": "contact_id", "required": true, "description": "The contact ID", "schema": { "type": "string", "default": "crd_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactHandle" } } } }, "responses": { "204": { "description": "No content" } } }, "delete": { "summary": "Delete contact handle", "description": "Remove a handle from a contact.", "tags": [ "Contact Handles" ], "operationId": "deleteContactHandle", "parameters": [ { "in": "path", "name": "contact_id", "required": true, "description": "The contact ID", "schema": { "type": "string", "default": "crd_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteContactHandle" } } } }, "responses": { "204": { "description": "No content" } } } }, "/contacts/{contact_id}/conversations": { "get": { "summary": "List contact conversations", "description": "List the conversations for a contact in reverse chronological order (newest first). For more advanced filtering, see the [search endpoint](https://dev.frontapp.com/reference/conversations#search-conversations).\n> ⚠️ Deprecated field included\n>\n> This endpoint returns a deprecated `last_message` field in the top-level conversation bodies listed. Please use the\n> `_links.related.last_message` field instead.\n", "tags": [ "Contacts" ], "operationId": "listContactConversations", "parameters": [ { "in": "path", "name": "contact_id", "required": true, "description": "The Contact ID", "schema": { "type": "string", "default": "crd_123" } }, { "$ref": "#/components/parameters/conversationQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfConversations" } } } }, "/contacts/{contact_id}/notes": { "get": { "summary": "List notes", "description": "List the notes added to a contact.", "tags": [ "Contact Notes" ], "operationId": "listNotes", "parameters": [ { "in": "path", "name": "contact_id", "required": true, "description": "The contact ID", "schema": { "type": "string", "default": "crd_123" } } ], "responses": { "202": { "$ref": "#/components/responses/listOfContactNotes" } } }, "post": { "summary": "Add note", "description": "Create a new note on a contact.", "tags": [ "Contact Notes" ], "operationId": "addNote", "parameters": [ { "in": "path", "name": "contact_id", "required": true, "description": "The contact ID", "schema": { "type": "string", "default": "crd_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContactNote" } } } }, "responses": { "201": { "$ref": "#/components/responses/contactNote" } } } }, "/channels": { "get": { "summary": "List channels", "description": "List the channels of the company.", "tags": [ "Channels" ], "operationId": "listChannels", "responses": { "200": { "$ref": "#/components/responses/listOfChannels" } } } }, "/teams/{team_id}/channels": { "get": { "summary": "List team channels", "description": "List the channels of a team.", "tags": [ "Channels" ], "operationId": "listTeamChannels", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfChannels" } } } }, "/teammates/{teammate_id}/channels": { "get": { "summary": "List teammate channels", "description": "List the channels of a teammate.", "tags": [ "Channels" ], "operationId": "listTeammateChannels", "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfChannels" } } } }, "/channels/{channel_id}": { "get": { "summary": "Get channel", "description": "Fetch a channel.", "tags": [ "Channels" ], "operationId": "getChannel", "parameters": [ { "in": "path", "name": "channel_id", "required": true, "description": "The Channel ID", "schema": { "type": "string", "default": "cha_123" } } ], "responses": { "200": { "$ref": "#/components/responses/channel" } } }, "patch": { "summary": "Update Channel", "description": "Update a channel.", "tags": [ "Channels" ], "operationId": "updateChannel", "parameters": [ { "in": "path", "name": "channel_id", "required": true, "description": "The Channel ID", "schema": { "type": "string", "default": "cha_123" } } ], "requestBody": { "description": "Channel details", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateChannel" } } } }, "responses": { "204": { "description": "No content" } } } }, "/channels/{channel_id}/validate": { "post": { "summary": "Validate channel", "description": "Asynchronously validate a channel", "tags": [ "Channels" ], "operationId": "validateChannel", "parameters": [ { "in": "path", "name": "channel_id", "required": true, "description": "The Channel ID", "schema": { "type": "string", "default": "cha_123" } } ], "responses": { "202": { "$ref": "#/components/responses/accepted" } } } }, "/inboxes/{inbox_id}/channels": { "post": { "summary": "Create a channel", "description": "Create a channel in an inbox.", "tags": [ "Channels" ], "operationId": "createChannel", "parameters": [ { "in": "path", "name": "inbox_id", "required": true, "description": "The Inbox ID", "schema": { "type": "string", "default": "inb_123" } } ], "requestBody": { "description": "Channel to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateChannel" } } } }, "responses": { "204": { "description": "No content" } } }, "get": { "summary": "List inbox channels", "description": "List the channels in an inbox.", "tags": [ "Inboxes" ], "operationId": "listInboxChannels", "parameters": [ { "in": "path", "name": "inbox_id", "required": true, "description": "The Inbox ID", "schema": { "type": "string", "default": "inb_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfChannels" } } } }, "/conversations/{conversation_id}/comments": { "get": { "summary": "List conversation comments", "description": "List the comments in a conversation in reverse chronological order (newest first).", "tags": [ "Comments" ], "operationId": "listConversationComments", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfComments" } } }, "post": { "summary": "Create comment", "description": "Add a comment to a conversation.", "tags": [ "Comments" ], "operationId": "createComment", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateComment" } } } }, "responses": { "201": { "$ref": "#/components/responses/comment" } } } }, "/comments/{comment_id}": { "get": { "summary": "Get comment", "description": "Fetches a comment.", "tags": [ "Comments" ], "operationId": "getComment", "parameters": [ { "in": "path", "name": "comment_id", "required": true, "description": "The Comment ID", "schema": { "type": "string", "default": "com_123" } } ], "responses": { "200": { "$ref": "#/components/responses/comment" } } } }, "/comments/{comment_id}/mentions": { "get": { "summary": "List comment mentions", "description": "List the teammates mentioned in a comment.", "tags": [ "Comments" ], "operationId": "listCommentMentions", "parameters": [ { "in": "path", "name": "comment_id", "required": true, "description": "The Comment ID", "schema": { "type": "string", "default": "com_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfTeammates" } } } }, "/conversations": { "get": { "summary": "List conversations", "description": "List the conversations in the company in reverse chronological order (most recently updated first). For more advanced filtering, see the [search endpoint](https://dev.frontapp.com/reference/conversations#search-conversations).\n> ⚠️ Deprecated field included\n>\n> This endpoint returns a deprecated `last_message` field in the top-level conversation bodies listed. Please use the\n> `_links.related.last_message` field instead.\n", "operationId": "list-conversations", "tags": [ "Conversations" ], "parameters": [ { "$ref": "#/components/parameters/conversationQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfConversations" } } }, "post": { "summary": "Create conversation", "description": "Create a conversation.\n> ⚠️ Currently, only discussions can be created with this endpoint.\n", "operationId": "create-conversation", "tags": [ "Conversations" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateConversation" } } } }, "responses": { "201": { "$ref": "#/components/responses/conversation" } } } }, "/conversations/{conversation_id}": { "get": { "summary": "Get conversation", "description": "Fetch a conversation.\n> ⚠️ Deprecated field included\n>\n> This endpoint returns a deprecated `last_message` field in the main body. Please use the\n> `_links.related.last_message` field instead.\n", "operationId": "get-conversation-by-id", "tags": [ "Conversations" ], "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "responses": { "200": { "$ref": "#/components/responses/conversation" } } }, "patch": { "summary": "Update conversation", "description": "Update a conversation.", "tags": [ "Conversations" ], "operationId": "update-conversation", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateConversation" } } } }, "responses": { "204": { "description": "No content" } } } }, "/conversations/{conversation_id}/assignee": { "put": { "summary": "Update conversation assignee", "description": "Assign or unassign a conversation.", "tags": [ "Conversations" ], "operationId": "update-conversation-assignee", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateConversationAssignee" } } } }, "responses": { "204": { "description": "No content" } } } }, "/conversations/{conversation_id}/tags": { "post": { "summary": "Add conversation tag", "description": "Adds one or more tags to a conversation", "tags": [ "Conversations" ], "operationId": "add-conversation-tag", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "requestBody": { "description": "Tag IDs to add", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagIds" } } } }, "responses": { "204": { "description": "No content" } } }, "delete": { "summary": "Remove conversation tag", "description": "Removes one or more tags to a conversation", "tags": [ "Conversations" ], "operationId": "remove-conversation-tag", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "requestBody": { "description": "Tag IDs to remove", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagIds" } } } }, "responses": { "204": { "description": "No content" } } } }, "/conversations/{conversation_id}/links": { "post": { "summary": "Add conversation link", "description": "Adds one or more links to a conversation", "tags": [ "Conversations" ], "operationId": "add-conversation-link", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "link_ids": { "description": "Link IDs to add. Either link_ids or link_external_urls must be specified but not both", "type": "array", "maxItems": 10, "items": { "type": "string" } }, "link_external_urls": { "description": "Link external URLs to add. Creates links if necessary. Either link_ids or link_external_urls must be specified but not both", "type": "array", "maxItems": 10, "items": { "type": "string" } } } } } } }, "responses": { "204": { "description": "No content" } } }, "delete": { "summary": "Remove conversation links", "description": "Removes one or more links to a conversation", "tags": [ "Conversations" ], "operationId": "remove-conversation-link", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "link_ids": { "description": "Link IDs to remove.", "type": "array", "maxItems": 10, "items": { "type": "string" } } }, "required": [ "link_ids" ] } } } }, "responses": { "204": { "description": "No content" } } } }, "/conversations/{conversation_id}/inboxes": { "get": { "summary": "List conversation inboxes", "description": "List the inboxes in which a conversation is listed.", "tags": [ "Conversations" ], "operationId": "list-conversation-inboxes", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfInboxes" } } } }, "/conversations/{conversation_id}/followers": { "get": { "summary": "List conversation followers", "description": "List the teammates following a conversation.", "tags": [ "Conversations" ], "operationId": "list-conversation-followers", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfTeammates" } } }, "post": { "summary": "Add conversation followers", "description": "Adds teammates to the list of followers of a conversation.", "tags": [ "Conversations" ], "operationId": "add-conversation-followers", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "teammate_ids": { "description": "IDs of the teammate to add to the followers list.", "type": "array", "maxItems": 50, "items": { "type": "string" } } }, "required": [ "teammate_ids" ] } } } }, "responses": { "204": { "description": "No content" } } }, "delete": { "summary": "Delete conversation followers", "description": "Removes teammates from the list of followers of a conversation.", "tags": [ "Conversations" ], "operationId": "delete-conversation-followers", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "teammate_ids": { "description": "IDs of the teammate to remove from the followers list.", "type": "array", "maxItems": 50, "items": { "type": "string" } } }, "required": [ "teammate_ids" ] } } } }, "responses": { "204": { "description": "No content" } } } }, "/conversations/{conversation_id}/messages": { "get": { "summary": "List conversation messages", "description": "List the messages in a conversation in reverse chronological order (newest first).", "tags": [ "Conversations" ], "operationId": "list-conversation-messages", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfMessages" } } }, "post": { "summary": "Reply to conversation", "description": "Reply to a conversation by sending a message and appending it to the conversation.", "tags": [ "Messages" ], "operationId": "reply-to-conversation", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OutboundReplyMessage" } } } }, "responses": { "202": { "$ref": "#/components/responses/message" } } } }, "/conversations/{conversation_id}/events": { "get": { "summary": "List conversation events", "description": "List the events that occured for a conversation in reverse chronological order (newest first).", "tags": [ "Conversations" ], "operationId": "list-conversation-events", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfEvents" } } } }, "/conversations/{conversation_id}/reminders": { "patch": { "summary": "Update conversation reminders", "description": "Snooze or unsnooze a conversation for the provided user.\nFor private conversations, reminders can only be created and edited through the API for teammates that own the conversation.\nFor shared conversations, reminders created and edited through the API are shared for all teammates within the shared inbox(es) that the conversation belongs to.\n", "tags": [ "Conversations" ], "operationId": "update-conversation-reminders", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateConversationReminders" } } } }, "responses": { "204": { "description": "No content" } } } }, "/contacts/custom_fields": { "get": { "summary": "List Contact's custom fields", "description": "Lists the custom fields in your company that are application to a Contact.", "operationId": "list-contact-custom-fields", "tags": [ "Custom Fields" ], "responses": { "200": { "$ref": "#/components/responses/listOfCustomFields" } } } }, "/custom_fields": { "get": { "deprecated": true, "summary": "List Contact's custom fields", "description": "Lists the custom fields in your company that are application to a Contact.\n> ⚠️ Deprecated endpoint\n>\n> This endpoint has been deprecated. Please use the fully compatible `GET /contacts/custom_fields` endpoint instead.\n", "operationId": "list-custom-fields", "tags": [ "Custom Fields" ], "responses": { "200": { "$ref": "#/components/responses/listOfCustomFields" } } } }, "/custom_fields/{custom_field_id}": { "patch": { "deprecated": true, "summary": "Update custom field", "description": "Update a custom field. (⚠️ Deprecated)", "tags": [ "Custom Fields" ], "operationId": "update-custom-field", "parameters": [ { "in": "path", "name": "custom_field_id", "required": true, "description": "Custom Field ID", "schema": { "type": "string", "default": "fld_123" } } ], "requestBody": { "description": "Custom field", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCustomField" } } } }, "responses": { "204": { "description": "No content" } } } }, "/conversations/{conversation_id}/drafts": { "get": { "summary": "List conversation drafts", "description": "List the drafts in a conversation.", "tags": [ "Drafts" ], "operationId": "list-conversation-drafts", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfMessages" } } }, "post": { "summary": "Create draft reply", "description": "Create a new draft as a reply to the last message in the conversation.", "tags": [ "Drafts" ], "operationId": "create-draft-reply", "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReplyDraft" } } } }, "responses": { "200": { "$ref": "#/components/responses/message" } } } }, "/channels/{channel_id}/drafts": { "post": { "summary": "Create draft", "description": "Create a draft message which is the first message of a new conversation.", "tags": [ "Drafts" ], "operationId": "create-draft", "parameters": [ { "in": "path", "name": "channel_id", "required": true, "description": "The channel ID", "schema": { "type": "string", "default": "cha_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateDraft" } } } }, "responses": { "200": { "$ref": "#/components/responses/message" } } } }, "/drafts/{message_id}/": { "patch": { "summary": "Edit draft", "description": "Edit a draft message.", "tags": [ "Drafts" ], "operationId": "edit-draft", "parameters": [ { "in": "path", "name": "message_id", "required": true, "description": "The draft ID", "schema": { "type": "string", "default": "msg_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EditDraft" } } } }, "responses": { "200": { "$ref": "#/components/responses/message" } } } }, "/drafts/{draft_id}": { "delete": { "summary": "Delete draft", "description": "Delete a draft message.", "tags": [ "Drafts" ], "operationId": "delete-draft", "parameters": [ { "in": "path", "name": "draft_id", "required": true, "description": "The draft ID", "schema": { "type": "string", "default": "msg_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteDraft" } } } }, "responses": { "204": { "description": "No content" } } } }, "/inboxes": { "get": { "summary": "List inboxes", "description": "List the inboxes of the company.", "tags": [ "Inboxes" ], "operationId": "list-inboxes", "responses": { "200": { "$ref": "#/components/responses/listOfInboxes" } } }, "post": { "summary": "Create inbox", "description": "Create an inbox in the default team.", "tags": [ "Inboxes" ], "operationId": "create-inbox", "requestBody": { "description": "Inbox details", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInbox" } } } }, "responses": { "204": { "description": "No content" } } } }, "/teams/{team_id}/inboxes": { "get": { "summary": "List team inboxes", "description": "List the inboxes belonging to a team.", "tags": [ "Inboxes" ], "operationId": "list-team-inboxes", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfInboxes" } } }, "post": { "summary": "Create team inbox", "description": "Create an inbox for a team.", "tags": [ "Inboxes" ], "operationId": "create-team-inbox", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The tag ID", "schema": { "type": "string", "default": "tim_123" } } ], "requestBody": { "description": "Inbox details", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInbox" } } } }, "responses": { "204": { "description": "No content" } } } }, "/inboxes/{inbox_id}": { "get": { "summary": "Get inbox", "description": "Fetch an inbox.", "tags": [ "Inboxes" ], "operationId": "get-inbox", "parameters": [ { "in": "path", "name": "inbox_id", "required": true, "description": "The Inbox ID", "schema": { "type": "string", "default": "inb_123" } } ], "responses": { "200": { "$ref": "#/components/responses/inbox" } } } }, "/inboxes/{inbox_id}/conversations": { "get": { "summary": "List inbox conversations", "description": "List the conversations in an inbox. For more advanced filtering, see the [search endpoint](https://dev.frontapp.com/reference/conversations#search-conversations).\n> ⚠️ Deprecated field included\n>\n> This endpoint returns a deprecated `last_message` field in the top-level conversation bodies listed. Please use the\n> `_links.related.last_message` field instead.\n", "tags": [ "Inboxes" ], "operationId": "list-inbox-conversations", "parameters": [ { "in": "path", "name": "inbox_id", "required": true, "description": "The Inbox ID", "schema": { "type": "string", "default": "inb_123" } }, { "$ref": "#/components/parameters/conversationQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfConversations" } } } }, "/inboxes/{inbox_id}/teammates": { "get": { "summary": "List inbox access", "description": "List the teammates with access to an inbox.", "tags": [ "Inboxes" ], "operationId": "list-inbox-teammates", "parameters": [ { "in": "path", "name": "inbox_id", "required": true, "description": "The Inbox ID", "schema": { "type": "string", "default": "inb_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfTeammates" } } }, "post": { "summary": "Add inbox access", "description": "Give access to one or more teammates to an inbox.", "tags": [ "Inboxes" ], "operationId": "add-inbox-teammates", "parameters": [ { "in": "path", "name": "inbox_id", "required": true, "description": "The Inbox ID", "schema": { "type": "string", "default": "inb_123" } } ], "requestBody": { "description": "Teammate IDs to add", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeammateIds" } } } }, "responses": { "204": { "description": "No content" } } }, "delete": { "summary": "Removes inbox access", "description": "Remove access of one or more teammates from an inbox.", "tags": [ "Inboxes" ], "operationId": "remove-inbox-teammates", "parameters": [ { "in": "path", "name": "inbox_id", "required": true, "description": "The Inbox ID", "schema": { "type": "string", "default": "inb_123" } } ], "requestBody": { "description": "Teammate IDs to remove", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeammateIds" } } } }, "responses": { "204": { "description": "No content" } } } }, "/messages/{message_id}": { "get": { "summary": "Get message", "description": "Fetch a message.", "tags": [ "Messages" ], "operationId": "get-message", "parameters": [ { "in": "path", "name": "message_id", "required": true, "description": "The message ID", "schema": { "type": "string", "default": "msg_123" } } ], "responses": { "200": { "$ref": "#/components/responses/message" } } } }, "/messages/{message_id}/seen": { "get": { "summary": "Get message seen status", "description": "Get the seen receipts for the given message. If no seen-by information is available, there will be a single entry for the first time the message was seen by any recipient. If seen-by information is available, there will be an entry for each recipient who has seen the message.", "tags": [ "Messages" ], "operationId": "get-message-seen-status", "parameters": [ { "in": "path", "name": "message_id", "required": true, "description": "The message ID", "schema": { "type": "string", "default": "msg_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfSeenReceipts" } } }, "post": { "summary": "Mark message seen", "description": "Mark an outbound message from Front as seen. Note, the message seen route should only be called in response to an actual end-user's message-seen action. In accordance with this behavior, the route is rate limited to 10 requests per hour.", "tags": [ "Messages" ], "operationId": "mark-message-seen", "requestBody": { "content": { "application/json": { "schema": { "type": "object" } } } }, "parameters": [ { "in": "path", "name": "message_id", "required": true, "description": "The message ID", "schema": { "type": "string", "default": "msg_123" } } ], "responses": { "204": { "description": "No content" } } } }, "/channels/{channel_id}/messages": { "post": { "summary": "Create conversation", "description": "Send a new message from a channel.", "tags": [ "Messages" ], "operationId": "create-conversation", "parameters": [ { "in": "path", "name": "channel_id", "required": true, "description": "The sending channel ID", "schema": { "type": "string", "default": "cha_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OutboundMessage" } } } }, "responses": { "202": { "$ref": "#/components/responses/message" } } } }, "/channels/{channel_id}/incoming_messages": { "post": { "summary": "Receive custom messages", "description": "Receive a custom message in Front. This endpoint is available for custom channels **ONLY**.", "tags": [ "Messages" ], "operationId": "receive-custom-message", "parameters": [ { "in": "path", "name": "channel_id", "required": true, "description": "The channel ID", "schema": { "type": "string", "default": "cha_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomMessage" } } } }, "responses": { "202": { "$ref": "#/components/responses/acceptedMessage" } } } }, "/inboxes/{inbox_id}/imported_messages": { "post": { "summary": "Import message", "description": "Import a new message in an inbox.", "operationId": "import-inbox-message", "tags": [ "Messages" ], "parameters": [ { "in": "path", "name": "inbox_id", "required": true, "description": "The Inbox ID", "schema": { "type": "string", "default": "inb_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImportMessage" } } } }, "responses": { "202": { "$ref": "#/components/responses/acceptedMessage" } } } }, "/rules": { "get": { "summary": "List rule", "description": "List the rules of the company.", "tags": [ "Rules" ], "operationId": "list-rules", "responses": { "200": { "$ref": "#/components/responses/listOfRules" } } } }, "/teams/{team_id}/rules": { "get": { "summary": "List team rules", "description": "List the rules of a team.", "tags": [ "Rules" ], "operationId": "list-team-rules", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfRules" } } } }, "/teammates/{teammate_id}/rules": { "get": { "summary": "List teammate rule", "description": "List the rules of a teammate.", "tags": [ "Rules" ], "operationId": "list-teammate-rules", "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfRules" } } } }, "/rules/{rule_id}": { "get": { "summary": "Get rule", "description": "Fetche a rule.", "tags": [ "Rules" ], "operationId": "get-rule", "parameters": [ { "in": "path", "name": "rule_id", "required": true, "description": "The Rule ID", "schema": { "type": "string", "default": "rul_123" } } ], "responses": { "200": { "$ref": "#/components/responses/rule" } } } }, "/conversations/search/{query}": { "get": { "summary": "Search conversations", "description": "Search for conversations. Response will include a count of total matches and an array of conversations in descending order by last activity.\nSee the [search syntax documentation](https://dev.frontapp.com/docs/search-1) for usage examples.\n> ⚠️ Deprecated field included\n>\n> This endpoint returns a deprecated `last_message` field in the top-level conversation bodies listed. Please use the\n> `_links.related.last_message` field instead.\n", "operationId": "search-conversations", "tags": [ "Conversations" ], "parameters": [ { "in": "path", "name": "query", "required": true, "description": "Search query string. See available Conversation Search Parameters below", "schema": { "type": "string", "default": "inbox%3Ainb_123%20tag%3Atag_345" } }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfConversationSearchResults" } } } }, "/shifts": { "get": { "summary": "List Shifts", "description": "List the shifts.", "operationId": "list-shifts", "tags": [ "Shifts" ], "responses": { "200": { "$ref": "#/components/responses/listOfShifts" } } }, "post": { "summary": "Create shift", "description": "Create a shift.", "tags": [ "Shifts" ], "operationId": "create-shift", "requestBody": { "description": "Shift to create details", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateShift" } } } }, "responses": { "201": { "$ref": "#/components/responses/shift" } } } }, "/teams/{team_id}/shifts": { "get": { "summary": "List team Shifts", "description": "List the shifts for a team.", "tags": [ "Shifts" ], "operationId": "list-team-shifts", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfShifts" } } }, "post": { "summary": "Create team shift", "description": "Create a shift for a team.", "tags": [ "Shifts" ], "operationId": "create-team-shift", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The Team ID", "schema": { "type": "string", "default": "tim_123" } } ], "requestBody": { "description": "Shift to create details", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateShift" } } } }, "responses": { "201": { "$ref": "#/components/responses/shift" } } } }, "/teammates/{teammate_id}/shifts": { "get": { "summary": "List Teammate Shifts", "description": "Lists all the shifts for the teammate.", "tags": [ "Shifts" ], "operationId": "list-teammate-shifts", "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfShifts" } } } }, "/shift/{shift_id}": { "get": { "summary": "Get shift", "description": "Fetch a shift.", "tags": [ "Shifts" ], "operationId": "get-shift", "parameters": [ { "in": "path", "name": "shift_id", "required": true, "description": "The Shift ID", "schema": { "type": "string", "default": "shf_123" } } ], "responses": { "200": { "$ref": "#/components/responses/shift" } } } }, "/shift/{shift_id}/teammates": { "get": { "summary": "List shift's teammates", "description": "List the teammates assigned to a shift.", "tags": [ "Shifts" ], "operationId": "list-shift-teammates", "parameters": [ { "in": "path", "name": "shift_id", "required": true, "description": "The Shift ID", "schema": { "type": "string", "default": "shf_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfTeammates" } } }, "post": { "summary": "Add teammates to shift", "description": "Add teammates to a shift. The selected teammates must be in the team that owns the shift.", "tags": [ "Shifts" ], "operationId": "add-teammates-to-shift", "parameters": [ { "in": "path", "name": "shift_id", "required": true, "description": "The Shift ID", "schema": { "type": "string", "default": "shf_123" } } ], "requestBody": { "description": "Teammate IDs to add", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeammateIds" } } } }, "responses": { "204": { "description": "No content" } } }, "delete": { "summary": "Remove teammates from shift", "description": "Remove teammates from a shift.", "tags": [ "Shifts" ], "operationId": "remove-teammates-from-shift", "parameters": [ { "in": "path", "name": "shift_id", "required": true, "description": "The Shift ID", "schema": { "type": "string", "default": "shf_123" } } ], "requestBody": { "description": "Teammate IDs to remove", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeammateIds" } } } }, "responses": { "204": { "description": "No content" } } } }, "/shifts/{shift_id}": { "patch": { "summary": "Update shift", "description": "Update a shift.", "tags": [ "Shifts" ], "operationId": "update-shift", "parameters": [ { "in": "path", "name": "shift_id", "required": true, "description": "The Shift ID", "schema": { "type": "string", "default": "shf_123" } } ], "requestBody": { "description": "Updated Shift Body", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateShift" } } } }, "responses": { "204": { "description": "No content" } } } }, "/teammates/{teammate_id}/signatures": { "get": { "summary": "List teammate signatures", "description": "List the signatures belonging to the given teammate.", "tags": [ "Signatures" ], "operationId": "list-teammate-signatures", "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfSignatures" } } }, "post": { "summary": "Create teammate signature", "description": "Create a new signature for the given teammate", "tags": [ "Signatures" ], "operationId": "create-teammate-signature", "requestBody": { "description": "Signature to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePrivateSignature" } } } }, "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "201": { "$ref": "#/components/responses/signature" } } } }, "/teams/{team_id}/signatures": { "get": { "summary": "List team signatures", "description": "List the signatures belonging to the given team.", "tags": [ "Signatures" ], "operationId": "list-team-signatures", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfSignatures" } } }, "post": { "summary": "Create team signature", "description": "Create a new signature for the given team", "tags": [ "Signatures" ], "operationId": "create-team-signature", "requestBody": { "description": "Signature to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSharedSignature" } } } }, "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tim_123" } } ], "responses": { "201": { "$ref": "#/components/responses/signature" } } } }, "/signatures/{signature_id}": { "get": { "summary": "Get signatures", "description": "Get the given signature.", "tags": [ "Signatures" ], "operationId": "get-signature", "parameters": [ { "in": "path", "name": "signature_id", "required": true, "description": "The signature ID", "schema": { "type": "string", "default": "sig_123" } } ], "responses": { "200": { "$ref": "#/components/responses/signature" } } }, "delete": { "summary": "Delete signature", "description": "Delete signature", "tags": [ "Signatures" ], "operationId": "delete-signature", "parameters": [ { "in": "path", "name": "signature_id", "required": true, "description": "The signature ID", "schema": { "type": "string", "default": "sig_123" } } ], "responses": { "204": { "description": "No content" } } }, "patch": { "summary": "Update signature", "description": "Update signature", "tags": [ "Signatures" ], "operationId": "update-signature", "requestBody": { "description": "Signature to update", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSignature" } } } }, "parameters": [ { "in": "path", "name": "signature_id", "required": true, "description": "The signature ID", "schema": { "type": "string", "default": "sig_123" } } ], "responses": { "200": { "$ref": "#/components/responses/signature" } } } }, "/tags": { "get": { "summary": "List tags", "description": "List the tags of the company.", "tags": [ "Tags" ], "operationId": "list-tags", "responses": { "200": { "$ref": "#/components/responses/listOfTags" } } }, "post": { "summary": "Create tag", "description": "Create a tag.", "tags": [ "Tags" ], "operationId": "create-tag", "requestBody": { "description": "Tag to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTag" } } } }, "responses": { "201": { "$ref": "#/components/responses/tag" } } } }, "/teams/{team_id}/tags": { "get": { "summary": "List team tags", "description": "List the tags for a team.", "tags": [ "Tags" ], "operationId": "list-team-tags", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfTags" } } }, "post": { "summary": "Create team tag", "description": "Create a tag for a team.", "tags": [ "Tags" ], "operationId": "create-team-tag", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } } ], "requestBody": { "description": "Tag to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTag" } } } }, "responses": { "201": { "$ref": "#/components/responses/tag" } } } }, "/teammates/{teammate_id}/tags": { "get": { "summary": "List teammate tags", "description": "List the tags for a teammate.", "tags": [ "Tags" ], "operationId": "list-teammate-tags", "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfTags" } } }, "post": { "summary": "Create teammate tag", "description": "Create a tag for a teammate.", "tags": [ "Tags" ], "operationId": "create-teammate-tag", "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "requestBody": { "description": "Tag to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTag" } } } }, "responses": { "201": { "$ref": "#/components/responses/tag" } } } }, "/tags/{tag_id}/children": { "post": { "summary": "Create child tag", "description": "Creates a child tag.", "tags": [ "Tags" ], "operationId": "create-child-tag", "parameters": [ { "in": "path", "name": "tag_id", "required": true, "description": "The tag ID", "schema": { "type": "string", "default": "tag_123" } } ], "requestBody": { "description": "Child Tag to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTag" } } } }, "responses": { "201": { "$ref": "#/components/responses/tag" } } }, "get": { "summary": "List tag children", "description": "List the children of a specific tag.", "tags": [ "Tags" ], "operationId": "list-tag-children", "parameters": [ { "in": "path", "name": "tag_id", "required": true, "description": "The tag ID", "schema": { "type": "string", "default": "tag_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfTags" } } } }, "/tags/{tag_id}": { "patch": { "summary": "Update a tag", "description": "Update a tag.", "tags": [ "Tags" ], "operationId": "update-tag", "parameters": [ { "in": "path", "name": "tag_id", "required": true, "description": "The tag ID", "schema": { "type": "string", "default": "tag_123" } } ], "requestBody": { "description": "Child Tag to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTag" } } } }, "responses": { "204": { "description": "No content" } } }, "get": { "summary": "Get tag", "description": "Fetche a tag.", "tags": [ "Tags" ], "operationId": "get-tag", "parameters": [ { "in": "path", "name": "tag_id", "required": true, "description": "The tag ID", "schema": { "type": "string", "default": "tag_123" } } ], "responses": { "200": { "$ref": "#/components/responses/tag" } } }, "delete": { "summary": "Delete tag", "description": "Delete a tag.", "tags": [ "Tags" ], "operationId": "delete-tag", "parameters": [ { "in": "path", "name": "tag_id", "required": true, "description": "The ID of the tag to delete", "schema": { "type": "string", "default": "tag_123" } } ], "responses": { "204": { "description": "No content" } } } }, "/tags/{tag_id}/conversations": { "get": { "summary": "List tagged conversations", "description": "List the conversations tagged with a tag. For more advanced filtering, see the [search endpoint](https://dev.frontapp.com/reference/conversations#search-conversations).\n> ⚠️ Deprecated field included\n>\n> This endpoint returns a deprecated `last_message` field in the top-level conversation bodies listed. Please use the\n> `_links.related.last_message` field instead.\n", "tags": [ "Tags" ], "operationId": "list-tagged-conversations", "parameters": [ { "in": "path", "name": "tag_id", "required": true, "description": "The ID of the tag", "schema": { "type": "string", "default": "tag_123" } }, { "$ref": "#/components/parameters/conversationQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfConversations" } } } }, "/teams": { "get": { "summary": "List teams", "description": "List the teams in the company.", "tags": [ "Teams" ], "operationId": "list-teams", "responses": { "200": { "$ref": "#/components/responses/listOfTeams" } } } }, "/teams/{team_id}": { "get": { "summary": "Get team", "description": "Fetch a team.", "tags": [ "Teams" ], "operationId": "get-team", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The Team ID", "schema": { "type": "string", "default": "tim_123" } } ], "responses": { "200": { "$ref": "#/components/responses/team" } } } }, "/teams/{team_id}/teammates": { "post": { "summary": "Add teammates to team", "description": "Add one or more teammates to a team.", "tags": [ "Teams" ], "operationId": "add-teammates-to-team", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The Team ID", "schema": { "type": "string", "default": "tim_123" } } ], "requestBody": { "description": "Teammate IDs to add", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeammateIds" } } } }, "responses": { "204": { "description": "No content" } } }, "delete": { "summary": "Remove teammates from team", "description": "Remove one or more teammates from a team.", "tags": [ "Teams" ], "operationId": "remove-teammates-from-team", "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The Team ID", "schema": { "type": "string", "default": "tim_123" } } ], "requestBody": { "description": "Teammate IDs to remove from the team", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeammateIds" } } } }, "responses": { "204": { "description": "No content" } } } }, "/teammates": { "get": { "summary": "List teammates", "description": "List the teammates in the company.", "tags": [ "Teammates" ], "operationId": "list-teammates", "responses": { "200": { "$ref": "#/components/responses/listOfTeammates" } } } }, "/teammates/{teammate_id}": { "get": { "summary": "Get teammate", "description": "Fetch a teammate.", "tags": [ "Teammates" ], "operationId": "get-teammate", "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/teammate" } } }, "patch": { "summary": "Update teammate", "description": "Update a teammate.", "tags": [ "Teammates" ], "operationId": "update-teammate", "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTeammate" } } } }, "responses": { "204": { "description": "No content" } } } }, "/teammates/{teammate_id}/conversations": { "get": { "summary": "List assigned conversations", "description": "List the conversations assigned to a teammate in reverse chronological order (most recently updated first). For more advanced filtering, see the [search endpoint](https://dev.frontapp.com/reference/conversations#search-conversations).\n> ⚠️ Deprecated field included\n>\n> This endpoint returns a deprecated `last_message` field in the top-level conversation bodies listed. Please use the\n> `_links.related.last_message` field instead.\n", "tags": [ "Teammates" ], "operationId": "list-assigned-conversations", "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } }, { "$ref": "#/components/parameters/conversationQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfConversations" } } } }, "/teammates/{teammate_id}/inboxes": { "get": { "deprecated": true, "summary": "List teammate inboxes", "description": "Returns list of inboxes the teammate has access to.", "tags": [ "Teammates" ], "operationId": "list-teammate-inboxes", "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfInboxes" } } } }, "/links/{link_id}/conversations": { "get": { "summary": "List link conversations", "description": "List the conversations linked to a specific link. For more advanced filtering, see the [search endpoint](https://dev.frontapp.com/reference/conversations#search-conversations).\n> ⚠️ Deprecated field included\n>\n> This endpoint returns a deprecated `last_message` field in the top-level conversation bodies listed. Please use the\n> `_links.related.last_message` field instead.\n", "operationId": "list-link-conversations", "tags": [ "Links" ], "parameters": [ { "in": "path", "name": "link_id", "required": true, "description": "The Link ID", "schema": { "type": "string", "default": "top_123" } }, { "$ref": "#/components/parameters/conversationQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfConversations" } } } }, "/links": { "get": { "summary": "List links", "description": "List the links of the company paginated by id. Allows filtering by link type via the q.types param.", "tags": [ "Links" ], "operationId": "list-links", "parameters": [ { "$ref": "#/components/parameters/topicQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfLinks" } } }, "post": { "summary": "Create link", "description": "Create a link. If the link is resolved to an installed links integration, any name retrieved from the integration will override the provided name.", "tags": [ "Links" ], "operationId": "create-link", "requestBody": { "description": "Link to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateLink" } } } }, "responses": { "201": { "$ref": "#/components/responses/link" } } } }, "/links/{link_id}": { "get": { "summary": "Get link", "description": "Fetch a link.", "tags": [ "Links" ], "operationId": "get-link", "parameters": [ { "in": "path", "name": "link_id", "required": true, "description": "The link ID", "schema": { "type": "string", "default": "top_123" } } ], "responses": { "200": { "$ref": "#/components/responses/link" } } }, "patch": { "summary": "Update a link", "description": "Update a link.", "tags": [ "Links" ], "operationId": "update-link", "parameters": [ { "in": "path", "name": "link_id", "required": true, "description": "The link ID", "schema": { "type": "string", "default": "top_123" } } ], "requestBody": { "description": "Link fields to update", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateLink" } } } }, "responses": { "204": { "description": "No content" } } } } } }