{ "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", "url": "https://community.front.com" } }, "security": [ { "http": [] } ], "servers": [ { "url": "https://api2.frontapp.com" } ], "components": { "schemas": { "Account": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the Account" }, "description": { "type": "string", "description": "Account description" }, "domains": { "type": "array", "description": "List of domains associated with the Account", "items": { "type": "string" } }, "external_id": { "type": "string", "description": "ID of the Account in an external system" }, "custom_fields": { "description": "Custom fields for this account", "$ref": "#/components/schemas/CustomFieldParameter" } } }, "AccountIds": { "type": "object", "required": [ "account_ids" ], "properties": { "account_ids": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "AccountPatch": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the Account" }, "description": { "type": "string", "description": "Account description" }, "domains": { "type": "array", "description": "List of domains associated with the Account", "items": { "type": "string" } }, "custom_fields": { "description": "Custom fields for this account. If you want to keep all custom fields the same when updating this resource, do not include any custom fields in the update. If you want to update custom fields, make sure to include all custom fields, not just the fields you want to add or update. If you send only the custom fields you want to update, the other custom fields will be erased. You can retrieve the existing custom fields before making the update to note the current fields.", "$ref": "#/components/schemas/CustomFieldParameter" } } }, "AccountResponse": { "type": "object", "required": [ "_links", "id", "name", "logo_url", "description", "domains", "external_id", "custom_fields" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/accounts/acc_76" }, "related": { "type": "object", "properties": { "contacts": { "type": "string", "description": "Link to contacts associated to the account", "example": "https://yourCompany.api.frontapp.com/accounts/acc_76/contacts" } } } } }, "id": { "type": "string", "description": "Unique identifier of the account", "example": "acc_76" }, "name": { "type": "string", "description": "Account name", "example": "Dunder Mifflin, Inc." }, "logo_url": { "type": "string", "nullable": true, "description": "URL of the Account's logo", "example": "https://yourCompany.api.frontapp.com/accounts/acc_aq/logo-1654309308278" }, "description": { "type": "string", "nullable": true, "description": "Account Description", "example": "Limitless Paper in a Paperless World" }, "domains": { "type": "array", "description": "List of domains associated to the Account", "items": { "type": "string", "example": [ "dundermifflininc.com", "limitlesspaper.com" ] } }, "external_id": { "type": "string", "nullable": true, "description": "ID of the Account in an External system, such as your backoffice system or CRM", "example": 8739674733 }, "custom_fields": { "description": "Custom fields for this account", "$ref": "#/components/schemas/CustomFieldParameter" }, "created_at": { "type": "number", "description": "Timestamp when the account was created", "example": 1622672452.363 }, "updated_at": { "type": "number", "description": "Timestamp when the account was updated", "example": 1654309308.278 } } }, "AddContactsToList": { "required": [ "contact_ids" ], "properties": { "contact_ids": { "type": "array", "description": "List of IDs of the contacts to add in the requested contact list. Alternatively, you can supply the contact source and handle as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "AnalyticsActivitiesColumns": { "type": "string", "enum": [ "Activity ID", "Type", "Source", "Message ID", "Segment ID", "Conversation ID", "Ticket IDs", "Segment", "Segment start", "Segment end", "Direction", "Status", "Status at activity time", "Inbox", "Inbox API ID", "Inbox at activity time", "Inbox API IDs at activity time", "Previous inbox IDs", "Message date", "Autoreply", "Reaction time", "Total reply time", "Handle time", "Response time", "Stage resolution time", "Replies to resolution", "Ticket resolution time", "Ticket replies to resolution", "Attributed to", "Assignee", "Author", "Contact name", "Contact handle", "Account names", "From", "To", "Cc", "Bcc", "Extract", "Tags", "Tag API IDs", "Tags at activity time", "Tag API IDs at activity time", "Tag application duration", "Activity API ID", "Message API ID", "Comment API ID", "Conversation API ID", "Message original ID", "New Conversation", "First response", "Business hours", "Subject", "Account name", "Survey rating", "Survey comment", "Segment closed", "Segment contains messages", "Last segment activity", "Added tag", "Added tag API ID", "Removed tag", "Removed tag API ID", "Segment cumulative teammates", "Ticket status name", "Ticket status name at activity time", "Ticket status category", "Ticket status category at activity time" ] }, "AnalyticsActivitiesExportsColumns": { "required": [ "columns" ], "type": "object", "properties": { "columns": { "type": "array", "description": "List of the columns to include in the export. In addition to the\npredefined columns, you can also include parameterized columns by\nappending the parameter value to the column name, separated by a\ncolon (`:`).\n\nExample: `[\"Message ID\", \"Time spent in Ticket Status:123\", \"Smart QA score:Comprehension\"]`\n", "items": { "oneOf": [ { "$ref": "#/components/schemas/AnalyticsActivitiesColumns" }, { "$ref": "#/components/schemas/AnalyticsActivitiesParameterizedColumns" } ] }, "default": [ "Activity ID", "Type", "Source", "Message ID", "Segment ID", "Conversation ID", "Ticket IDs", "Segment", "Segment start", "Segment end", "Direction", "Status", "Status at activity time", "Inbox", "Inbox API ID", "Inbox at activity time", "Inbox API IDs at activity time", "Previous inbox IDs", "Message date", "Autoreply", "Reaction time", "Total reply time", "Handle time", "Response time", "Ticket resolution time", "Ticket replies to resolution", "Attributed to", "Assignee", "Author", "Contact name", "Contact handle", "Account names", "From", "To", "Cc", "Bcc", "Extract", "Tags", "Tag API IDs", "Tags at activity time", "Tag API IDs at activity time", "Tag application duration", "Activity API ID", "Message API ID", "Comment API ID", "Conversation API ID", "Message original ID", "New Conversation", "First response", "Business hours", "Subject", "Account name", "Survey rating", "Survey comment", "Segment closed", "Segment contains messages", "Last segment activity", "Added tag", "Added tag API ID", "Removed tag", "Removed tag API ID", "Segment cumulative teammates" ] } } }, "AnalyticsActivitiesParameterizedColumns": { "type": "string", "oneOf": [ { "type": "string", "pattern": "^Time spent in Ticket Status:\\d+$" }, { "type": "string", "pattern": "^Transitions to Ticket Status:\\d+$" }, { "type": "string", "pattern": "^Smart QA score:\\w+$" } ] }, "AnalyticsActivitiesSmartQAScoreParameters": { "type": "string", "enum": [ "Comprehension", "Solution_Offered", "Professionalism", "Professional_Behavior", "Professional_Relationship", "Readability", "Grammar_Spelling", "General_Empathy", "Cognitive_Empathy", "Emotional_Empathy", "Compassionate_Empathy", "Tone", "Adaptive_Tone", "Neutral_Tone", "Positive_Tone", "Brevity", "Demo_Offered", "Information_Gathering", "Upsell", "Friendly", "Greeting_Offered", "Personalisation", "Adaptability" ] }, "AnalyticsExportRequest": { "discriminator": { "propertyName": "type", "mapping": { "messages": "#/components/schemas/AnalyticsMessagesExportColumns", "events": "#/components/schemas/AnalyticsActivitiesExportsColumns" } }, "oneOf": [ { "$ref": "#/components/schemas/AnalyticsMessagesExportColumns" }, { "$ref": "#/components/schemas/AnalyticsActivitiesExportsColumns" } ], "properties": { "type": { "type": "string", "description": "The type of export to create. The type you specify determines which columns are available for the export.", "enum": [ "messages", "events" ] }, "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" } }, "required": [ "start", "end", "type" ] }, "AnalyticsExportResponse": { "type": "object", "required": [ "_links", "id", "status", "progress", "filters" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to analytics export", "example": "https://yourCompany.api.frontapp.com/analytics/exports/exp_o9y1a" } } }, "id": { "type": "string", "description": "The public ID of the analytics export", "example": "exp_o9y1a" }, "status": { "type": "string", "enum": [ "running", "done", "too_big", "failed" ], "description": "Status of the analytics", "example": "running" }, "progress": { "type": "integer", "minimum": 0, "maximum": 100, "description": "Number ranging from 0 to 100 corresponding to the percentage of the analytics processed.", "example": 20 }, "url": { "type": "string", "description": "The URL from which the export data can be downloaded. Only displays after you make a GET request to the link included in the POST response.", "example": "https://api.frontapp.com/analytics/exports/exp_o9y1a/download" }, "filename": { "type": "string", "description": "The filename of the export with extension included. Only displays after you make a GET request to the link included in the POST response.", "example": "export-messages-yourCompany-2023-07-19-212d-e55df0.csv" }, "size": { "type": "number", "nullable": true, "description": "Size (in bytes) of the export data. Only displays after you make a GET request to the link included in the POST response.", "example": 26639 }, "created_at": { "type": "number", "description": "Timestamp (in seconds) at which the export was requested.", "example": 1703103649.159 }, "filters": { "$ref": "#/components/schemas/AnalyticsFilters" } } }, "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" } ] }, "AnalyticsMessagesColumns": { "type": "string", "enum": [ "Message ID", "Segment ID", "Conversation ID", "Ticket IDs", "Segment", "Direction", "Status", "Inbox", "Inbox API ID", "Inbox at activity time", "Inbox API IDs at activity time", "Message date", "Autoreply", "Reaction time", "Total reply time", "Handle time", "Response time", "Attributed to", "Assignee", "Author", "Contact name", "Contact handle", "Account names", "From", "To", "Cc", "Bcc", "Extract", "Tags", "Tag API IDs", "Message API ID", "Conversation API ID", "New Conversation", "First response", "Business hours", "Subject", "Segment start", "Segment end", "Segment closed", "Last segment activity", "Segment cumulative teammates", "Ticket status name", "Ticket status name at activity time", "Ticket status category", "Ticket status category at activity time" ] }, "AnalyticsMessagesExportColumns": { "required": [ "columns" ], "type": "object", "properties": { "columns": { "type": "array", "description": "List of the columns to include in the export.\n", "items": { "$ref": "#/components/schemas/AnalyticsMessagesColumns" }, "default": [ "Message ID", "Segment ID", "Conversation ID", "Ticket IDs", "Segment", "Direction", "Status", "Inbox", "Inbox API ID", "Inbox at activity time", "Inbox API IDs at activity time", "Message date", "Autoreply", "Reaction time", "Total reply time", "Handle time", "Response time", "Attributed to", "Assignee", "Author", "Contact name", "Contact handle", "Account names", "From", "To", "Cc", "Bcc", "Extract", "Tags", "Tag API IDs", "Message API ID", "Conversation API ID", "New Conversation", "First response", "Business hours", "Subject", "Segment start", "Segment end", "Segment closed", "Last segment activity", "Segment cumulative teammates" ] } } }, "AnalyticsMetricId": { "type": "string", "enum": [ "avg_csat_survey_response", "avg_first_response_time", "avg_handle_time", "avg_replies_to_resolution", "avg_resolution_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_resolved_on_first_reply", "pct_tagged_conversations", "num_closed_segments", "num_open_segments_start", "num_open_segments_end", "num_resolved_segments", "num_unresolved_active_segments", "num_workload_segments" ] }, "AnalyticsReportRequest": { "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" ] }, "AnalyticsReportResponse": { "type": "object", "required": [ "_links", "uid", "status", "progress", "metrics" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to analytics job.", "example": "https://yourCompany.api.frontapp.com/analytics/reports/b45efa66237cc453252d9019449c7a64f5cfdb491b6c2c1d6df33c1050d60e33" } } }, "uid": { "type": "string", "description": "The UID of the analytics report", "example": "b45efa66237cc453252d9019449c7a64f5cfdb491b6c2c1d6df33c1050d60e33" }, "status": { "type": "string", "enum": [ "running", "done", "failed" ], "description": "Status of the report.", "example": "done" }, "progress": { "type": "integer", "minimum": 0, "maximum": 100, "description": "Number ranging from 0 to 100 corresponding to the percentage of the analytics processed.", "example": 100 }, "metrics": { "type": "array", "description": "The metrics computed for the report.", "items": { "$ref": "#/components/schemas/AnalyticsScalar" } } } }, "AnalyticsScalar": { "type": "object", "required": [ "id", "type", "value" ], "properties": { "id": { "$ref": "#/components/schemas/AnalyticsMetricId" }, "type": { "$ref": "#/components/schemas/AnalyticsScalarType" }, "value": { "$ref": "#/components/schemas/AnalyticsScalarValue" } } }, "AnalyticsScalarType": { "type": "string", "example": "number", "enum": [ "number", "percentage", "string", "duration", "resource" ] }, "AnalyticsScalarValue": { "oneOf": [ { "type": "integer" }, { "type": "string" }, { "type": "object", "properties": { "label": { "type": "string" }, "resource": { "type": "object", "required": [ "id", "_links" ], "properties": { "id": { "type": "string" }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to a resource." } } } } } } } ], "nullable": true, "description": "The value of a scalar metric." }, "AppEvent": { "required": [ "event_type", "app_object" ], "properties": { "event_type": { "type": "string", "description": "The type of event this application should handle" }, "app_object": { "type": "object", "description": "Identifier for the app object to which the event is related. Either an ID or an external link is required.\nIf both are provided, the ID will be favored.\n", "properties": { "id": { "type": "string", "description": "ID of the app object" }, "ext_link": { "type": "string", "description": "External link of the app object" } } } } }, "Attachment": { "type": "object", "required": [ "id", "url", "filename", "content_type", "size", "metadata" ], "properties": { "id": { "type": "string", "description": "The unique identifier of the attachment.", "example": "fil_3q8a7mby" }, "filename": { "type": "string", "description": "Name of the attached file", "example": "Andy_Anger_Management_Certificate.png" }, "url": { "type": "string", "description": "URL to download the attached file", "example": "https://yourCompany.api.frontapp.com/download/fil_3q8a7mby" }, "content_type": { "type": "string", "description": "Content type of the attached file in [MIME format](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types). Note that some attachments types may not be supported.", "example": "image/png" }, "size": { "type": "integer", "description": "Size (in byte) of the attached file", "example": 4405 }, "metadata": { "description": "Attachment metadata", "type": "object", "properties": { "is_inline": { "type": "boolean", "description": "Whether or not the attachment is part of the message body", "example": true }, "cid": { "type": "string", "description": "Unique identifier used to link an attachment to where it is used in the message body", "example": "526b45586d0e6b1c484afab63d1ef0be" } } } } }, "ChannelIds": { "type": "object", "required": [ "channel_ids" ], "properties": { "channel_ids": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "ChannelResponse": { "type": "object", "required": [ "_links", "id", "type", "settings", "is_private", "is_valid" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/channels/cha_1gv4" }, "related": { "type": "object", "properties": { "inbox": { "type": "string", "nullable": true, "description": "Link to channel inbox", "example": "https://yourCompany.api.frontapp.com/inboxes/inb_1ix6" }, "owner": { "type": "string", "description": "Link to channel owner", "example": "https://yourCompany.api.frontapp.com/teams/jen_k30" } } } } }, "id": { "type": "string", "description": "Unique identifier for the channel", "example": "cha_1gv4" }, "name": { "type": "string", "description": "The name of the channel", "example": "Paper Sales Inbox" }, "address": { "type": "string", "description": "Address receiving the messages", "example": "sales@dundermifflin.com" }, "type": { "type": "string", "description": "Type of the channel", "enum": [ "custom", "facebook", "gmail", "google_play", "imap", "intercom", "form", "office365", "layer_anon", "smtp", "talkdesk", "truly", "twilio", "twilio_whatsapp", "twitter", "twitter_dm", "yalo_wha", "front_chat", "front_mail" ], "example": "gmail" }, "send_as": { "type": "string", "description": "Address which appears as the sender for messages sent from Front", "example": "sales@dundermifflin.com" }, "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 ], "example": 15 }, "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.", "example": false } } }, "is_private": { "type": "boolean", "default": false, "description": "Whether or not the channel is individual", "example": false }, "is_valid": { "type": "boolean", "default": false, "description": "Whether or not the channel configuration is valid", "example": true } } }, "CommentResponse": { "type": "object", "required": [ "_links", "id", "author", "body", "attachments", "is_pinned" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/comments/com_1ywg3f2" }, "related": { "type": "object", "properties": { "conversation": { "type": "string", "description": "Link to comment's conversation", "example": "https://yourCompany.api.frontapp.com/conversations/cnv_y4xb93i" }, "mentions": { "type": "string", "description": "Link to comment mentions", "example": "https://yourCompany.api.frontapp.com/comments/com_1ywg3f2/mentions" }, "comment_replied_to": { "nullable": true, "type": "string", "description": "Link to the comment that is being replied to.", "example": "https://yourCompany.api.frontapp.com/comments/com_1ywg3f2" } } } } }, "id": { "type": "string", "description": "Unique identifier of the comment", "example": "com_1ywg3f2" }, "author": { "description": "Teammate who wrote the comment", "$ref": "#/components/schemas/TeammateResponse" }, "body": { "type": "string", "description": "Content of the comment", "example": "Sometimes I'll start a sentence and I don't even know where it's going. I just hope I find it along the way." }, "posted_at": { "type": "number", "description": "The timestamp when the comment was posted", "example": 1698943401.378 }, "attachments": { "type": "array", "items": { "$ref": "#/components/schemas/Attachment" }, "description": "List of files attached to the comment" }, "is_pinned": { "type": "boolean", "description": "Whether or not the comment is pinned in its conversation", "example": true } } }, "Contact": { "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. See [example](https://gist.github.com/hdornier/e04d04921032e98271f46ff8a539a4cb) or read more about [Attachments](https://dev.frontapp.com/docs/attachments-1). Max 25 MB.", "format": "binary" }, "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. ⚠️ Deprecated. Use `list_names` instead.", "items": { "type": "string" } }, "list_names": { "type": "array", "description": "List of all the contact list names the contact belongs to. It will automatically create missing groups", "items": { "type": "string" } }, "custom_fields": { "description": "Custom fields for this contact. If you want to keep all custom fields the same when updating this resource, do not include any custom fields in the update. If you want to update custom fields, make sure to include all custom fields, not just the fields you want to add or update. If you send only the custom fields you want to update, the other custom fields will be erased. You can retrieve the existing custom fields before making the update to note the current fields.", "$ref": "#/components/schemas/CustomFieldParameter" } } }, "ContactHandle": { "type": "object", "required": [ "handle", "source" ], "properties": { "handle": { "type": "string", "description": "Handle used to reach the contact.", "example": "dwight@limitlesspaper.com" }, "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`.", "example": "email" } } }, "ContactIds": { "type": "object", "required": [ "contact_ids" ], "properties": { "contact_ids": { "type": "array", "description": "The contact IDs to include. Alternatively, you can supply the contact source and handle as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "ContactListResponses": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/contact_lists/grp_3j342" }, "related": { "type": "object", "properties": { "contacts": { "type": "string", "description": "Link to contact list contacts", "example": "https://yourCompany.api.frontapp.com/contact_lists/grp_3j342/contacts" }, "owner": { "type": "string", "description": "Link to list owner", "example": "https://yourCompany.api.frontapp.com/teammates/tea_e35u" } } } } }, "id": { "type": "string", "description": "Unique identifier of the list", "example": "grp_3j342" }, "name": { "type": "string", "description": "Name of the list", "example": "Party Planning Committee" }, "is_private": { "type": "boolean", "description": "Whether or not the contact is individual", "example": false } } }, "ContactNoteResponses": { "type": "object", "required": [ "_links", "author", "body", "is_private" ], "properties": { "_links": { "type": "object", "properties": { "related": { "type": "object", "properties": { "author": { "type": "string", "description": "Link to the teammate who wrote the note", "example": "https://yourCompany.api.frontapp.com/teammates/tea_6r55a" }, "owner": { "type": "string", "nullable": true, "description": "Link to the owner of the note", "example": "https://yourCompany.api.frontapp.com/teammates/tea_e35u" } } } } }, "author": { "$ref": "#/components/schemas/TeammateResponse", "description": "Teammate who wrote the note", "example": "https://yourCompany.api.frontapp.com/teammates/tea_6r55a" }, "body": { "type": "string", "description": "Content of the note", "example": "Mrs. Allen is our most important client … because every client is our most important client." }, "created_at": { "type": "number", "description": "The timestamp when the note was created", "example": 1701806790.536 } } }, "ContactResponse": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/contacts/crd_3cgz4ge\"" }, "related": { "type": "object", "properties": { "notes": { "type": "string", "description": "Link to contact notes", "example": "https://yourCompany.api.frontapp.com/contacts/crd_3cgz4ge/notes" }, "conversations": { "type": "string", "description": "Link to contact conversations", "example": "https://yourCompany.api.frontapp.com/contacts/crd_3cgz4ge/conversations" }, "owner": { "type": "string", "description": "Link to contact owner", "example": null } } } } }, "id": { "type": "string", "description": "Unique identifier of the contact", "example": "crd_3cgz4ge" }, "name": { "type": "string", "description": "Contact name", "example": "Dwight Schrute" }, "description": { "type": "string", "description": "Contact description", "example": "Assistant to the regional manager" }, "avatar_url": { "type": "string", "description": "URL of the contact's avatar", "example": "https://yourCompany.api.frontapp.com/contacts/crd_3cgz4ge/avatar-1673436467707" }, "links": { "type": "array", "description": "List of all the links of the contact", "items": { "type": "string", "example": [ "https://shrutefarms.com", "https://eatyourbeets.com" ] } }, "groups": { "type": "array", "deprecated": true, "description": "List of the groups the contact belongs to. ⚠️ Deprecated. use `lists` instead.", "items": { "$ref": "#/components/schemas/ContactListResponses" } }, "lists": { "type": "array", "description": "List of the contact lists the contact belongs to.", "items": { "$ref": "#/components/schemas/ContactListResponses" } }, "handles": { "type": "array", "description": "List of the handles and sources with which the contact is reachable.", "items": { "$ref": "#/components/schemas/ContactHandle" } }, "custom_fields": { "description": "Custom fields for this contact.", "$ref": "#/components/schemas/CustomFieldParameter" }, "is_private": { "type": "boolean", "description": "Whether or not the contact is individual", "example": true } } }, "ConversationResponse": { "type": "object", "required": [ "_links", "id", "subject", "status", "ticket_ids", "assignee", "recipient", "tags", "links", "custom_fields", "is_private", "scheduled_reminders", "metadata" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/conversations/cnv_yo1kg5q" }, "related": { "type": "object", "properties": { "events": { "type": "string", "description": "Link to conversation events", "example": "https://yourCompany.api.frontapp.com/conversations/cnv_yo1kg5q/events" }, "followers": { "type": "string", "description": "Link to conversation followers", "example": "https://yourCompany.api.frontapp.com/conversations/cnv_yo1kg5q/followers" }, "messages": { "type": "string", "description": "Link to conversation messages", "example": "https://yourCompany.api.frontapp.com/conversations/cnv_yo1kg5q/messages" }, "comments": { "type": "string", "description": "Link to conversation comments", "example": "https://yourCompany.api.frontapp.com/conversations/cnv_yo1kg5q/comments" }, "inboxes": { "type": "string", "description": "Link to conversation inboxes", "example": "https://yourCompany.api.frontapp.com/conversations/cnv_yo1kg5q/inboxes" }, "last_message": { "type": "string", "description": "Link to last message of the conversation", "example": "https://yourCompany.api.frontapp.com/messages/msg_1q15qmtq?referer=conversation" } } } } }, "id": { "type": "string", "description": "Unique identifier of the conversation", "example": "cnv_yo1kg5q" }, "subject": { "type": "string", "description": "Subject of the message for email message", "example": "How to prank Dwight Schrute" }, "status": { "type": "string", "description": "Status of the conversation", "enum": [ "archived", "unassigned", "deleted", "assigned" ], "example": "assigned" }, "status_id": { "type": "string", "description": "Unique identifier of the conversation status category, only present if ticketing is enabled", "example": "sts_5x" }, "status_category": { "type": "string", "description": "Status category of the conversation", "enum": [ "open", "waiting", "resolved" ], "example": "resolved" }, "ticket_ids": { "type": "array", "description": "List of ticket ids associated with the conversation", "items": { "type": "string" }, "example": [ "TICKET-1" ] }, "assignee": { "nullable": true, "$ref": "#/components/schemas/TeammateResponse", "description": "Partial representation of the teammate assigned to the conversation" }, "recipient": { "nullable": true, "$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" } }, "custom_fields": { "description": "Custom fields for this conversation", "$ref": "#/components/schemas/CustomFieldParameter" }, "created_at": { "type": "number", "description": "Timestamp at which the conversation was created.", "example": 1701292649.333 }, "updated_at": { "type": "number", "description": "Timestamp at which the conversation was last updated.", "example": 1701292649.333 }, "waiting_since": { "type": "number", "description": "Timestamp of the oldest unreplied message.", "example": 1701292649.333 }, "is_private": { "type": "boolean", "description": "Whether or not the conversation is private", "example": true }, "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.", "example": [ "JS3949", "JS9403" ], "items": { "type": "string" } } } } } }, "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." }, "webhook_url": { "type": "string", "description": "The webhook URL outbound messages should be sent to. Only allowed for \"custom\" type channels." }, "sid": { "type": "string", "description": "The SID of the Twilio channel. Only allowed for \"twilio\" type channels." }, "auth_token": { "type": "string", "description": "The auth token for the Twilio account. Only allowed for \"twilio\" type channels." } } }, "type": { "type": "string", "description": "Type of the channel", "enum": [ "custom", "smtp", "twilio" ] }, "send_as": { "type": "string", "description": "Sending address of your channel. Required for SMTP and Twilio channels." } } }, "CreateComment": { "required": [ "body" ], "properties": { "author_id": { "type": "string", "description": "ID of the teammate creating the comment. Alternatively, you can supply the author as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1). If omitted, will post as the API Token or OAuth client of the requester." }, "body": { "type": "string", "description": "Content of the comment. Can include markdown formatting." }, "is_pinned": { "type": "boolean", "description": "Whether or not the comment is pinned in its conversation." }, "attachments": { "description": "Binary data of attached files. Must use `Content-Type: multipart/form-data` if specified. See [example](https://gist.github.com/hdornier/e04d04921032e98271f46ff8a539a4cb) or read more about [Attachments](https://dev.frontapp.com/docs/attachments-1). Max 25 MB.", "type": "array", "items": { "type": "string", "format": "binary" } } } }, "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" } } } } ] }, "CreateContactList": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "Name of the contact list" } } }, "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" } } }, "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) or read more about [Attachments](https://dev.frontapp.com/docs/attachments-1).", "type": "array", "items": { "type": "string", "format": "binary" } } } }, "custom_fields": { "description": "Custom fields for this conversation", "$ref": "#/components/schemas/CustomFieldParameter" } } }, "CreateDraft": { "required": [ "body" ], "properties": { "author_id": { "type": "string", "description": "ID of the teammate on behalf of whom the draft will be created. Alternatively, you can supply the author ID as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1). If omitted, will post as the API Token or Application making the request." }, "to": { "type": "array", "description": "List of recipient handles who will receive the message once the draft is sent", "items": { "type": "string" } }, "cc": { "type": "array", "description": "List of recipient handles who will receive a copy of the message once the draft is sent", "items": { "type": "string" } }, "bcc": { "type": "array", "description": "List of the recipient handles who will receive a blind copy of the message once the draft is sent", "items": { "type": "string" } }, "subject": { "type": "string", "description": "Subject of the draft." }, "body": { "type": "string", "description": "Body of the draft" }, "quote_body": { "type": "string", "description": "Body for the quote that the message is referencing. Only available on email channels." }, "attachments": { "description": "Binary data of attached files. Must use `Content-Type: multipart/form-data` if specified. See [example](https://gist.github.com/hdornier/e04d04921032e98271f46ff8a539a4cb) or read more about [Attachments](https://dev.frontapp.com/docs/attachments-1). Max 25 MB.", "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;" } } }, "CreateInbox": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "The name of the inbox" }, "teammate_ids": { "type": "array", "description": "An array of teammate IDs that should have access to the inbox. Alternatively, you can supply teammate emails as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "items": { "$ref": "#/components/schemas/ResourceID" } }, "is_public": { "type": "boolean", "description": "Whether the inbox is public or not" }, "custom_fields": { "description": "Custom fields for this inbox", "$ref": "#/components/schemas/CustomFieldParameter" } } }, "CreateLink": { "type": "object", "description": "A link is used to connect a Front conversation to an external resource.", "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" }, "pattern": { "type": "string", "description": "The string that application object configurations will match on to update a specific application object. For example, if you've configured an application object to match on ORDER-{Digits}, and you want to specifically update the application objects for ORDER-777 to retrieve the latest information from external systems, send \"ORDER-777\". Repeat for other specific identifiers, such as \"ORDER-435\".", "example": "ORDER-123" } } }, "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.", "example": "Out of Office" }, "body": { "type": "string", "description": "Body of the message template. You can supply HTML with inline CSS to structure and style your template.", "example": "

Sorry, I'm OOO until October 25th.

\n" }, "inbox_ids": { "type": "array", "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.", "items": { "type": "string" }, "example": null } } }, "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 } } }, "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" } } }, "CreatePrivateInbox": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "The name of the inbox" }, "custom_fields": { "description": "Custom fields for this inbox", "$ref": "#/components/schemas/CustomFieldParameter" } } }, "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.", "example": "Out of Office" }, "body": { "type": "string", "description": "Body of the message template. You can supply HTML with inline CSS to structure and style your template.", "example": "

Sorry, I'm OOO until October 25th.

\n" }, "folder_id": { "type": "string", "description": "ID of the message template folder to place this message template in", "example": null } } }, "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", "description": "The specific channels this signature is available in. If omitted or null, the signature will be available in all channels the teammate has access to. Alternatively, you can specify channels using a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "items": { "type": "string" } } } }, "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.", "example": "Out of Office" }, "body": { "type": "string", "description": "Body of the message template. You can supply HTML with inline CSS to structure and style your template.", "example": "

Sorry, I'm OOO until October 25th.

\n" }, "folder_id": { "type": "string", "description": "ID of the message template folder to place this message template in", "example": null }, "inbox_ids": { "type": "array", "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.", "items": { "type": "string" }, "example": null }, "attachments": { "description": "Binary data of attached files. Must use `Content-Type: multipart/form-data` if specified. See [example](https://dev.frontapp.com/docs/attachments-1). Max 25 MB.", "type": "array", "items": { "type": "string", "format": "binary" } } } }, "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", "description": "The specific channels this signature is available in. If omitted or null, the signature will be available in all channels the team has access to. Alternatively, you can specify channels using a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "items": { "type": "string" } } } }, "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", "description": "List of all the teammate ids who will be part of this shift. Alternatively, you can supply emails as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "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", "maxLength": 64 }, "description": { "type": "string", "description": "Description 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 } } }, "CreateTeamInbox": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "The name of the inbox" }, "teammate_ids": { "type": "array", "description": "An array of teammate IDs that should have access to the inbox. Alternatively, you can supply teammate emails as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "items": { "$ref": "#/components/schemas/ResourceID" } }, "is_public": { "type": "boolean", "description": "Whether the inbox is public or not" }, "custom_fields": { "description": "Custom fields for this inbox", "$ref": "#/components/schemas/CustomFieldParameter" } } }, "CreateTeammateGroup": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "Name of the teammate group" }, "description": { "type": "string", "description": "Description of the teammate group" }, "permissions": { "type": "object", "description": "Permissions for the teammate group", "properties": { "contacts": { "type": "object", "description": "Permissions for accessing contact lists. This only applies if shared contacts permissions are enabled.", "required": [ "access" ], "properties": { "access": { "type": "string", "description": "One of 'all', 'contact_groups', 'contact_lists', or 'none'." }, "contact_group_ids": { "type": "array", "deprecated": true, "description": "List of contact group ids. Can only be specified if access is set to 'contact_groups'. ⚠️ Deprecated. Use access 'contact_lists' and 'contact_list_ids' instead.", "items": { "type": "string" } }, "contact_list_ids": { "type": "array", "description": "List of contact list ids. Can only be specified if access is set to 'contact_lists'.", "items": { "type": "string" } } } } } } } }, "CreateView": { "properties": { "name": { "type": "string", "description": "Name of the view" }, "inbox_ids": { "type": "array", "description": "List of inbox IDs to filter by", "items": { "$ref": "#/components/schemas/ResourceID" } }, "tag_ids": { "type": "array", "description": "List of tag IDs to filter by", "items": { "$ref": "#/components/schemas/ResourceID" } }, "not_tag_ids": { "type": "array", "description": "List of tag IDs to exclude", "items": { "$ref": "#/components/schemas/ResourceID" } }, "no_tags": { "type": "boolean", "description": "Whether to filter for conversations without tags" }, "assignee_ids": { "type": "array", "description": "List of assignee IDs to filter by", "items": { "$ref": "#/components/schemas/ResourceID" } }, "not_assignee_ids": { "type": "array", "description": "List of assignee IDs to exclude", "items": { "$ref": "#/components/schemas/ResourceID" } }, "highlight": { "type": "string", "description": "Color highlight for the view" } }, "required": [ "name", "inbox_ids" ] }, "CustomFieldParameter": { "type": "object", "description": "An object whose key is the `name` property defined for the custom field in the Front UI. The value of the key must use the same `type` specified for the custom field, as described in https://dev.frontapp.com/reference/custom-fields", "example": { "city": "London, UK", "isVIP": true, "renewal_date": 1525417200, "sla_time": 90, "owner": "leela@planet-express.com", "replyTo": "inb_55c8c149", "Job Title": "firefighter" } }, "CustomFieldResponse": { "type": "object", "required": [ "_links", "id", "name", "type", "description" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/custom_fields/fld_co0e" } } }, "id": { "type": "string", "description": "Unique identifier of the custom field", "example": "fld_co0e" }, "name": { "type": "string", "description": "Name of the custom field", "example": "Customer plan" }, "description": { "type": "string", "description": "Description of the custom field", "example": "The billing plan of the customer" }, "type": { "type": "string", "description": "Type of the custom field", "enum": [ "string", "boolean", "datetime", "number", "teammate", "inbox", "enum" ], "example": "enum" }, "values": { "type": "array", "description": "List of possible values for a custom field of type `enum`.", "items": { "type": "object", "properties": { "value": { "type": "string", "description": "Value of the custom field", "example": "Enterprise" }, "label": { "type": "string", "description": "Human readable label for the value", "example": "Customer plan" } } } } } }, "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. **Important:** When sending a phone number, include a country code preceded by a plus (+) sign. For example, +33 for France. If you do not send a country code or include a plus sign, Front will normalize your phone number to the USA (+1)." } } }, "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. This reference is unique to custom channels. If you supply a reference generated by another endpoint, the message will not thread into the same conversation." }, "headers": { "type": "object", "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) or read more about [Attachments](https://dev.frontapp.com/docs/attachments-1). Max 25 MB.", "type": "array", "items": { "type": "string", "format": "binary" } } } }, "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 } } } ] }, "DeleteDraft": { "required": [ "version" ], "properties": { "version": { "type": "string", "description": "Version of the draft" } } }, "EditDraft": { "required": [ "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" ] } } } ] }, "EventResponse": { "type": "object", "description": "An event is created every time something interesting is happening in Front.", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/events/evt_4ckcra8e" } } }, "id": { "type": "string", "description": "Unique identifier of the event", "example": "evt_4ckcra8e" }, "type": { "type": "string", "description": "Type of event", "enum": [ "assign", "unassign", "archive", "reopen", "trash", "restore", "reminder", "comment", "mention", "inbound", "outbound", "out_reply", "move", "forward", "tag", "untag", "sending_error", "message_bounce_error", "conversations_merged", "link_added", "link_removed", "custom_field_updated", "macro_triggered", "topic_identified", "ticket_status_update", "call_started", "call_abandoned", "call_queued", "call_on_hold", "call_resumed", "call_connected", "call_missed", "call_hangup", "call_transferred" ], "example": "inbound" }, "emitted_at": { "type": "number", "description": "The timestamp when the event has been emitted", "example": 1703102616 }, "source": { "type": "object", "description": "Event source", "properties": { "_meta": { "type": "object", "description": "Metadata about the resource", "properties": { "type": { "description": "Type of resource", "enum": [ "api", "oauth_client", "rule", "teammate", "imap", "gmail", "reminder", "inboxes", "recipient" ], "example": "inboxes" } } }, "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", "enum": [ "teammate", "inboxes", "message", "comment", "tag", "deleted_conversation_ids", "link", "custom_field" ], "example": "inboxes" } } }, "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": { "type": "object", "required": [ "_links", "id", "name" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/me" } } }, "id": { "type": "string", "description": "Unique ID of company", "example": "cmp_k30" }, "name": { "type": "string", "description": "Name of company", "example": "Dunder Mifflin Paper Company, Inc." } } }, "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. **Important:** When sending a phone number, include a country code preceded by a plus (+) sign. For example, +33 for France. If you do not send a country code or include a plus sign, Front will normalize your phone number to the USA (+1)." } } }, "to": { "type": "array", "description": "List of the recipient handles who will receive this message", "items": { "type": "string" } }, "cc": { "type": "array", "description": "List of the recipient handles who will receive a copy of this message", "items": { "type": "string" } }, "bcc": { "type": "array", "description": "List of the recipient handles who will receive a blind copy of this message", "items": { "type": "string" } }, "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" } }, "conversation_id": { "type": "string", "description": "If supplied, Front will thread this message into conversation with the given ID. Note that including this parameter nullifies the `thread_ref` parameter _completely_." }, "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. This reference is unique to importing historical messages. If you supply a reference generated by another endpoint, the message will not thread into the same conversation." }, "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.", "default": true }, "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) or read more about [Attachments](https://dev.frontapp.com/docs/attachments-1). Max 25 MB.", "type": "array", "items": { "type": "string", "format": "binary" } } } }, "InboxIds": { "type": "object", "required": [ "inbox_ids" ], "properties": { "inbox_ids": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "InboxResponse": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/inboxes/inb_1ix6" }, "related": { "type": "object", "properties": { "teammates": { "type": "string", "description": "Link to inbox teammates", "example": "https://yourCompany.api.frontapp.com/inboxes/inb_1ix6/teammates" }, "conversations": { "type": "string", "description": "Link to inbox conversations", "example": "https://yourCompany.api.frontapp.com/inboxes/inb_1ix6/conversations" }, "channels": { "type": "string", "description": "Link to inbox channels", "example": "https://yourCompany.api.frontapp.com/inboxes/inb_1ix6/channels" }, "owner": { "type": "string", "description": "Link to inbox owner", "example": "https://yourCompany.api.frontapp.com/teams/tim_k30" } } } } }, "id": { "type": "string", "description": "Unique identifier for the inbox", "example": "inb_1ix6" }, "name": { "type": "string", "description": "Name of the inbox", "example": "The Dundies" }, "is_private": { "type": "boolean", "description": "Whether or not the inbox is individual", "example": false }, "is_public": { "type": "boolean", "description": "Whether or not the inbox is available to all members of a team by default", "example": true }, "custom_fields": { "description": "Custom fields for this inbox", "$ref": "#/components/schemas/CustomFieldParameter" } } }, "KnowledgeBaseArticleCreate": { "type": "object", "properties": { "category_id": { "type": "string", "description": "ID of the category this article belongs to" }, "author_id": { "type": "string", "description": "Teammate ID of the article author" }, "subject": { "type": "string", "description": "Subject of the article" }, "content": { "type": "string", "description": "HTML content of the article" }, "status": { "type": "string", "enum": [ "draft", "published" ], "default": "draft", "description": "Article status" } } }, "KnowledgeBaseArticlePatch": { "type": "object", "properties": { "author_id": { "type": "string", "description": "Teammate ID of the article author" }, "subject": { "type": "string", "description": "Subject of the article" }, "content": { "type": "string", "description": "HTML content of the article" }, "status": { "type": "string", "enum": [ "draft", "published" ], "description": "Article status", "default": "draft" } } }, "KnowledgeBaseArticleResponse": { "type": "object", "required": [ "_links", "id", "slug", "name", "status", "keywords", "content", "locale", "attachments" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/knowledge_base_articles/kba_12" }, "related": { "type": "object", "properties": { "knowledge_base": { "type": "string", "description": "Link to the article's knowledge base", "example": "https://yourCompany.api.frontapp.com/knowledge_bases/knb_12" }, "category": { "type": "string", "description": "Link to the article's category", "example": "https://yourCompany.api.frontapp.com/knowledge_base_category/kbc_12" }, "last_editor": { "type": "string", "description": "Link to the article's last editor", "example": "https://yourCompany.api.frontapp.com/teammates/tea_6r55a" } } } } }, "id": { "type": "string", "description": "Unique identifier of the knowledge base article", "example": "kba_12" }, "slug": { "type": "string", "description": "URL slug of the article. Construct the full URL using the template of protocol/knowledge base domain/locale/slug, such as https://yourDomain.com/en/articles/5", "example": "/articles/5" }, "name": { "type": "string", "description": "Name of the article", "example": "Billing 101" }, "status": { "type": "string", "description": "Status of the article", "example": "published" }, "keywords": { "type": "array", "description": "Article keywords", "items": { "type": "string", "example": [ "billing", "returns" ] } }, "content": { "type": "string", "description": "Article HTML content", "example": "

How to process a return

To process a return...

" }, "locale": { "type": "string", "description": "Locale of the article", "example": "en" }, "attachments": { "type": "array", "items": { "$ref": "#/components/schemas/Attachment" }, "description": "List of files attached to the article" }, "last_edited_at": { "type": "number", "description": "Timestamp when the article was last edited", "example": 1622672452.363 }, "created_at": { "type": "number", "description": "Timestamp when the article was created", "example": 1622672452.363 }, "updated_at": { "type": "number", "description": "Timestamp when the article was updated", "example": 1654309308.278 } } }, "KnowledgeBaseArticleSlimResponse": { "type": "object", "required": [ "_links", "id", "slug", "locales" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/knowledge_base_articles/kba_12" }, "related": { "type": "object", "properties": { "knowledge_base": { "type": "string", "description": "Link to the article's knowledge base", "example": "https://yourCompany.api.frontapp.com/knowledge_bases/knb_12" }, "category": { "type": "string", "nullable": true, "description": "Link to the article's category", "example": "https://yourCompany.api.frontapp.com/knowledge_base_category/kbc_12" }, "content": { "type": "string", "description": "Link to the article's content", "example": "https://yourCompany.api.frontapp.com/knowledge_base_articles/kba_12/content" } } } } }, "id": { "type": "string", "description": "Unique identifier of the knowledge base article", "example": "kba_12" }, "slug": { "type": "string", "description": "URL slug of the article. Construct the full URL using the template of protocol/knowledge base domain/locale/slug, such as https://yourDomain.com/en/articles/5", "example": "/articles/5" }, "locales": { "type": "array", "description": "List of the locales the article supports", "items": { "type": "string", "example": [ "en", "es" ] } }, "created_at": { "type": "number", "description": "Timestamp when the article was created", "example": 1622672452.363 }, "updated_at": { "type": "number", "description": "Timestamp when the article was updated", "example": 1654309308.278 } } }, "KnowledgeBaseCategoryCreate": { "type": "object", "required": [ "name" ], "properties": { "parent_category_id": { "type": "string", "description": "ID of the parent category" }, "name": { "type": "string", "description": "Name of the knowledge base category" }, "description": { "type": "string", "description": "Description of the knowledge base category" } } }, "KnowledgeBaseCategoryPatch": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the knowledge base category" }, "description": { "type": "string", "description": "Description of the knowledge base category" } } }, "KnowledgeBaseCategoryResponse": { "type": "object", "required": [ "_links", "id", "name", "description", "is_hidden", "locale" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/knowledge_base_categories/kbc_12" }, "related": { "type": "object", "properties": { "knowledge_base": { "type": "string", "description": "Link to the category's knowledge base", "example": "https://yourCompany.api.frontapp.com/knowledge_bases/knb_12" }, "parent_category": { "type": "string", "nullable": true, "description": "Link to the category's parent", "example": "https://yourCompany.api.frontapp.com/knowledge_base_catgories/kbc_10" }, "articles": { "type": "string", "description": "Link to articles in this category", "example": "https://yourCompany.api.frontapp.com/knowledge_base_categories/kbc_12/articles" } } } } }, "id": { "type": "string", "description": "Unique identifier of the knowledge base category", "example": "kbc_12" }, "name": { "type": "string", "nullable": true, "description": "Category name", "example": "Getting started" }, "description": { "type": "string", "nullable": true, "description": "Description of the category", "example": "How to get started in Front" }, "is_hidden": { "type": "boolean", "description": "Is the category hidden", "example": false }, "locale": { "type": "string", "enum": [ "fr", "en" ], "description": "Locale of this category", "example": "en" }, "created_at": { "type": "number", "description": "Timestamp when the category was created", "example": 1622672452.363 }, "updated_at": { "type": "number", "description": "Timestamp when the category was updated", "example": 1654309308.278 } } }, "KnowledgeBaseCategorySlimResponse": { "type": "object", "required": [ "_links", "id", "slug", "is_hidden", "locales" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/knowledge_base_categories/kbc_12" }, "related": { "type": "object", "properties": { "knowledge_base": { "type": "string", "description": "Link to the category's knowledge base", "example": "https://yourCompany.api.frontapp.com/knowledge_bases/knb_12" }, "parent_category": { "type": "string", "nullable": true, "description": "Link to the category's parent", "example": "https://yourCompany.api.frontapp.com/knowledge_base_catgories/kbc_10" }, "articles": { "type": "string", "description": "Link to articles in this category", "example": "https://yourCompany.api.frontapp.com/knowledge_base_categories/kbc_12/articles" } } } } }, "id": { "type": "string", "description": "Unique identifier of the knowledge base category", "example": "kbc_12" }, "slug": { "type": "string", "description": "URL slug of the category. Construct the full URL using the template of protocol/knowledge base domain/locale/slug, such as https://yourDomain.com/en/categories/2", "example": "/categories/2" }, "is_hidden": { "type": "boolean", "description": "Is the category hidden from navigation and breadcrumbs (topics are accessed as direct links)", "example": false }, "locales": { "type": "array", "description": "List of the locales the category supports", "items": { "type": "string", "example": [ "en", "es" ] } }, "created_at": { "type": "number", "description": "Timestamp when the category was created", "example": 1622672452.363 }, "updated_at": { "type": "number", "description": "Timestamp when the category was updated", "example": 1654309308.278 } } }, "KnowledgeBaseCreate": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "Name of the knowledge base" }, "type": { "type": "string", "enum": [ "internal", "external" ], "description": "Determines if the knowledge base is publicly available or private only to your company", "default": "external", "example": "internal" } } }, "KnowledgeBasePatch": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the knowledge base" } } }, "KnowledgeBaseResponse": { "type": "object", "required": [ "_links", "id", "name", "status", "type", "locale" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/knowledge_bases/knb_12" }, "related": { "type": "object", "properties": { "articles": { "type": "string", "description": "Link to articles associated to the knowledge base", "example": "https://yourCompany.api.frontapp.com/knowledge_bases/knb_12/articles" }, "categories": { "type": "string", "description": "Link to categories associated to the knowledge base", "example": "https://yourCompany.api.frontapp.com/knowledge_bases/knb_12/categories" } } } } }, "id": { "type": "string", "description": "Unique identifier of the knowledge base", "example": "knb_12" }, "name": { "type": "string", "description": "Knowledge base name", "example": "Company Help Center" }, "status": { "type": "string", "enum": [ "published", "unpublished" ], "description": "Status of the KB", "example": "unpublished" }, "type": { "type": "string", "enum": [ "internal", "external" ], "description": "Type of the KB", "example": "internal" }, "locale": { "type": "string", "enum": [ "fr", "en" ], "description": "Locale of this requested KB", "example": "en" }, "created_at": { "type": "number", "description": "Timestamp when the knowledge base was created", "example": 1622672452.363 }, "updated_at": { "type": "number", "description": "Timestamp when the knowledge base was updated", "example": 1654309308.278 } } }, "KnowledgeBaseSlimResponse": { "type": "object", "required": [ "_links", "id", "type", "locales" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/knowledge_bases/knb_12" }, "related": { "type": "object", "properties": { "articles": { "type": "string", "description": "Link to articles associated to the knowledge base", "example": "https://yourCompany.api.frontapp.com/knowledge_bases/knb_12/articles" }, "categories": { "type": "string", "description": "Link to categories associated to the knowledge base", "example": "https://yourCompany.api.frontapp.com/knowledge_bases/knb_12/categories" } } } } }, "id": { "type": "string", "description": "Unique identifier of the knowledge base", "example": "knb_12" }, "type": { "type": "string", "enum": [ "internal", "external" ], "description": "Type of the KB", "example": "internal" }, "locales": { "type": "array", "description": "List of the KB's possible locales", "items": { "type": "string", "example": [ "en", "es" ] } }, "created_at": { "type": "number", "description": "Timestamp when the knowledge base was created", "example": 1622672452.363 }, "updated_at": { "type": "number", "description": "Timestamp when the knowledge base was updated", "example": 1654309308.278 } } }, "LinkResponse": { "type": "object", "description": "A link used to connect a Front conversation to an external resource.", "required": [ "_links", "id", "name", "type", "external_url", "custom_fields" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/links/top_b2wpa" } } }, "id": { "type": "string", "description": "Unique identifier of the link", "example": "top_b2wpa" }, "name": { "type": "string", "description": "Display name of the link", "example": "JIRA-SCRAN-4567" }, "type": { "type": "string", "description": "Type of the link. Typically associated with the underlying link provider (if known)", "example": "app_2f76b9ac738de158" }, "external_url": { "type": "string", "description": "Underlying identifying external URL of the link", "example": "https://dundermifflin.atlassian.net/browse/PB-SCRAN-4567" }, "custom_fields": { "description": "Custom fields for this link", "$ref": "#/components/schemas/CustomFieldParameter" } } }, "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" } } } }, "MessageResponse": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/messages/msg_1q15qmtq" }, "related": { "type": "object", "properties": { "conversation": { "type": "string", "description": "Link to message conversation", "example": "https://yourCompany.api.frontapp.com/conversations/cnv_yo1kg5q" }, "message_replied_to": { "type": "string", "description": "Link to message this message replied to", "example": "https://yourCompany.api.frontapp.com/messages/msg_2y67qldq" }, "message_seen": { "type": "string", "description": "Link to message seen information", "example": "https://yourCompany.api.frontapp.com/messages/msg_1q15qmtq/seen" } } } } }, "id": { "type": "string", "description": "Unique identifier of the message", "example": "msg_1q15qmtq" }, "message_uid": { "type": "string", "description": "Secondary unique identifier of a message. Generated by Front on message creation. Learn more at about the [message UID](https://dev.frontapp.com/reference/messages#creating-a-new-message).", "example": "1eab543f84a0785f7b6b8967cck18f4d" }, "type": { "type": "string", "description": "Type of the message", "enum": [ "call", "custom", "email", "facebook", "front_chat", "googleplay", "intercom", "internal", "phone-call", "sms", "tweet", "tweet_dm", "whatsapp", "yalo_wha" ], "example": "email" }, "is_inbound": { "type": "boolean", "description": "Whether or not the message has been received or sent", "example": false }, "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" ], "example": "shared" }, "error_type": { "type": "string", "description": "Type of the error when the draft failed to be sent", "example": null }, "version": { "type": "string", "description": "The current version of the message in Front", "example": "551ba368f3e7803cce51503ee3e58ef0-26028-1701804863304-945c" }, "created_at": { "type": "number", "description": "The timestamp when the message was sent or received", "example": 1701292639 }, "subject": { "type": "string", "description": "Subject of the message", "example": "Jim's pranks are getting out of hand" }, "blurb": { "type": "string", "description": "Preview of the message body", "example": "It's high time we discuss the pranking culture in the office" }, "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", "example": "

Hi there,

I wanted to let you know that I'm suggesting an update to Dunder Mifflin's Pranking Policy to provide non-humorous employees greater control over their well-being in the office.

" }, "text": { "type": "string", "description": "Text version of the body for email messages", "example": "Hi there,\\n\\nI wanted to let you know that I'm suggesting an update to Dunder Mifflin's Pranking Policy (https://dundermifflin.com/privacy/pranks) to provide non-humorous employees greater control over their well-being in the office." }, "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 coming from.", "example": "http://intercom.com" }, "duration": { "type": "integer", "description": "For `truly-call` messages only. Length of the call in seconds.", "example": 189 }, "have_been_answered": { "type": "boolean", "description": "For `truly-call` messages only. Whether or not the call have been answered.", "example": false }, "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.", "example": "dkd84992kduo903" }, "twitter_url": { "type": "string", "description": "For `tweet` messages only. URL of the tweet.", "example": "https://twitter.com" }, "is_retweet": { "type": "boolean", "description": "For `tweet` messages only. Whether or not the tweet is a retweet.", "example": true }, "have_been_retweeted": { "type": "boolean", "description": "For `tweet` messages only. Whether or not the tweet have been retweeted.", "example": true }, "have_been_favorited": { "type": "boolean", "description": "For `tweet` messages only. Whether or not the tweet have been favorited.", "example": false }, "thread_ref": { "type": "string", "description": "For `custom` messages only. Custom reference which is used to thread messages.", "example": "t0930k9000-394" }, "headers": { "type": "object", "description": "For `custom` messages only. Custom object holding internal information." }, "chat_visitor_url": { "type": "string", "description": "For `front_chat` messages only. Source URL from the chat widget when sending a message.", "example": "https://yourCompany.com/products" } } } } }, "MessageTemplateFolderResponse": { "type": "object", "required": [ "_links", "id", "name" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/message_template_folders/rsf_g2" }, "related": { "type": "object", "properties": { "owner": { "type": "string", "nullable": true, "description": "Link to resource's owner. Null if the current folder does not have an owner.", "example": "https://yourCompany.api.frontapp.com/teams/tim_s47" }, "parent_folder": { "type": "string", "nullable": true, "description": "Link to parent folder. Null if the current folder does not have a parent.", "example": "https://yourCompany.api.frontapp.com/message_template_folders/rsf_g1" }, "child_folders": { "type": "string", "nullable": true, "description": "Link to child folders. Null if the current folder does not have children.", "example": "https://yourCompany.api.frontapp.com/message_template_folders/rsf_g2/message_template_folders" }, "child_answers": { "type": "string", "nullable": true, "description": "Link to message templates contained within this folder or children folders. Null if the current folder does not have any message templates.", "example": "https://yourCompany.api.frontapp.com/message_template_folders/rsf_g2/message_templates" } } } } }, "id": { "type": "string", "description": "Unique identifier of the message template folder", "example": "rsf_g2" }, "name": { "type": "string", "description": "Name of the message template folder", "example": "Complaints to Toby (or about Toby)" }, "created_at": { "type": "number", "description": "Timestamp at which the message template folder was created.", "example": 1680300342.904 }, "updated_at": { "type": "number", "description": "Timestamp at which the message template folder was updated.", "example": 1688668654.501 } } }, "MessageTemplateResponse": { "type": "object", "required": [ "_links", "id", "name", "subject", "body", "attachments", "is_available_for_all_inboxes", "inbox_ids" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/responses/rsp_16yc" }, "related": { "type": "object", "properties": { "owner": { "type": "string", "nullable": true, "description": "Link to resource's owner", "example": "https://yourCompany.api.frontapp.com/teams/tim_s47" }, "parent_folder": { "nullable": true, "type": "string", "description": "Link to the parent folder that contains the message template", "example": "https://yourCompany.api.frontapp.com/message_template_folders/rsf_g2" } } } } }, "id": { "type": "string", "description": "Unique identifier of the message template", "example": "rsp_16yc" }, "name": { "type": "string", "description": "Name of the message template", "example": "Pam wedding planning complaint" }, "subject": { "type": "string", "nullable": true, "description": "Subject of the message template", "example": "Work time being used for wedding planning" }, "body": { "type": "string", "description": "Body of the message template", "example": "

Pam is spending time planning her wedding at the office. This message WAS NOT sent by Angela.

\n" }, "attachments": { "type": "array", "description": "List of files attached to the response", "items": { "$ref": "#/components/schemas/Attachment" } }, "is_available_for_all_inboxes": { "type": "boolean", "description": "Whether or not the template is available in all inboxes.", "example": true }, "inbox_ids": { "type": "array", "nullable": true, "description": "List of inboxes the template is available in. Null if there are no restrictions.", "items": { "type": "string", "example": null } } } }, "OutboundMessage": { "required": [ "to", "body" ], "properties": { "to": { "type": "array", "description": "List of the recipient handles who will receive this message. One of `to`, `cc`, or `bcc` is required.", "items": { "type": "string" } }, "cc": { "type": "array", "description": "List of the recipient handles who will receive a copy of this message. One of `to`, `cc`, or `bcc` is required.", "items": { "type": "string" } }, "bcc": { "type": "array", "description": "List of the recipient handles who will receive a blind copy of this message. One of `to`, `cc`, or `bcc` is required.", "items": { "type": "string" } }, "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", "description": "List of tag IDs to add to the conversation", "items": { "type": "string" } }, "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) or read more about [Attachments](https://dev.frontapp.com/docs/attachments-1). Max 25 MB.", "type": "array", "items": { "type": "string", "format": "binary" } }, "signature_id": { "type": "string", "description": "ID of the signature to attach to this draft. Only supported for email channels; using this on other channel types returns a 403 forbidden error. 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. Only applies to email channels and is ignored if signature_id is included or if author_id is omitted. Default false." } } }, "OutboundReplyMessage": { "required": [ "body" ], "properties": { "to": { "type": "array", "description": "List of the recipient handles who will receive this message", "items": { "type": "string" } }, "cc": { "type": "array", "description": "List of the recipient handles who will receive a copy of this message", "items": { "type": "string" } }, "bcc": { "type": "array", "description": "List of the recipient handles who will receive a copy of this message", "items": { "type": "string" } }, "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" }, "quote_body": { "type": "string", "description": "Body for the quote that the message is referencing. Only available on email channels." }, "options": { "type": "object", "properties": { "tag_ids": { "type": "array", "description": "List of tag IDs to add to the conversation", "items": { "type": "string" } }, "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) or read more about [Attachments](https://dev.frontapp.com/docs/attachments-1). Max 25 MB.", "type": "array", "items": { "type": "string", "format": "binary" } }, "signature_id": { "type": "string", "description": "ID of the signature to attach to this draft. Only supported for email channels; using this on other channel types returns a 403 forbidden error. 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. Only applies to email channels and is ignored if signature_id is included or if author_id is omitted. Default false;" } } }, "RecipientResponse": { "type": "object", "required": [ "_links", "name", "handle", "role" ], "properties": { "_links": { "type": "object", "properties": { "related": { "type": "object", "properties": { "contact": { "type": "string", "nullable": true, "description": "Link to recipient contact", "example": "https://yourCompany.api.frontapp.com/contacts/crd_2njtoem" } } } } }, "name": { "type": "string", "nullable": true, "description": "Name of the recipient.", "example": "Phyllis Lapin-Vance" }, "handle": { "type": "string", "description": "Handle of the contact. Can be any string used to uniquely identify the contact", "example": "purpleboss@limitlesspaper.com" }, "role": { "type": "string", "description": "Role of the recipient", "enum": [ "from", "to", "cc", "bcc", "reply-to" ], "example": "cc" } } }, "Reminder": { "type": "object", "required": [ "_links" ], "properties": { "_links": { "type": "object", "properties": { "related": { "type": "object", "properties": { "owner": { "type": "string", "description": "Link to conversation owner", "example": "https://yourCompany.api.frontapp.com/teammates/tea_6r55a" } } } } }, "created_at": { "type": "number", "description": "Timestamp at which the conversation reminder has been created", "example": 1701806790.536 }, "scheduled_at": { "type": "number", "description": "Timestamp that the conversation reminder has been scheduled for", "example": 1701874800 }, "updated_at": { "type": "number", "description": "Timestamp at which the conversation reminder has been updated", "example": 1701806790.536 } } }, "RemoveContactsFromList": { "required": [ "contact_ids" ], "properties": { "contact_ids": { "type": "array", "description": "List of IDs of the contacts to remove from the requested contact list. Alternatively, you can supply the contact source and handle as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "maxItems": 50, "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "ReplyDraft": { "required": [ "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. Alternatively, you can supply the channel address as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1)." } } } ] }, "ResourceID": { "type": "string" }, "RoleResponse": { "type": "object", "required": [ "_links", "id", "name" ], "properties": { "_links": { "type": "object", "properties": { "related": { "type": "object", "properties": { "owner": { "type": "string", "description": "Link to role owner", "example": "tea_5xs26" } } } } }, "id": { "type": "string", "description": "Unique identifier of the role" }, "name": { "type": "string", "description": "Name of the role", "example": "from" } } }, "RuleResponse": { "type": "object", "required": [ "_links", "id", "name", "actions", "is_private" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/rules/rul_58xhq" }, "related": { "type": "object", "properties": { "owner": { "type": "string", "description": "Link to rule owner", "example": null, "nullable": true } } } } }, "id": { "type": "string", "description": "Unique identifier of the rule", "example": "rul_58xhq" }, "name": { "type": "string", "description": "Name of the rule", "example": "Scranton new account workflow" }, "actions": { "type": "array", "description": "List of the rule's actions description", "items": { "type": "string", "example": [ "Assign to Pam", "Unassign from Michael", "Tag with Scranton is the Best Branch", "Tag with Michael is the Best Boss" ] } }, "is_private": { "type": "boolean", "description": "Whether or not the rule is individual", "example": false } } }, "SeenReceiptResponse": { "type": "object", "required": [ "_links", "first_seen_at", "seen_by" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to self", "example": "https://yourCompany.api.frontapp.com/messages/msg_1p4lvjym/seen" }, "related": { "type": "object", "properties": { "message": { "type": "string", "description": "Link to message associated with the seen record", "example": "https://yourCompany.api.frontapp.com/messages/msg_1p4lvjym" } } } } }, "first_seen_at": { "type": "string", "description": "Timestamp when message was seen", "example": 1701298738269 }, "seen_by": { "$ref": "#/components/schemas/ContactHandle", "nullable": true } } }, "SharedViewResponse": { "type": "object", "required": [ "_links", "id", "name", "highlight", "inbox_ids", "tag_ids", "not_tag_ids", "no_tags", "assignee_ids", "not_assignee_ids" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/views/lns_abc123" }, "related": { "type": "object", "properties": { "owner": { "type": "string", "nullable": true, "description": "Link to the team that owns the view", "example": "https://yourCompany.api.frontapp.com/teams/tim_xyz" } } } } }, "id": { "type": "string", "description": "Unique identifier of the shared view", "example": "lns_abc123" }, "name": { "type": "string", "description": "Name of the shared view", "example": "High Priority Support" }, "highlight": { "type": "string", "nullable": true, "description": "Color highlight for the view", "example": "pink" }, "inbox_ids": { "type": "array", "items": { "type": "string" }, "description": "List of inbox IDs included in the view" }, "tag_ids": { "type": "array", "items": { "type": "string" }, "description": "List of tag IDs to filter by" }, "not_tag_ids": { "type": "array", "items": { "type": "string" }, "description": "List of tag IDs to exclude" }, "no_tags": { "type": "boolean", "description": "Whether to filter for conversations without tags" }, "assignee_ids": { "type": "array", "items": { "type": "string" }, "description": "List of assignee IDs to filter by" }, "not_assignee_ids": { "type": "array", "items": { "type": "string" }, "description": "List of assignee IDs to exclude" } } }, "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" } } }, "ShiftResponse": { "type": "object", "required": [ "_links", "id", "name", "color", "timezone", "times" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/shifts/shf_1bri" }, "related": { "type": "object", "properties": { "teammates": { "type": "string", "description": "Link to shift teammates", "example": "https://yourCompany.api.frontapp.com/shifts/shf_1bri/teammates" }, "owner": { "type": "string", "description": "Link to shift owner", "example": "https://yourCompany.api.frontapp.com/teams/tim_4kxji" } } } } }, "id": { "type": "string", "description": "Unique identifier of the shift", "example": "shf_1bri" }, "name": { "type": "string", "description": "Name of the shift", "example": "Scranton Business Park shifts" }, "color": { "type": "string", "enum": [ "black", "grey", "pink", "purple", "blue", "teal", "green", "yellow", "orange", "red" ], "description": "Color of the shift", "example": "green" }, "timezone": { "type": "string", "description": "A timezone name as defined in the IANA tz database", "example": "America/New_York" }, "times": { "description": "The shift intervals per day of the week", "$ref": "#/components/schemas/ShiftIntervals" }, "created_at": { "type": "number", "description": "The timestamp when the shift was created.", "example": 1606943265.298 }, "updated_at": { "type": "number", "description": "The timestamp when the shift was updated.", "example": 1701878404.43 } } }, "SignatureResponse": { "type": "object", "required": [ "_links", "id", "name", "body", "sender_info", "is_private", "is_visible_for_all_teammate_channels", "is_default", "channel_ids" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/signatures/sig_6rrv2" }, "related": { "type": "object", "properties": { "owner": { "type": "string", "description": "Link to signature's owner (either a team or teammate)", "example": "https://yourCompany.api.frontapp.com/teams/tim_k30" } } } } }, "id": { "type": "string", "description": "Unique identifier of the signature", "example": "sig_6rrv2" }, "name": { "type": "string", "nullable": true, "description": "Name of the signature", "example": "Finer Things Club signature" }, "body": { "type": "string", "description": "Body of the signature", "example": "

{{user.name}}
No paper, no plastic, and no work talk allowed
" }, "sender_info": { "type": "string", "nullable": true, "description": "Sender info of the signature", "example": { "[object Object]": null } }, "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 }, "is_private": { "type": "boolean", "description": "Whether the signature is private to the teammate.", "example": true }, "channel_ids": { "type": "array", "nullable": true, "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.", "example": null } } } }, "StatusResponse": { "type": "object", "description": "A ticket status of a conversation.", "required": [ "_links", "id", "name", "category", "description" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to ticket status", "example": "https://yourCompany.api.frontapp.com/company/statuses/sts_5z" } } }, "id": { "type": "string", "description": "Unique identifier of the ticket status", "example": "sts_5z" }, "name": { "type": "string", "description": "The name of the ticket status. Default statuses match the category name. Custom statuses have a unique name.", "example": "Open" }, "category": { "type": "string", "nullable": true, "description": "Category of the ticket status.", "enum": [ "open", "waiting", "resolved" ], "example": "open" }, "description": { "type": "string", "nullable": true, "description": "Description of the ticket status", "example": "New or currently being worked on" }, "created_at": { "type": "number", "description": "Timestamp of ticket status creation", "example": 1682538996.583 }, "updated_at": { "type": "number", "description": "Timestamp of the last ticket status update", "example": 1699575875.186 } } }, "TagIds": { "type": "object", "required": [ "tag_ids" ], "properties": { "tag_ids": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "TagResponse": { "type": "object", "description": "A tag is a label that can be used to classify conversations.", "required": [ "_links", "id", "name", "description", "highlight", "is_private", "is_visible_in_conversation_lists" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/tags/tag_2oxhvy" }, "related": { "type": "object", "properties": { "conversations": { "type": "string", "description": "Link to tag conversations", "example": "https://yourCompany.api.frontapp.com/tags/tag_2oxhvy/conversations" }, "owner": { "type": "string", "nullable": true, "description": "Link to tag owner", "example": "https://yourCompany.api.frontapp.com/teammates/tea_6jydq" }, "parent_tag": { "type": "string", "nullable": true, "description": "Link to parent tag", "example": "https://yourCompany.api.frontapp.com/tags/tag_3h07ym" }, "children": { "type": "string", "nullable": true, "description": "Link to tag children", "example": "https://yourCompany.api.frontapp.com/tags/tag_2oxhvy/children" } } } } }, "id": { "type": "string", "description": "Unique identifier of the tag", "example": "tag_2oxhvy" }, "name": { "type": "string", "description": "Name of the tag", "example": "Warehouse task" }, "description": { "type": "string", "nullable": true, "description": "Description of the tag", "example": "Sitting on your biscuit, never having to risk it" }, "highlight": { "type": "string", "nullable": true, "description": "Highlight color or emoji of the tag. Null if the tag does not have a highlight.", "example": null }, "is_private": { "type": "boolean", "description": "Whether or not the tag is individual", "example": false }, "is_visible_in_conversation_lists": { "type": "boolean", "description": "Whether the tag is visible in conversation lists.", "example": true }, "created_at": { "type": "number", "description": "Timestamp of tag create creation", "example": 1682538996.583 }, "updated_at": { "type": "number", "description": "Timestamp of the last tag update", "example": 1699575875.186 } } }, "TeamIds": { "type": "object", "required": [ "team_ids" ], "properties": { "team_ids": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "TeamPreviewResponse": { "type": "object", "required": [ "_links", "id", "name" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/teams/tim_aqsa" } } }, "id": { "type": "string", "description": "Unique identifier of the team", "example": "tim_aqsa" }, "name": { "type": "string", "description": "Name of the team", "example": "Stanley's crossword puzzle team" } } }, "TeamResponse": { "type": "object", "required": [ "_links", "id", "name", "inboxes", "members" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/teams/tim_aqsa" } } }, "id": { "type": "string", "description": "Unique identifier of the team", "example": "tim_aqsa" }, "name": { "type": "string", "description": "Name of the team", "example": "Stanley's crossword puzzle 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" } } } }, "TeammateGroupResponse": { "type": "object", "description": "A teammate group is a group of teammates in Front.", "required": [ "_links", "id", "name", "description", "is_managed_by_scim", "permissions" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/teammate_groups/cir_123" }, "related": { "type": "object", "properties": { "teammates": { "type": "string", "description": "Link to list of teammate members", "example": "https://yourCompany.api.frontapp.com/teammate_groups/cir_123/teammates" }, "teams": { "type": "string", "description": "Link to list of associated teams", "example": "https://yourCompany.api.frontapp.com/teammate_groups/cir_123/teams" }, "inboxes": { "type": "string", "description": "Link to list of inboxes that teammate members can access", "example": "https://yourCompany.api.frontapp.com/teammate_groups/cir_123/inboxes" } } } } }, "id": { "type": "string", "description": "Unique identifier of the teammate group", "example": "cir_123" }, "name": { "type": "string", "description": "The name of the teammate group", "example": "Sales team" }, "description": { "type": "string", "nullable": true, "description": "Description of the teammate group", "example": "Best sales team ever" }, "is_managed_by_scim": { "type": "boolean", "description": "Is teammate group managed by SCIM or by Front", "example": false }, "permissions": { "type": "object", "description": "Permissions for the teammate group", "example": { "contacts": { "access": "contact_lists", "contact_list_ids": [ "grp_1", "grp_2" ] } }, "properties": { "contacts": { "type": "object", "description": "Permissions for teammate group access to contact lists", "properties": { "access": { "type": "string", "description": "Level of access for the teammate group to contact lists. Must be one of 'all', 'contact_lists', or 'none'." }, "contact_list_ids": { "type": "array", "description": "List of contact lists the teammate group is allowed to access. May only be specified if 'access' is set to 'contact_lists'.", "example": [ "grp_123", "grp_456" ], "items": { "type": "string" } } } } } } } }, "TeammateIds": { "type": "object", "required": [ "teammate_ids" ], "properties": { "teammate_ids": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "TeammateResponse": { "type": "object", "description": "A teammate is a user in Front.", "required": [ "_links", "id", "email", "username", "first_name", "last_name", "license_type", "is_admin", "is_available", "is_blocked", "type", "custom_fields" ], "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/teammates/tea_6r55a" }, "related": { "type": "object", "properties": { "inboxes": { "type": "string", "description": "Link to teammate's inboxes", "example": "https://yourCompany.api.frontapp.com/teammates/tea_6r55a/inboxes" }, "conversations": { "type": "string", "description": "Link to teammate's conversations", "example": "https://yourCompany.api.frontapp.com/teammates/tea_6r55a/conversations" }, "botSource": { "type": "string", "description": "Link to the source resource of the bot (e.g. rule)", "example": "https://yourCompany.api.frontapp.com/rules/rul_6r55a" } } } } }, "id": { "type": "string", "description": "Unique identifier of the teammate", "example": "tea_6r55a" }, "email": { "type": "string", "description": "Email address of the teammate", "example": "michael.scott@dundermifflin.com" }, "username": { "type": "string", "description": "Username of the teammate (used for \"@\" mentions)", "example": "PrisonMike" }, "first_name": { "type": "string", "description": "First name of the teammate", "example": "Michael" }, "last_name": { "type": "string", "description": "Last name of the teammate", "example": "Scott" }, "is_admin": { "type": "boolean", "description": "Whether or not the teammate is an admin in your company", "example": true }, "is_available": { "type": "boolean", "description": "Whether or not the teammate is available", "example": false }, "is_blocked": { "type": "boolean", "description": "Whether or not the teammate account has been blocked", "example": false }, "type": { "type": "string", "description": "Type of the teammate, normal teammates are denoted as \"user\", while visitors are denoted as \"visitor\".\nBot users are denoted by their parent resource type.\nThe following bot types are available:\n * rule: acting on behalf of a Rule, author of comments and drafts\n * macro: acting on behalf of a Macro, author of comments and drafts\n * API: acting on behalf of OAuth clients\n * integration: acting on behalf of an Integration\n * CSAT: used for authoring CSAT response comments\n", "enum": [ "user", "visitor", "rule", "macro", "API", "integration", "CSAT" ] }, "custom_fields": { "description": "Custom fields for this teammate", "$ref": "#/components/schemas/CustomFieldParameter" } } }, "UpdateChannel": { "properties": { "name": { "type": "string", "description": "Name of the channel", "example": "Your channel name" }, "inbox_id": { "type": "string", "description": "ID of the inbox to move this channel to. Will also move corresponding conversations." }, "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." }, "webhook_url": { "type": "string", "description": "The webhook URL outbound messages should be sent to. Only allowed for \"custom\" type channels." } } } } }, "UpdateComment": { "properties": { "body": { "type": "string", "description": "Content of the comment. Can include markdown formatting. Can only be updated if the comment was created using the same token." }, "is_pinned": { "type": "boolean", "description": "Whether or not the comment is pinned in its conversation." } } }, "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" ] }, "status_id": { "type": "string", "description": "Unique identifier of the status to set the conversation to. Only one of status and status_id should be provided. Ticketing must be enabled for the company to use this field.", "example": "sts_123" }, "tag_ids": { "type": "array", "description": "List of all the tag IDs replacing the old conversation tags", "items": { "$ref": "#/components/schemas/ResourceID" } }, "custom_fields": { "description": "Custom fields for this conversation. If you want to keep all custom fields the same when updating this resource, do not include any custom fields in the update. If you want to update custom fields, make sure to include all custom fields, not just the fields you want to add or update. If you send only the custom fields you want to update, the other custom fields will be erased. You can retrieve the existing custom fields before making the update to note the current fields. Send as an object of key:value pairs where the key is the custom field name and the value is the custom field value.", "$ref": "#/components/schemas/CustomFieldParameter" } } }, "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. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1)." }, "scheduled_at": { "type": "number", "description": "Unix timestamp in seconds to schedule the reminder for. Must be in the future and within 50 years. Set to null to cancel." }, "status_id": { "type": "string", "description": "ID of the waiting status to which the conversation will be set. Ticketing must be enabled for the company to use this field. If no status is supplied and ticket is enabled, the default waiting status will be used." } } }, "UpdateLink": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the link" } } }, "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. You can supply HTML with inline CSS to structure and style your template.", "example": "

Sorry, I'm OOO until October 25th.

\n" }, "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", "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.", "items": { "type": "string" } }, "attachments": { "description": "Binary data of attached files. Must use `Content-Type: multipart/form-data` if specified. See [example](https://dev.frontapp.com/docs/attachments-1). Max 25 MB. Specify an empty array to delete all attachments from a message template. If unspecified, it will retain previous value.", "type": "array", "items": { "type": "string", "format": "binary" } } } }, "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." } } }, "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. Alternatively, you can supply emails as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "items": { "$ref": "#/components/schemas/ResourceID" } } } }, "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", "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. Alternatively, you can specify channels using a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "items": { "type": "string" } } } }, "UpdateTag": { "properties": { "name": { "type": "string", "description": "Name of the tag", "maxLength": 64 }, "description": { "type": "string", "description": "Description 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" }, "custom_fields": { "description": "Custom fields for this teammate. If you want to keep all custom fields the same when updating this resource, do not include any custom fields in the update. If you want to update custom fields, make sure to include all custom fields, not just the fields you want to add or update. If you send only the custom fields you want to update, the other custom fields will be erased. You can retrieve the existing custom fields before making the update to note the current fields.", "$ref": "#/components/schemas/CustomFieldParameter" } } }, "UpdateTeammateGroup": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the teammate group" }, "description": { "type": "string", "description": "Description of the teammate group" }, "permissions": { "type": "object", "description": "Permissions for the teammate group", "properties": { "contacts": { "type": "object", "description": "Permissions for accessing contact lists. This only applies if shared contacts permissions are enabled.", "required": [ "access" ], "properties": { "access": { "type": "string", "description": "One of 'all', 'contact_groups', 'contact_lists', or 'none'." }, "contact_group_ids": { "type": "array", "deprecated": true, "description": "List of contact group ids. Can only be specified if access is set to 'contact_groups'. ⚠️ Deprecated. Use access 'contact_lists' and 'contact_list_ids' instead.", "items": { "type": "string" } }, "contact_list_ids": { "type": "array", "description": "List of contact list ids. Can only be specified if access is set to 'contact_lists'.", "items": { "type": "string" } } } } } } } }, "UpdateView": { "properties": { "name": { "type": "string", "description": "Name of the view" }, "inbox_ids": { "type": "array", "description": "List of inbox IDs to filter by", "items": { "$ref": "#/components/schemas/ResourceID" } }, "tag_ids": { "type": "array", "description": "List of tag IDs to filter by", "items": { "$ref": "#/components/schemas/ResourceID" } }, "not_tag_ids": { "type": "array", "description": "List of tag IDs to exclude", "items": { "$ref": "#/components/schemas/ResourceID" } }, "no_tags": { "type": "boolean", "description": "Whether to filter for conversations without tags" }, "assignee_ids": { "type": "array", "description": "List of assignee IDs to filter by", "items": { "$ref": "#/components/schemas/ResourceID" } }, "not_assignee_ids": { "type": "array", "description": "List of assignee IDs to exclude", "items": { "$ref": "#/components/schemas/ResourceID" } }, "highlight": { "type": "string", "description": "Color highlight for the view" } } } }, "securitySchemes": { "http": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT" } }, "parameters": { "activityQuery": { "name": "q", "in": "query", "description": "[Search query object](https://dev.frontapp.com/docs/query-object-q) with optional properties `before`, `after`, `types`, or `inboxes`. `before` and `after` should be a timestamp in seconds with up to 3 decimal places. `types` should be a list of [event types](https://dev.frontapp.com/reference/events). `inboxes` should be a list of inbox IDs.", "schema": { "type": "string" } }, "cardQuery": { "name": "q", "in": "query", "description": "[Search query object](https://dev.frontapp.com/docs/query-object-q) 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](https://dev.frontapp.com/docs/query-object-q) with a property `statuses`, whose value should be a list of conversation statuses (`assigned`, `unassigned`, `archived`, or `trashed`). If ticketing is enabled, this endpoint accepts either `status_categories` (`open`, `waiting`, `resolved`) or `status_ids` as an alternative.", "schema": { "type": "string" } }, "topicQuery": { "name": "q", "in": "query", "description": "[Search query object](https://dev.frontapp.com/docs/query-object-q) with a property `types`, whose value should be a list of link types. Links created via the API have type `web` and links created by application objects have type `app_`, matching the app UID where the object is configured. There are also types `jira`, `asana`, `monday`, `trello`, and `github`, which correspond to the integrations built by Front.", "schema": { "type": "string" } }, "pageToken": { "name": "page_token", "in": "query", "description": "Token to use to request the [next page](https://dev.frontapp.com/docs/pagination)", "schema": { "type": "string", "example": "https://yourCompany.api.frontapp.com/endpoint?limit=25&page_token=92f32bcd7625333caf4e0f8fc26d920c812f" } }, "limit": { "name": "limit", "in": "query", "description": "Max number of results per [page](https://dev.frontapp.com/docs/pagination)", "schema": { "type": "integer", "maximum": 100, "example": 25 } }, "sortByAccounts": { "name": "sort_by", "in": "query", "description": "Field used to sort the accounts. Either `created_at` or `updated_at`.", "schema": { "type": "string" } }, "sortByActivities": { "name": "sort_by", "in": "query", "description": "Field used to sort the events. Only supports `created_at`.", "schema": { "type": "string" } }, "sortByCards": { "name": "sort_by", "in": "query", "description": "Field used to sort the contacts. Either `created_at` or `updated_at`.", "schema": { "type": "string" } }, "sortByCannedAnswers": { "name": "sort_by", "in": "query", "description": "Field used to sort the message templates. Either `created_at`, `updated_at`, or `sort_order`.", "schema": { "type": "string" } }, "sortByCannedAnswerFolders": { "name": "sort_by", "in": "query", "description": "Field used to sort the message template folders. Either `created_at` or `updated_at`.", "schema": { "type": "string" } }, "sortByConversations": { "name": "sort_by", "in": "query", "description": "Field used to sort the conversations. Only supports `date`.", "schema": { "type": "string" } }, "sortByConversationMessages": { "name": "sort_by", "in": "query", "description": "Field used to sort the messages. Only supports `created_at`.", "schema": { "type": "string" } }, "sortByLinks": { "name": "sort_by", "in": "query", "description": "Field used to sort the links. Only supports `id`.", "schema": { "type": "string" } }, "sortByTags": { "name": "sort_by", "in": "query", "description": "Field used to sort the tags. Only supports `id`.", "schema": { "type": "string" } }, "sortOrder": { "name": "sort_order", "in": "query", "description": "Order by which results should be sorted", "schema": { "type": "string", "enum": [ "asc", "desc" ], "example": "asc" } } }, "responses": { "listOfCannedAnswers": { "description": "Array of message templates", "content": { "application/json": { "schema": { "type": "object", "properties": { "_pagination": { "type": "object", "properties": { "next": { "type": "string", "nullable": true, "description": "Link to next [page of results](https://dev.frontapp.com/docs/pagination)", "example": "https://yourCompany.api.frontapp.com/message_templates?page_token=9fa92a7f385fd7be43f7153055b30e6d" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/message_templates" } } }, "_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", "nullable": true, "description": "Link to next [page of results](https://dev.frontapp.com/docs/pagination)", "example": "https://yourCompany.api.frontapp.com/message_template_folders?page_token=9fa92a7f385fd7be43f7153055b30e6d" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/message_template_folders" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/MessageTemplateFolderResponse" } } } } } } }, "listOfSignatures": { "description": "Array of signatures", "content": { "application/json": { "schema": { "type": "object", "properties": { "_pagination": { "type": "object", "properties": { "next": { "type": "string", "nullable": true, "description": "Link to next [page of results](https://dev.frontapp.com/docs/pagination)", "example": "https://yourCompany.api.frontapp.com/signatures?page_token=9fa92a7f385fd7be43f7153055b30e6d" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/signatures" } } }, "_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", "example": "https://yourCompany.api.frontapp.com/inboxes" } } }, "_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", "example": "https://yourCompany.api.frontapp.com/conversations/cnv_y4xb93i/comments" } } }, "_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", "example": "https://yourCompany.api.frontapp.com/teams" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/TeamPreviewResponse" } } } } } } }, "listOfTeammates": { "description": "Array of teammates", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/teammates" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/TeammateResponse" } } } } } } }, "listOfTeammateGroups": { "description": "Array of teammate groups", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/teammate_groups" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/TeammateGroupResponse" } } } } } } }, "listOfShifts": { "description": "Array of Shifts", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/shifts" } } }, "_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", "nullable": true, "description": "Link to next [page of results](https://dev.frontapp.com/docs/pagination)", "example": "https://yourCompany.api.frontapp.com/contacts?page_token=e0b5767cb0f1100743d46f67fcd765caac2ed" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/contacts" } } }, "_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", "nullable": true, "description": "Link to next [page of results](https://dev.frontapp.com/docs/pagination)", "example": "https://yourCompany.api.frontapp.com/accounts?page_token=abae846b73ddd80f67fff73c491c41b8b0e74972f3a1079c3c8800416e06cf46" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/accounts" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/AccountResponse" } } } } } } }, "listOfContactLists": { "description": "Array of contact lists", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/contact_lists" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/ContactListResponses" } } } } } } }, "listOfContactNotes": { "description": "Array of contact notes", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/contacts/crd_2okzojy/notes" } } }, "_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", "nullable": true, "description": "Link to next [page of results](https://dev.frontapp.com/docs/pagination)", "example": "https://yourCompany.api.frontapp.com/conversations/cnv_y4xb93i/messages?page_token=klsljs8023j09suidfjlsjiei00043lllwww998303dkef0g" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/conversations/cnv_y4xb93i/messages" } } }, "_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", "nullable": true, "description": "Link to next [page of results](https://dev.frontapp.com/docs/pagination)", "example": "https://yourCompany.api.frontapp.com/messages/msg_1p4lvjym/seen?page_token=jk7893fgeet644abnn39" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/messages/msg_1p4lvjym/seen" } } }, "_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", "nullable": true, "description": "Link to next [page of results](https://dev.frontapp.com/docs/pagination)", "example": "https://yourCompany.api.frontapp.com/conversations?page_token=ce787da6f075740cf187d926f5e9f612bc7875763a8dd37d5" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/conversations" } } }, "_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", "nullable": true, "description": "Link to next [page of results](https://dev.frontapp.com/docs/pagination)", "example": "https://yourCompany.api.frontapp.com/conversations/search/:query:?page_token=d4d5f065c89f1284ea262fa6b19456239b0" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/conversations/search/:query:" } } }, "_total": { "type": "integer", "description": "Total number of matching conversations", "example": 212 }, "_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", "nullable": true, "description": "Link to next [page of results](https://dev.frontapp.com/docs/pagination)", "example": "https://yourCompany.api.frontapp.com/events?page_token=2d018a5809eb90d349bc08c52cb1f4987bef" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/events" } } }, "_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", "example": "https://yourCompany.api.frontapp.com/rules" } } }, "_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", "example": "https://yourCompany.api.frontapp.com/tags" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/TagResponse" } } } } } } }, "listOfStatuses": { "description": "Array of ticket statuses", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/company/statuses" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/StatusResponse" } } } } } } }, "listOfLinks": { "description": "Array of Links", "content": { "application/json": { "schema": { "type": "object", "properties": { "_pagination": { "type": "object", "properties": { "next": { "type": "string", "nullable": true, "description": "Link to next [page of results](https://dev.frontapp.com/docs/pagination)", "example": "https://yourCompany.api.frontapp.com/links?page_token=4fcb1f8ca11971c5da59c21ea686fd50" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/links" } } }, "_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", "example": "https://yourCompany.api.frontapp.com/channels" } } }, "_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", "example": "https://yourCompany.api.frontapp.com/custom_fields" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/CustomFieldResponse" } } } } } } }, "listOfKnowledgeBases": { "description": "Array of knowledge bases", "content": { "application/json": { "schema": { "type": "object", "properties": { "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/knowledge_bases" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/KnowledgeBaseSlimResponse" } } } } } } }, "listOfKnowledgeBaseCategories": { "description": "Array of knowledge base categories", "content": { "application/json": { "schema": { "type": "object", "properties": { "_pagination": { "type": "object", "properties": { "next": { "type": "string", "nullable": true, "description": "Link to next [page of results](https://dev.frontapp.com/docs/pagination)", "example": "https://yourCompany.api.frontapp.com/knowledge_bases/knb_1/categories?page_token=134287aba8eaa55cf366400c63300a75bab0c" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/knowledge_bases/knb_1/categories" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/KnowledgeBaseCategorySlimResponse" } } } } } } }, "listOfKnowledgeBaseArticles": { "description": "Array of knowledge base articles", "content": { "application/json": { "schema": { "type": "object", "properties": { "_pagination": { "type": "object", "properties": { "next": { "type": "string", "nullable": true, "description": "Link to next [page of results](https://dev.frontapp.com/docs/pagination)", "example": "https://yourCompany.api.frontapp.com/knowledge_bases/knb_1/articles?page_token=134287aba8eaa55cf366400c63300a75bab0c" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/knowledge_bases/knb_1/articles" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/KnowledgeBaseArticleSlimResponse" } } } } } } }, "listOfViews": { "description": "Array of views", "content": { "application/json": { "schema": { "type": "object", "properties": { "_pagination": { "type": "object", "properties": { "next": { "type": "string", "nullable": true, "description": "Link to next [page of results](https://dev.frontapp.com/docs/pagination)", "example": "https://yourCompany.api.frontapp.com/views?page_token=ce787da6f075740cf187d926f5e9f612bc7875763a8dd37d5" } } }, "_links": { "type": "object", "properties": { "self": { "type": "string", "description": "Link to resource", "example": "https://yourCompany.api.frontapp.com/views" } } }, "_results": { "type": "array", "items": { "$ref": "#/components/schemas/SharedViewResponse" } } } } } } }, "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" } } } }, "status": { "description": "A ticket status", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StatusResponse" } } } }, "link": { "description": "A link", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkResponse" } } } }, "attachment": { "description": "The binary content of the attachment file", "content": { "*/*": { "schema": { "type": "string", "format": "binary" } } }, "headers": { "Content-Type": { "description": "The MIME type of the attachment file", "schema": { "type": "string", "example": "application/pdf" } }, "Content-Length": { "description": "The size of the attachment file in bytes", "schema": { "type": "string", "example": "1024" } } } }, "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" } } } }, "teammateGroup": { "description": "A teammate group", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeammateGroupResponse" } } } }, "event": { "description": "An event", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventResponse" } } } }, "knowledgeBase": { "description": "A knowledge base with content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KnowledgeBaseResponse" } } } }, "knowledgeBaseSlim": { "description": "A knowledge base", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KnowledgeBaseSlimResponse" } } } }, "knowledgeBaseCategory": { "description": "A knowledge base category with content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KnowledgeBaseCategoryResponse" } } } }, "knowledgeBaseCategorySlim": { "description": "A knowledge base category", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KnowledgeBaseCategorySlimResponse" } } } }, "knowledgeBaseArticle": { "description": "A knowledge base article with content", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KnowledgeBaseArticleResponse" } } } }, "knowledgeBaseArticleSlim": { "description": "A knowledge base article", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KnowledgeBaseArticleSlimResponse" } } } }, "view": { "description": "A view", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SharedViewResponse" } } } }, "acceptedMessage": { "description": "An accepted response acknowledging your request to create a message", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "string", "default": "accepted", "description": "The status of the incoming message. Should return 'accepted' if successful.", "example": "accepted" }, "message_uid": { "type": "string", "description": "Message unique identifier. Use the message UID as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1) to check whether the [message is created successfully](https://dev.frontapp.com/reference/messages#creating-a-new-message).", "example": "1eab543f84a0785f7b6b8967cck18f4d" } } } } } }, "acceptedCannedAnswerFolderDeletion": { "description": "A message template folder accepted for deletion", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "string", "default": "accepted", "example": "accepted" }, "message_template_folder_id": { "type": "string", "description": "id of the message template to be deleted", "example": "rsf_g2" } } } } } }, "accepted": { "description": "Request accepted", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "string", "default": "accepted", "example": "accepted" } } } } } } } }, "paths": { "/accounts": { "get": { "summary": "List Accounts", "operationId": "list-accounts", "description": "List the accounts of the company.\n\nRequired scope: `accounts:read`", "tags": [ "Accounts" ], "parameters": [ { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/sortByAccounts" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfAccounts" } }, "x-required-scopes": [ "accounts:read" ] }, "post": { "summary": "Create account", "operationId": "create-account", "description": "Create a new account.\n\nRequired scope: `accounts:write`", "tags": [ "Accounts" ], "requestBody": { "content": { "application/json": { "schema": { "required": [ "name" ], "$ref": "#/components/schemas/Account" } } } }, "responses": { "201": { "$ref": "#/components/responses/account" } }, "x-required-scopes": [ "accounts:write" ] } }, "/accounts/custom_fields": { "get": { "summary": "List Account's custom fields", "operationId": "list-account-custom-fields", "description": "Lists the custom fields that can be attached to an Account.\n\nRequired scope: `custom_fields:read`", "tags": [ "Custom Fields" ], "responses": { "200": { "$ref": "#/components/responses/listOfCustomFields" } }, "x-required-scopes": [ "custom_fields:read" ] } }, "/accounts/{account_id}": { "get": { "summary": "Fetch an account", "operationId": "fetch-an-account", "description": "Fetches an account\n\nRequired scope: `accounts:read`", "tags": [ "Accounts" ], "parameters": [ { "in": "path", "name": "account_id", "required": true, "description": "The Account ID. Alternatively, you can supply the account domain or external ID as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "acc_123" } } ], "responses": { "200": { "$ref": "#/components/responses/account" } }, "x-required-scopes": [ "accounts:read" ] }, "patch": { "summary": "Update account", "operationId": "update-account", "description": "Updates an account.\n\nRequired scope: `accounts:write`", "tags": [ "Accounts" ], "parameters": [ { "in": "path", "name": "account_id", "required": true, "description": "The Account ID. Alternatively, you can supply the account domain or external ID as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "acc_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountPatch" } } } }, "responses": { "200": { "$ref": "#/components/responses/account" } }, "x-required-scopes": [ "accounts:write" ] }, "delete": { "summary": "Delete an account", "operationId": "delete-an-account", "description": "Deletes an account\n\nRequired scope: `accounts:delete`", "tags": [ "Accounts" ], "parameters": [ { "in": "path", "name": "account_id", "required": true, "description": "The Account ID. Alternatively, you can supply the account domain or external ID as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "acc_123" } } ], "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "accounts:delete" ] } }, "/accounts/{account_id}/contacts": { "get": { "summary": "List account contacts", "operationId": "list-account-contacts", "description": "Lists the contacts associated with an Account\n\nRequired scope: `contacts:read`", "tags": [ "Accounts" ], "parameters": [ { "in": "path", "name": "account_id", "required": true, "description": "The Account ID. Alternatively, you can supply the account domain or external ID as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "acc_123" } }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/sortByCards" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfContacts" } }, "x-required-scopes": [ "contacts:read" ] }, "post": { "summary": "Add contact to Account", "operationId": "add-contact-to-account", "description": "Adds a list of contacts to an Account\n\nRequired scope: `accounts:write`", "tags": [ "Accounts" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactIds" } } } }, "parameters": [ { "in": "path", "name": "account_id", "required": true, "description": "The Account ID. Alternatively, you can supply the account domain or external ID as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "acc_123" } } ], "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "accounts:write" ] }, "delete": { "summary": "Remove contact from Account", "operationId": "remove-contact-from-account", "description": "Removes a list of contacts from an Account\n\nRequired scope: `accounts:write`", "tags": [ "Accounts" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactIds" } } } }, "parameters": [ { "in": "path", "name": "account_id", "required": true, "description": "The Account ID. Alternatively, you can supply the account domain or external ID as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "acc_123" } } ], "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "accounts:write" ] } }, "/analytics/exports": { "post": { "summary": "Create a new analytics export", "operationId": "create-analytics-export", "description": "Create a new analytics export of messages or events (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 export status & result. Refer to the [Analytics](https://dev.frontapp.com/reference/analytics) topic for details about specific metrics.\n\n\nRequired scope: `analytics:read`", "tags": [ "Analytics" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnalyticsExportRequest" } } } }, "responses": { "201": { "description": "An analytics export.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnalyticsExportResponse" } } } } }, "x-required-scopes": [ "analytics:read" ] } }, "/analytics/exports/{export_id}": { "get": { "summary": "Fetch an analytics export", "operationId": "get-analytics-export", "description": "Fetch an analytics exports. Refer to the [Analytics](https://dev.frontapp.com/reference/analytics) topic for details about specific metrics.\n\nRequired scope: `analytics:read`", "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/AnalyticsExportResponse" } } } } }, "x-required-scopes": [ "analytics:read" ] } }, "/analytics/reports": { "post": { "summary": "Create a new analytics report", "operationId": "create-analytics-report", "description": "Create a new analytics report for a set of metrics over a specific time span. Different filters (e.g. Inbox v Tag v Teammates) will be joined with AND logic, but the IDs within a filter will be joined with OR logic (e.g. Inbox A or Inbox B, Tag A or Tag B).\nThe report will be executed asynchronously. The response will include a link that can be used to retrieve the\nreport status & result. Refer to the [Analytics](https://dev.frontapp.com/reference/analytics) topic for details about specific metrics.\n\n\nRequired scope: `analytics:read`", "tags": [ "Analytics" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnalyticsReportRequest" } } } }, "responses": { "201": { "description": "An analytics report.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnalyticsReportResponse" } } } } }, "x-required-scopes": [ "analytics:read" ] } }, "/analytics/reports/{report_uid}": { "get": { "summary": "Fetch an analytics report", "operationId": "get-analytics-report", "description": "Fetch an analytics report. Refer to the [Analytics](https://dev.frontapp.com/reference/analytics) topic for details about specific metrics.\n\nRequired scope: `analytics:read`", "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/AnalyticsReportResponse" } } } } }, "x-required-scopes": [ "analytics:read" ] } }, "/applications/{application_uid}/events": { "post": { "summary": "Trigger application event", "operationId": "trigger-app-event", "description": "Triggers an event on behalf of an application. These events can trigger Front workflows, like rules.\nFor more information, see the [developer docs](https://dev.frontapp.com/docs/application-triggers#/).\n\n\nRequired scope: `feature:app_trigger`", "tags": [ "Applications" ], "parameters": [ { "in": "path", "name": "application_uid", "required": true, "description": "The application UID", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AppEvent" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "feature:app_trigger" ] } }, "/channels": { "get": { "summary": "List channels", "operationId": "list-channels", "description": "List the channels of the company.\n\nRequired scope: `channels:read`", "tags": [ "Channels" ], "responses": { "200": { "$ref": "#/components/responses/listOfChannels" } }, "x-required-scopes": [ "channels:read" ] } }, "/channels/{channel_id}": { "get": { "summary": "Get channel", "operationId": "get-channel", "description": "Fetch a channel.\n\nRequired scope: `channels:read`", "tags": [ "Channels" ], "parameters": [ { "in": "path", "name": "channel_id", "required": true, "description": "The Channel ID. Alternatively, you can supply the channel address as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "cha_123" } } ], "responses": { "200": { "$ref": "#/components/responses/channel" } }, "x-required-scopes": [ "channels:read" ] }, "patch": { "summary": "Update Channel", "operationId": "update-channel", "description": "Update a channel.\n\nRequired scope: `channels:write`", "tags": [ "Channels" ], "parameters": [ { "in": "path", "name": "channel_id", "required": true, "description": "The Channel ID. Alternatively, you can supply the channel address as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "cha_123" } } ], "requestBody": { "description": "Channel details", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateChannel" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "channels:write" ] } }, "/channels/{channel_id}/drafts": { "post": { "summary": "Create draft", "operationId": "create-draft", "description": "Create a draft message which is the first message of a new [conversation](https://dev.frontapp.com/reference/conversations).\n\nRequired scope: `drafts:write`", "tags": [ "Drafts" ], "parameters": [ { "in": "path", "name": "channel_id", "required": true, "description": "The channel ID. Alternatively, you can supply the channel address as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "cha_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateDraft" } } } }, "responses": { "200": { "$ref": "#/components/responses/message" } }, "x-required-scopes": [ "drafts:write" ] } }, "/channels/{channel_id}/incoming_messages": { "post": { "summary": "Receive custom messages", "operationId": "receive-custom-messages", "description": "Receive a custom message in Front. This endpoint is available for custom channels **ONLY**.\n\nRequired scope: `messages:write`", "tags": [ "Messages" ], "parameters": [ { "in": "path", "name": "channel_id", "required": true, "description": "The channel ID. Alternatively, you can supply the channel address as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "cha_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomMessage" } } } }, "responses": { "202": { "$ref": "#/components/responses/acceptedMessage" } }, "x-required-scopes": [ "messages:write" ] } }, "/channels/{channel_id}/messages": { "post": { "summary": "Create message", "operationId": "create-message", "description": "Send a new message from a channel. This is one of the ways to create a new [conversation](https://dev.frontapp.com/reference/conversations#creating-a-new-conversation). The new conversation will support both messages and comments (discussions).\n\nRequired scope: `messages:send`", "tags": [ "Messages" ], "parameters": [ { "in": "path", "name": "channel_id", "required": true, "description": "The sending channel ID. Alternatively, you can supply the sending channel address as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "cha_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OutboundMessage" } } } }, "responses": { "202": { "$ref": "#/components/responses/acceptedMessage" } }, "x-required-scopes": [ "messages:send" ] } }, "/channels/{channel_id}/validate": { "post": { "summary": "Validate channel", "operationId": "validate-channel", "description": "Asynchronously validate an SMTP channel (this endpoint is irrelevant to other channel types). When you create an SMTP channel via the API, [create a channel](https://dev.frontapp.com/reference/post_inboxes-inbox-id-channels) with type smtp and the send_as set to the needed email address. You then [configure the email provider](https://help.front.com/en/articles/2081), after which you use this endpoint to asynchronously validate the SMTP settings.\n\nRequired scope: `channels:write`", "tags": [ "Channels" ], "parameters": [ { "in": "path", "name": "channel_id", "required": true, "description": "The Channel ID. Alternatively, you can supply the channel address as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "cha_123" } } ], "responses": { "202": { "$ref": "#/components/responses/accepted" } }, "x-required-scopes": [ "channels:write" ] } }, "/comments/{comment_id}": { "get": { "summary": "Get comment", "operationId": "get-comment", "description": "Fetches a comment.\n\nRequired scope: `comments:read`", "tags": [ "Comments" ], "parameters": [ { "in": "path", "name": "comment_id", "required": true, "description": "The Comment ID", "schema": { "type": "string", "default": "com_123" } } ], "responses": { "200": { "$ref": "#/components/responses/comment" } }, "x-required-scopes": [ "comments:read" ] } }, "/comments/{comment_id}/": { "patch": { "summary": "Update comment", "operationId": "update-comment", "description": "Update a comment in a [conversation](https://dev.frontapp.com/reference/conversations).\n\nRequired scope: `comments:write`", "tags": [ "Comments" ], "parameters": [ { "in": "path", "name": "comment_id", "required": true, "description": "The Comment ID", "schema": { "type": "string", "default": "com_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateComment" } } } }, "responses": { "200": { "$ref": "#/components/responses/comment" } }, "x-required-scopes": [ "comments:write" ] } }, "/comments/{comment_id}/download/{attachment_link_id}": { "get": { "summary": "Download attachment for a comment", "operationId": "download-attachment-for-a-comment", "description": "Download an attachment file for a given comment ID\n\nRequired scope: `attachments:read`", "tags": [ "Attachments" ], "parameters": [ { "in": "path", "name": "comment_id", "required": true, "description": "The Comment ID", "schema": { "type": "string", "default": "com_1v3ef" } }, { "in": "path", "name": "attachment_link_id", "required": true, "description": "The Attachment ID", "schema": { "type": "string", "default": "fil_55c8c149" } } ], "responses": { "200": { "$ref": "#/components/responses/attachment" } }, "x-required-scopes": [ "attachments:read" ] } }, "/comments/{comment_id}/mentions": { "get": { "summary": "List comment mentions", "operationId": "list-comment-mentions", "description": "List the teammates mentioned in a comment.\n\nRequired scope: `teammates:read`", "tags": [ "Comments" ], "parameters": [ { "in": "path", "name": "comment_id", "required": true, "description": "The Comment ID", "schema": { "type": "string", "default": "com_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfTeammates" } }, "x-required-scopes": [ "teammates:read" ] } }, "/comments/{comment_id}/replies": { "post": { "summary": "Add comment reply", "operationId": "add-comment-reply", "description": "Add a reply to a comment on a [conversation](https://dev.frontapp.com/reference/conversations). Comment replies visually indicate which comment is being responded to, helping users follow the conversation.\n\nRequired scope: `comments:write`", "tags": [ "Comments" ], "parameters": [ { "in": "path", "name": "comment_id", "required": true, "description": "The comment ID to reply to", "schema": { "type": "string", "default": "com_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateComment" } } } }, "responses": { "201": { "$ref": "#/components/responses/comment" } }, "x-required-scopes": [ "comments:write" ] } }, "/company/rules": { "get": { "summary": "List all company rules", "operationId": "list-all-company-rules", "description": "List the company rules.\n\nRequired scope: `rules:read`", "tags": [ "Rules" ], "responses": { "200": { "$ref": "#/components/responses/listOfRules" } }, "x-required-scopes": [ "rules:read" ] } }, "/company/statuses": { "get": { "summary": "List company ticket statuses", "operationId": "list-company-ticket-statuses", "description": "List the ticket statuses available for your company.\n\nRequired scope: `statuses:read`", "tags": [ "Statuses" ], "responses": { "200": { "$ref": "#/components/responses/listOfStatuses" }, "404": { "description": "Ticketing is not enabled, therefore, there are no ticket statuses." } }, "x-required-scopes": [ "statuses:read" ] } }, "/company/statuses/{status_id}": { "get": { "summary": "Get ticket status", "operationId": "get-ticket-status-by-id", "description": "Fetch a ticket status.\n\nRequired scope: `statuses:read`", "tags": [ "Statuses" ], "parameters": [ { "in": "path", "name": "status_id", "required": true, "description": "The ticket status ID", "schema": { "type": "string", "default": "sts_5z" } } ], "responses": { "200": { "$ref": "#/components/responses/status" } }, "x-required-scopes": [ "statuses:read" ] } }, "/company/tags": { "get": { "summary": "List company tags", "operationId": "list-company-tags", "description": "List the company tags.\n\nRequired scope: `tags:read`", "tags": [ "Tags" ], "parameters": [ { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/sortByTags" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfTags" } }, "x-required-scopes": [ "tags:read" ] }, "post": { "summary": "Create company tag", "operationId": "create-company-tag", "description": "Create a company tag.\n\nRequired scope: `tags:write`", "tags": [ "Tags" ], "requestBody": { "description": "Tag to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTag" } } } }, "responses": { "201": { "$ref": "#/components/responses/tag" } }, "x-required-scopes": [ "tags:write" ] } }, "/contact_groups": { "get": { "deprecated": true, "summary": "List groups", "operationId": "list-groups", "description": "List the contact groups.\n\n> ⚠️ Deprecated endpoint\n>\n> This endpoint has been deprecated. Please use the compatible contact list endpoints instead.\n> - `GET /contact_lists`.\n\n\nRequired scope: `contacts:read`", "tags": [ "Contact Groups" ], "responses": { "200": { "$ref": "#/components/responses/listOfContactLists" } }, "x-required-scopes": [ "contacts:read" ] }, "post": { "deprecated": true, "summary": "Create group", "operationId": "create-group", "description": "Create a new contact group in the default team (workspace).\n\n> ⚠️ Deprecated endpoint\n>\n> This endpoint has been deprecated. Please use the compatible contact list endpoints instead.\n> - `POST /contact_lists`.\n\n\nRequired scope: `contacts:write`", "tags": [ "Contact Groups" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContactList" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "contacts:write" ] } }, "/contact_groups/{contact_group_id}": { "delete": { "deprecated": true, "summary": "Delete group", "operationId": "delete-group", "description": "Delete a contact group.\n\n> ⚠️ Deprecated endpoint\n>\n> This endpoint has been deprecated. Please use the compatible contact list endpoints instead.\n> - `DELETE /contact_lists/{contact_list_id}`.\n\n\nRequired scope: `contacts:delete`", "tags": [ "Contact Groups" ], "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" } }, "x-required-scopes": [ "contacts:delete" ] } }, "/contact_groups/{contact_group_id}/contacts": { "get": { "deprecated": true, "summary": "List contacts in group", "operationId": "list-contacts-in-group", "description": "List the contacts belonging to the requested group.\n\n> ⚠️ Deprecated endpoint\n>\n> This endpoint has been deprecated. Please use the compatible contact list endpoints instead.\n> - `GET /contact_lists/{contact_list_id}/contacts`.\n\n\nRequired scope: `contacts:read`", "tags": [ "Contact Groups" ], "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" } }, "x-required-scopes": [ "contacts:read" ] }, "post": { "deprecated": true, "summary": "Add contacts to group", "operationId": "add-contacts-to-group", "description": "Add contacts to the requested group.\n\n> ⚠️ Deprecated endpoint\n>\n> This endpoint has been deprecated. Please use the compatible contact list endpoints instead.\n> - `POST /contact_lists/{contact_list_id}/contacts`.\n\n\nRequired scope: `contacts:write`", "tags": [ "Contact Groups" ], "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/AddContactsToList" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "contacts:write" ] }, "delete": { "summary": "Remove contacts from group", "operationId": "remove-contacts-from-group", "description": "Remove contacts from the requested group.\n\n> ⚠️ Deprecated endpoint\n>\n> This endpoint has been deprecated. Please use the compatible contact list endpoints instead.\n> - `DELETE /contact_lists/{contact_list_id}/contacts`.\n\n\nRequired scope: `contacts:write`", "tags": [ "Contact Groups" ], "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/RemoveContactsFromList" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "contacts:write" ] } }, "/contact_lists": { "get": { "summary": "List contact lists", "operationId": "list-contact-lists", "description": "List contact lists.\n\nRequired scope: `contacts:read`", "tags": [ "Contact Lists" ], "responses": { "200": { "$ref": "#/components/responses/listOfContactLists" } }, "x-required-scopes": [ "contacts:read" ] }, "post": { "summary": "Create contact list", "operationId": "create-contact-list", "description": "Create a new contact list in the oldest active workspace that the token has access to. If you need to specify the workspace, we recommend using the [Create team contact list](https://dev.frontapp.com/reference/create-team-contact-list) endpoint instead.\n\nRequired scope: `contacts:write`", "tags": [ "Contact Lists" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContactList" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "contacts:write" ] } }, "/contact_lists/{contact_list_id}": { "delete": { "summary": "Delete contact list", "operationId": "delete-contact-list", "description": "Delete a contact lists.\n\nRequired scope: `contacts:delete`", "tags": [ "Contact Lists" ], "parameters": [ { "in": "path", "name": "contact_list_id", "required": true, "description": "The contact list ID", "schema": { "type": "string", "default": "grp_123" } } ], "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "contacts:delete" ] } }, "/contact_lists/{contact_list_id}/contacts": { "get": { "summary": "List contacts in contact list", "operationId": "list-contacts-in-contact-list", "description": "List the contacts belonging to the requested contact list.\n\nRequired scope: `contacts:read`", "tags": [ "Contact Lists" ], "parameters": [ { "in": "path", "name": "contact_list_id", "required": true, "description": "The contact list ID", "schema": { "type": "string", "default": "grp_123" } }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/limit" } ], "responses": { "200": { "$ref": "#/components/responses/listOfContacts" } }, "x-required-scopes": [ "contacts:read" ] }, "post": { "summary": "Add contacts to contact list", "operationId": "add-contacts-to-contact-list", "description": "Add contacts to the requested contact list.\n\nRequired scope: `contacts:write`", "tags": [ "Contact Lists" ], "parameters": [ { "in": "path", "name": "contact_list_id", "required": true, "description": "The contact list ID", "schema": { "type": "string", "default": "grp_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddContactsToList" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "contacts:write" ] }, "delete": { "summary": "Remove contacts from contact list", "operationId": "remove-contacts-from-contact-list", "description": "Remove contacts from the requested contact list.\n\nRequired scope: `contacts:write`", "tags": [ "Contact Lists" ], "parameters": [ { "in": "path", "name": "contact_list_id", "required": true, "description": "The contact list ID", "schema": { "type": "string", "default": "grp_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RemoveContactsFromList" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "contacts:write" ] } }, "/contacts": { "get": { "summary": "List contacts", "operationId": "list-contacts", "description": "List the contacts of the company.\n\nRequired scope: `contacts:read`", "tags": [ "Contacts" ], "parameters": [ { "$ref": "#/components/parameters/cardQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/sortByCards" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfContacts" } }, "x-required-scopes": [ "contacts:read" ] }, "post": { "summary": "Create contact", "operationId": "create-contact", "description": "Create a new contact at the company level.\n\nRequired scope: `contacts:write`", "tags": [ "Contacts" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContact" } } } }, "responses": { "201": { "$ref": "#/components/responses/contact" } }, "x-required-scopes": [ "contacts:write" ] } }, "/contacts/custom_fields": { "get": { "summary": "List Contact's custom fields", "operationId": "list-contact-custom-fields", "description": "Lists the custom fields that can be attached to a Contact.\n\nRequired scope: `custom_fields:read`", "tags": [ "Custom Fields" ], "responses": { "200": { "$ref": "#/components/responses/listOfCustomFields" } }, "x-required-scopes": [ "custom_fields:read" ] } }, "/contacts/merge": { "post": { "summary": "Merge contacts", "operationId": "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\n\nRequired scope: `contacts:write`", "tags": [ "Contacts" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MergeContacts" } } } }, "responses": { "200": { "$ref": "#/components/responses/contact" } }, "x-required-scopes": [ "contacts:write" ] } }, "/contacts/{contact_id}": { "get": { "summary": "Get contact", "operationId": "get-contact", "description": "Fetch a contact.\n\nRequired scope: `contacts:read`", "tags": [ "Contacts" ], "parameters": [ { "in": "path", "name": "contact_id", "required": true, "description": "The contact ID. Alternatively, you can supply the contact's source and handle as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "crd_123" } } ], "responses": { "200": { "$ref": "#/components/responses/contact" } }, "x-required-scopes": [ "contacts:read" ] }, "patch": { "summary": "Update a contact", "operationId": "update-a-contact", "description": "Updates a contact.\n\nRequired scope: `contacts:write`", "tags": [ "Contacts" ], "parameters": [ { "in": "path", "name": "contact_id", "required": true, "description": "The contact ID. Alternatively, you can supply the contact's source and handle as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "crd_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Contact" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "contacts:write" ] }, "delete": { "summary": "Delete a contact", "operationId": "delete-a-contact", "description": "Delete a contact.\n\nRequired scope: `contacts:delete`", "tags": [ "Contacts" ], "parameters": [ { "in": "path", "name": "contact_id", "required": true, "description": "The contact ID. Alternatively, you can supply the contact's source and handle as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "crd_123" } } ], "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "contacts:delete" ] } }, "/contacts/{contact_id}/conversations": { "get": { "summary": "List contact conversations", "operationId": "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\n\nRequired scope: `conversations:read`", "tags": [ "Contacts" ], "parameters": [ { "in": "path", "name": "contact_id", "required": true, "description": "The Contact ID. Alternatively, you can supply the contact's source and handle as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "crd_123" } }, { "$ref": "#/components/parameters/conversationQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfConversations" } }, "x-required-scopes": [ "conversations:read" ] } }, "/contacts/{contact_id}/handles": { "post": { "summary": "Add contact handle", "operationId": "add-contact-handle", "description": "Adds a new handle to a contact.\n\nRequired scope: `contacts:write`", "tags": [ "Contact Handles" ], "parameters": [ { "in": "path", "name": "contact_id", "required": true, "description": "The contact ID. Alternatively, you can supply the contact's source and handle as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "crd_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactHandle" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "contacts:write" ] }, "delete": { "summary": "Delete contact handle", "operationId": "delete-contact-handle", "description": "Remove a handle from a contact.\n\nRequired scope: `contacts:write`", "tags": [ "Contact Handles" ], "parameters": [ { "in": "path", "name": "contact_id", "required": true, "description": "The contact ID. Alternatively, you can supply the contact's source and handle as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "crd_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteContactHandle" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "contacts:write" ] } }, "/contacts/{contact_id}/notes": { "get": { "summary": "List notes", "operationId": "list-notes", "description": "List the notes added to a contact.\n\nRequired scope: `contacts:read`", "tags": [ "Contact Notes" ], "parameters": [ { "in": "path", "name": "contact_id", "required": true, "description": "The contact ID. Alternatively, you can supply the contact's source and handle as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "crd_123" } } ], "responses": { "202": { "$ref": "#/components/responses/listOfContactNotes" } }, "x-required-scopes": [ "contacts:read" ] }, "post": { "summary": "Add note", "operationId": "add-note", "description": "Create a new note on a contact.\n\nRequired scope: `contacts:write`", "tags": [ "Contact Notes" ], "parameters": [ { "in": "path", "name": "contact_id", "required": true, "description": "The contact ID. Alternatively, you can supply the contact's source and handle as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "crd_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContactNote" } } } }, "responses": { "201": { "$ref": "#/components/responses/contactNote" } }, "x-required-scopes": [ "contacts:write" ] } }, "/conversations": { "get": { "summary": "List conversations", "operationId": "list-conversations", "description": "List the conversations in the company in reverse chronological order (most recently updated first). The order will respect your company's [bump settings](https://help.front.com/t/y729th/customize-when-conversations-bump-up), which determine when conversations bump to the top. For more advanced filtering, see the [search endpoint](https://dev.frontapp.com/reference/conversations#search-conversations).\n\n\nRequired scope: `conversations:read`", "tags": [ "Conversations" ], "parameters": [ { "$ref": "#/components/parameters/conversationQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/sortByConversations" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfConversations" } }, "x-required-scopes": [ "conversations:read" ] }, "post": { "summary": "Create discussion conversation", "operationId": "create-conversation", "description": "Create a new [conversation](https://dev.frontapp.com/reference/conversations#creating-a-new-conversation) that only supports comments (known as discussions in Front). If you want to create a conversation that supports messages, use the [Create message](https://dev.frontapp.com/reference/post_channels-channel-id-messages) endpoint. If you want to add a comment to an existing conversation, use the [Add comment](https://dev.frontapp.com/reference/post_conversations-conversation-id-comments) endpoint.\n\nRequired scope: `conversations:write`", "tags": [ "Conversations" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateConversation" } } } }, "responses": { "201": { "$ref": "#/components/responses/conversation" } }, "x-required-scopes": [ "conversations:write" ] } }, "/conversations/custom_fields": { "get": { "summary": "List Conversation's custom fields", "operationId": "list-conversation-custom-fields", "description": "Lists the custom fields that can be attached to a Conversation.\n\nRequired scope: `custom_fields:read`", "tags": [ "Custom Fields" ], "responses": { "200": { "$ref": "#/components/responses/listOfCustomFields" } }, "x-required-scopes": [ "custom_fields:read" ] } }, "/conversations/search/{query}": { "get": { "summary": "Search conversations", "operationId": "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**Note:** This endpoint is subject to [proportional rate limiting](https://dev.frontapp.com/docs/rate-limiting#additional-proportional-limiting) at 40% of your company's rate limit.\n\n\nRequired scope: `conversations:read`", "tags": [ "Conversations" ], "parameters": [ { "in": "path", "name": "query", "required": true, "description": "Search query string. See [Search](https://dev.frontapp.com/docs/search-1) topic for usage details.", "schema": { "type": "string", "default": "inbox:inb_123 tag:tag_345" } }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfConversationSearchResults" } }, "x-required-scopes": [ "conversations:read" ] } }, "/conversations/{conversation_id}": { "get": { "summary": "Get conversation", "operationId": "get-conversation-by-id", "description": "Fetch a conversation.\n\n\nRequired scope: `conversations:read`", "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" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "conversations:read" ] }, "patch": { "summary": "Update conversation", "operationId": "update-conversation", "description": "Update a conversation.\n\nRequired scope: `conversations:write`", "tags": [ "Conversations" ], "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" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." }, "400": { "description": "Invalid input, such as invalid custom fields" } }, "x-required-scopes": [ "conversations:write" ] }, "delete": { "summary": "Delete conversation", "operationId": "delete-conversation", "description": "Permanently delete a conversation. The conversation must have status \"trashed\"\n(in the trash) before it can be permanently deleted. This action cannot be undone.\n\n\nRequired scope: `conversations:delete`", "x-required-scopes": [ "conversations:delete" ], "tags": [ "Conversations" ], "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "responses": { "204": { "description": "No content" }, "400": { "description": "Conversation must have status \"trashed\" before it can be permanently deleted" }, "403": { "description": "Token lacks the required `conversations:delete` scope" }, "404": { "description": "Conversation not found" } } } }, "/conversations/{conversation_id}/assignee": { "put": { "summary": "Update conversation assignee", "operationId": "update-conversation-assignee", "description": "Assign or unassign a conversation.\n\nRequired scope: `conversations:write`", "tags": [ "Conversations" ], "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" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "conversations:write" ] } }, "/conversations/{conversation_id}/comments": { "get": { "summary": "List conversation comments", "operationId": "list-conversation-comments", "description": "List the comments in a conversation in reverse chronological order (newest first).\n\nRequired scope: `comments:read`", "tags": [ "Comments" ], "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfComments" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "comments:read" ] }, "post": { "summary": "Add comment", "operationId": "add-comment", "description": "Add a comment to a [conversation](https://dev.frontapp.com/reference/conversations). If you want to create a new comment-only conversation, use the [Create discussion conversation](https://dev.frontapp.com/reference/create-conversation) endpoint.\n\nRequired scope: `comments:write`", "tags": [ "Comments" ], "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" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "comments:write" ] } }, "/conversations/{conversation_id}/drafts": { "get": { "summary": "List conversation drafts", "operationId": "list-conversation-drafts", "description": "List the drafts in a conversation.\n\nRequired scope: `drafts:read`", "tags": [ "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" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "drafts:read" ] }, "post": { "summary": "Create draft reply", "operationId": "create-draft-reply", "description": "Create a new draft as a reply to the last message in the conversation.\n\nRequired scope: `drafts:write`", "tags": [ "Drafts" ], "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" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "drafts:write" ] } }, "/conversations/{conversation_id}/events": { "get": { "summary": "List conversation events", "operationId": "list-conversation-events", "description": "List the events that occured for a conversation in reverse chronological order (newest first). The order will respect your company's [bump settings](https://help.front.com/t/y729th/customize-when-conversations-bump-up), which determine when conversations bump to the top.\n\nRequired scope: `events:*:read`", "tags": [ "Conversations" ], "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" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "events:*:read" ] } }, "/conversations/{conversation_id}/followers": { "get": { "summary": "List conversation followers", "operationId": "list-conversation-followers", "description": "List the teammates following a conversation.\n\nRequired scope: `teammates:read`", "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/listOfTeammates" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "teammates:read" ] }, "post": { "summary": "Add conversation followers", "operationId": "add-conversation-followers", "description": "Adds teammates to the list of followers of a conversation.\n\nRequired scope: `conversations:write`", "tags": [ "Conversations" ], "parameters": [ { "in": "path", "name": "conversation_id", "required": true, "description": "The conversation ID", "schema": { "type": "string", "default": "cnv_123" } }, { "in": "query", "name": "ignore_errors", "description": "Whether to ignore invalid teammate IDs and continue adding valid ones.", "schema": { "type": "boolean", "default": false } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "teammate_ids": { "description": "IDs of the teammate to add to the followers list. Alternatively, you can supply the teammates as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "type": "array", "maxItems": 50, "items": { "type": "string" } } }, "required": [ "teammate_ids" ] } } } }, "responses": { "204": { "description": "No content" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "conversations:write" ] }, "delete": { "summary": "Delete conversation followers", "operationId": "delete-conversation-followers", "description": "Removes teammates from the list of followers of a conversation.\n\nRequired scope: `conversations:write`", "tags": [ "Conversations" ], "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. Alternatively, you can supply the teammates as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "type": "array", "maxItems": 50, "items": { "type": "string" } } }, "required": [ "teammate_ids" ] } } } }, "responses": { "204": { "description": "No content" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "conversations:write" ] } }, "/conversations/{conversation_id}/inboxes": { "get": { "summary": "List conversation inboxes", "operationId": "list-conversation-inboxes", "description": "List the inboxes in which a conversation is listed.\n\nRequired scope: `inboxes:read`", "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/listOfInboxes" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "inboxes:read" ] } }, "/conversations/{conversation_id}/links": { "post": { "summary": "Add conversation link", "operationId": "add-conversation-link", "description": "Adds one or more links to a conversation\nFor more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.\n\n\nRequired scope: `conversations:write`", "tags": [ "Conversations" ], "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" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "conversations:write" ] }, "delete": { "summary": "Remove conversation links", "operationId": "remove-conversation-links", "description": "Removes one or more links to a conversation.\nFor more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.\n\n\nRequired scope: `conversations:write`", "tags": [ "Conversations" ], "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" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "conversations:write" ] } }, "/conversations/{conversation_id}/messages": { "get": { "summary": "List conversation messages", "operationId": "list-conversation-messages", "description": "List the messages in a conversation in reverse chronological order (newest first).\n\nRequired scope: `messages:read`", "tags": [ "Conversations" ], "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" }, { "$ref": "#/components/parameters/sortByConversationMessages" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfMessages" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "messages:read" ] }, "post": { "summary": "Create message reply", "operationId": "create-message-reply", "description": "Reply to a conversation by sending a message and appending it to the conversation.\n\nRequired scope: `messages:send`", "tags": [ "Messages" ], "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/acceptedMessage" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "messages:send" ] } }, "/conversations/{conversation_id}/reminders": { "patch": { "summary": "Update conversation reminders", "operationId": "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\n\nRequired scope: `conversations:write`", "tags": [ "Conversations" ], "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" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "conversations:write" ] } }, "/conversations/{conversation_id}/tags": { "post": { "summary": "Add conversation tag", "operationId": "add-conversation-tag", "description": "Adds one or more tags to a conversation\n\nRequired scope: `conversations:write`", "tags": [ "Conversations" ], "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" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "conversations:write" ] }, "delete": { "summary": "Remove conversation tag", "operationId": "remove-conversation-tag", "description": "Removes one or more tags to a conversation\n\nRequired scope: `conversations:write`", "tags": [ "Conversations" ], "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" }, "301": { "description": "If the conversation has been merged, the response redirects you to the merged conversation." } }, "x-required-scopes": [ "conversations:write" ] } }, "/custom_fields": { "get": { "deprecated": true, "summary": "List Contact's custom fields", "operationId": "list-custom-fields", "description": "Lists the custom fields that can be attached to a Contact.\n\n> ⚠️ Deprecated endpoint\n>\n> This endpoint has been deprecated. Please use the fully compatible `GET /contacts/custom_fields` endpoint instead.\n\n\nRequired scope: `custom_fields:read`", "tags": [ "Custom Fields" ], "responses": { "200": { "$ref": "#/components/responses/listOfCustomFields" } }, "x-required-scopes": [ "custom_fields:read" ] } }, "/download/{attachment_link_id}": { "get": { "summary": "Download attachment", "operationId": "download-attachment", "description": "Download an attachment file.\n\nRequired scope: `attachments:read`", "tags": [ "Attachments" ], "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" } }, "x-required-scopes": [ "attachments:read" ] } }, "/drafts/{draft_id}": { "delete": { "summary": "Delete draft", "operationId": "delete-draft", "description": "Delete a draft message.\n\nRequired scope: `drafts:delete`", "tags": [ "Drafts" ], "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" } }, "x-required-scopes": [ "drafts:delete" ] } }, "/drafts/{message_id}/": { "patch": { "summary": "Edit draft", "operationId": "edit-draft", "description": "Edit a draft message.\n\nRequired scope: `drafts:write`", "tags": [ "Drafts" ], "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" } }, "x-required-scopes": [ "drafts:write" ] } }, "/events": { "get": { "summary": "List events", "operationId": "list-events", "description": "Lists all the detailed events which occurred in the inboxes of the company ordered in reverse chronological order (newest first).\nRefer to the [Events](https://dev.frontapp.com/reference/events) topic for more information, including sorting and filtering.\n\n\nRequired scope: `events:*:read`", "tags": [ "Events" ], "parameters": [ { "$ref": "#/components/parameters/activityQuery" }, { "in": "query", "name": "limit", "description": "Max number of results per page (max 15)", "schema": { "type": "integer", "default": 15 } }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/sortByActivities" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfEvents" } }, "x-required-scopes": [ "events:*:read" ] } }, "/events/{event_id}": { "get": { "summary": "Get event", "operationId": "get-event", "description": "Fetch an event.\nRefer to the [Events](https://dev.frontapp.com/reference/events) topic for more information, including sorting and filtering.\n\n\nRequired scope: `events:*:read`", "tags": [ "Events" ], "parameters": [ { "in": "path", "name": "event_id", "required": true, "description": "The event ID", "schema": { "type": "string", "default": "evt_55c8c149" } } ], "responses": { "200": { "$ref": "#/components/responses/event" } }, "x-required-scopes": [ "events:*:read" ] } }, "/inboxes": { "get": { "summary": "List inboxes", "operationId": "list-inboxes", "description": "List the inboxes of the company.\n\nRequired scope: `inboxes:read`", "tags": [ "Inboxes" ], "responses": { "200": { "$ref": "#/components/responses/listOfInboxes" } }, "x-required-scopes": [ "inboxes:read" ] }, "post": { "summary": "Create inbox", "operationId": "create-inbox", "description": "Create an inbox in the oldest active workspace that the token has access to. If you need to specify the workspace, we recommend using the [Create team inbox](https://dev.frontapp.com/reference/create-team-inbox) endpoint instead.\n\nRequired scope: `inboxes:write`", "tags": [ "Inboxes" ], "requestBody": { "description": "Inbox details", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInbox" } } } }, "responses": { "201": { "$ref": "#/components/responses/inbox" } }, "x-required-scopes": [ "inboxes:write" ] } }, "/inboxes/custom_fields": { "get": { "summary": "List Inbox's custom fields", "operationId": "list-inbox-custom-fields", "description": "Lists the custom fields that can be attached to an Inbox.\n\nRequired scope: `custom_fields:read`", "tags": [ "Custom Fields" ], "responses": { "200": { "$ref": "#/components/responses/listOfCustomFields" } }, "x-required-scopes": [ "custom_fields:read" ] } }, "/inboxes/{inbox_id}": { "get": { "summary": "Get inbox", "operationId": "get-inbox", "description": "Fetch an inbox.\n\nRequired scope: `inboxes:read`", "tags": [ "Inboxes" ], "parameters": [ { "in": "path", "name": "inbox_id", "required": true, "description": "The Inbox ID", "schema": { "type": "string", "default": "inb_123" } } ], "responses": { "200": { "$ref": "#/components/responses/inbox" } }, "x-required-scopes": [ "inboxes:read" ] } }, "/inboxes/{inbox_id}/channels": { "get": { "summary": "List inbox channels", "operationId": "list-inbox-channels", "description": "List the channels in an inbox.\n\nRequired scope: `channels:read`", "tags": [ "Inboxes" ], "parameters": [ { "in": "path", "name": "inbox_id", "required": true, "description": "The Inbox ID", "schema": { "type": "string", "default": "inb_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfChannels" } }, "x-required-scopes": [ "channels:read" ] }, "post": { "summary": "Create a channel", "operationId": "create-a-channel", "description": "Create a channel in an inbox.\n\nRequired scope: `channels:write`", "tags": [ "Channels" ], "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" } }, "x-required-scopes": [ "channels:write" ] } }, "/inboxes/{inbox_id}/conversations": { "get": { "summary": "List inbox conversations", "operationId": "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\n\nRequired scope: `conversations:read`", "tags": [ "Inboxes" ], "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" } }, "x-required-scopes": [ "conversations:read" ] } }, "/inboxes/{inbox_id}/imported_messages": { "post": { "summary": "Import message", "operationId": "import-inbox-message", "description": "Use this endpoint to import conversations into Front without sending data through a channel. Typical use cases include importing historical conversations or creating new conversations from non-standard sources, such as web form submissions that can't use the default Form channel (for example, forms that don't have static URLs or form providers that send email notifications after submission). Avoid using this endpoint for conversations that can be handled by a dedicated Front channel—instead, use the [Create message](https://dev.frontapp.com/reference/create-message) endpoint to send (rather than import) a new message.\n\nRequired scope: `messages:write`", "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" } }, "x-required-scopes": [ "messages:write" ] } }, "/inboxes/{inbox_id}/teammates": { "get": { "summary": "List inbox access", "operationId": "list-inbox-access", "description": "List the teammates with access to an inbox.\n\nRequired scope: `teammates:read`", "tags": [ "Inboxes" ], "parameters": [ { "in": "path", "name": "inbox_id", "required": true, "description": "The Inbox ID", "schema": { "type": "string", "default": "inb_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfTeammates" } }, "x-required-scopes": [ "teammates:read" ] }, "post": { "summary": "Add inbox access", "operationId": "add-inbox-access", "description": "Give access to one or more teammates to an inbox.\n\nRequired scope: `inboxes:write`", "tags": [ "Inboxes" ], "parameters": [ { "in": "path", "name": "inbox_id", "required": true, "description": "The Inbox ID", "schema": { "type": "string", "default": "inb_123" } } ], "requestBody": { "description": "Teammate IDs to add. Alternatively, you can supply teammate emails as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeammateIds" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "inboxes:write" ] }, "delete": { "summary": "Removes inbox access", "operationId": "removes-inbox-access", "description": "Remove access of one or more teammates from an inbox.\n\nRequired scope: `inboxes:write`", "tags": [ "Inboxes" ], "parameters": [ { "in": "path", "name": "inbox_id", "required": true, "description": "The Inbox ID", "schema": { "type": "string", "default": "inb_123" } } ], "requestBody": { "description": "Teammate IDs to remove. Alternatively, you can supply teammate emails as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeammateIds" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "inboxes:write" ] } }, "/knowledge_base_articles/{article_id}": { "get": { "summary": "Get a knowledge base article", "operationId": "get-a-knowledge-base-article", "description": "Fetches a knowledge base article.\n\nRequired scope: `knowledge_bases:read`", "tags": [ "Knowledge Base Articles" ], "parameters": [ { "in": "path", "name": "article_id", "required": true, "description": "The ID of the article to fetch", "schema": { "type": "string", "default": "kba_123" } } ], "responses": { "200": { "$ref": "#/components/responses/knowledgeBaseArticleSlim" } }, "x-required-scopes": [ "knowledge_bases:read" ] }, "delete": { "summary": "Delete an article", "operationId": "delete-an-article", "description": "Deletes an article and all its content and translations.\n\nRequired scope: `knowledge_bases:delete`", "tags": [ "Knowledge Base Articles" ], "parameters": [ { "in": "path", "name": "article_id", "required": true, "description": "The ID of the article to delete", "schema": { "type": "string", "default": "kba_123" } } ], "responses": { "200": { "$ref": "#/components/responses/knowledgeBaseArticleSlim" } }, "x-required-scopes": [ "knowledge_bases:delete" ] } }, "/knowledge_base_articles/{article_id}/content": { "get": { "summary": "Get knowledge base article with content in default locale", "operationId": "get-knowledge-base-article-with-content-in-default-locale", "description": "Fetches a knowledge base article with content in the default locale.\n\nRequired scope: `knowledge_bases:read`", "tags": [ "Knowledge Base Articles" ], "parameters": [ { "in": "path", "name": "article_id", "required": true, "description": "The ID of the article to fetch", "schema": { "type": "string", "default": "kba_123" } } ], "responses": { "200": { "$ref": "#/components/responses/knowledgeBaseArticle" } }, "x-required-scopes": [ "knowledge_bases:read" ] }, "patch": { "summary": "Update article content in default locale.", "operationId": "update-article-content-in-default-locale", "description": "Updates an article's content in the default locale\n\nRequired scope: `knowledge_bases:write`", "tags": [ "Knowledge Base Articles" ], "parameters": [ { "in": "path", "name": "article_id", "required": true, "description": "The ID of the article to update", "schema": { "type": "string", "default": "kba_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "required": [ "author_id", "content" ], "$ref": "#/components/schemas/KnowledgeBaseArticlePatch" } } } }, "responses": { "200": { "$ref": "#/components/responses/knowledgeBaseArticle" } }, "x-required-scopes": [ "knowledge_bases:write" ] } }, "/knowledge_base_articles/{article_id}/download/{attachment_id}": { "get": { "summary": "Download attachment from an article", "operationId": "download-attachment-from-an-article", "description": "Downloads the attachment from an article.\n\nRequired scope: `knowledge_bases:read`", "tags": [ "Knowledge Base Articles" ], "parameters": [ { "in": "path", "name": "article_id", "required": true, "description": "The ID of the article", "schema": { "type": "string", "default": "kba_123" } }, { "in": "path", "name": "attachment_id", "required": true, "description": "The ID of the file to download", "schema": { "type": "string" } } ], "responses": { "200": { "$ref": "#/components/responses/attachment" } }, "x-required-scopes": [ "knowledge_bases:read" ] } }, "/knowledge_base_articles/{article_id}/locales/{locale}/content": { "get": { "summary": "Get knowledge base article with content in specified locale", "operationId": "get-knowledge-base-article-with-content-in-specified-locale", "description": "Fetches a knowledge base article with content for a given locale.\n\nRequired scope: `knowledge_bases:read`", "tags": [ "Knowledge Base Articles" ], "parameters": [ { "in": "path", "name": "article_id", "required": true, "description": "The ID of the article to fetch", "schema": { "type": "string", "default": "kba_123" } }, { "in": "path", "name": "locale", "required": true, "description": "The [locale](https://dev.frontapp.com/reference/knowledge-bases#locales) of the content to fetch", "schema": { "type": "string", "default": "en" } } ], "responses": { "200": { "$ref": "#/components/responses/knowledgeBaseArticle" } }, "x-required-scopes": [ "knowledge_bases:read" ] }, "patch": { "summary": "Update article content in specified locale", "operationId": "update-article-content-in-specified-locale", "description": "Updates an article's content for a given locale.\n\nRequired scope: `knowledge_bases:write`", "tags": [ "Knowledge Base Articles" ], "parameters": [ { "in": "path", "name": "article_id", "required": true, "description": "The ID of the article to update", "schema": { "type": "string", "default": "kba_123" } }, { "in": "path", "name": "locale", "required": true, "description": "The [locale](https://dev.frontapp.com/reference/knowledge-bases#locales) of the updated content", "schema": { "type": "string", "default": "en" } } ], "requestBody": { "content": { "application/json": { "schema": { "required": [ "author_id", "content" ], "$ref": "#/components/schemas/KnowledgeBaseArticlePatch" } } } }, "responses": { "200": { "$ref": "#/components/responses/knowledgeBaseArticle" } }, "x-required-scopes": [ "knowledge_bases:write" ] } }, "/knowledge_base_categories/{category_id}": { "get": { "summary": "Get a knowledge base category", "operationId": "get-a-knowledge-base-category", "description": "Fetches a knowledge base category.\n\nRequired scope: `knowledge_bases:read`", "tags": [ "Knowledge Base Categories" ], "parameters": [ { "in": "path", "name": "category_id", "required": true, "description": "The ID of the category to fetch", "schema": { "type": "string", "default": "kbc_123" } } ], "responses": { "200": { "$ref": "#/components/responses/knowledgeBaseCategorySlim" } }, "x-required-scopes": [ "knowledge_bases:read" ] }, "delete": { "summary": "Delete a knowledge base category", "operationId": "delete-a-knowledge-base-category", "description": "Deletes a knowledge base category.\n\n> ⚠️ Warning\n>\n> When a category is deleted, all articles in the category are also deleted.\n\n\nRequired scope: `knowledge_bases:delete`", "tags": [ "Knowledge Base Categories" ], "parameters": [ { "in": "path", "name": "category_id", "required": true, "description": "The ID of the category to delete", "schema": { "type": "string", "default": "kbc_123" } } ], "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "knowledge_bases:delete" ] } }, "/knowledge_base_categories/{category_id}/articles": { "get": { "summary": "List articles in a category", "operationId": "list-articles-in-a-category", "description": "List articles in a category.\n\nRequired scope: `knowledge_bases:read`", "tags": [ "Knowledge Base Articles" ], "parameters": [ { "in": "path", "name": "category_id", "required": true, "description": "The ID of the category", "schema": { "type": "string", "default": "kbc_123" } }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfKnowledgeBaseArticles" } }, "x-required-scopes": [ "knowledge_bases:read" ] } }, "/knowledge_base_categories/{category_id}/content": { "get": { "summary": "Get knowledge base category content in default locale", "operationId": "get-knowledge-base-category-content-in-default-locale", "description": "Fetches a knowledge base category with content in the default locale.\n\nRequired scope: `knowledge_bases:read`", "tags": [ "Knowledge Base Categories" ], "parameters": [ { "in": "path", "name": "category_id", "required": true, "description": "The ID of the category to fetch", "schema": { "type": "string", "default": "kbc_123" } } ], "responses": { "200": { "$ref": "#/components/responses/knowledgeBaseCategory" } }, "x-required-scopes": [ "knowledge_bases:read" ] }, "patch": { "summary": "Update knowledge base category in default locale", "operationId": "update-knowledge-base-category-in-default-locale", "description": "Updates a knowledge base category in the default locale. Will republish the knowledge base if the knowledge base is currently published.\n\nRequired scope: `knowledge_bases:write`", "tags": [ "Knowledge Base Categories" ], "parameters": [ { "in": "path", "name": "category_id", "required": true, "description": "The ID of the category to update", "schema": { "type": "string", "default": "kbc_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KnowledgeBaseCategoryPatch" } } } }, "responses": { "200": { "$ref": "#/components/responses/knowledgeBaseCategory" } }, "x-required-scopes": [ "knowledge_bases:write" ] } }, "/knowledge_base_categories/{category_id}/locales/{locale}/content": { "get": { "summary": "Get knowledge base category with content in specified locale", "operationId": "get-knowledge-base-category-with-content-in-specified-locale", "description": "Fetches a knowledge base category with content for a given locale.\n\nRequired scope: `knowledge_bases:read`", "tags": [ "Knowledge Base Categories" ], "parameters": [ { "in": "path", "name": "category_id", "required": true, "description": "The ID of the category to fetch", "schema": { "type": "string", "default": "kbc_123" } }, { "in": "path", "name": "locale", "required": true, "description": "The [locale](https://dev.frontapp.com/reference/knowledge-bases#locales) of the content to fetch", "schema": { "type": "string", "default": "en" } } ], "responses": { "200": { "$ref": "#/components/responses/knowledgeBaseCategory" } }, "x-required-scopes": [ "knowledge_bases:read" ] }, "patch": { "summary": "Update knowledge base category in specified locale", "operationId": "update-knowledge-base-category-in-specified-locale", "description": "Updates a knowledge base category for a given locale. Will republish the knowledge base if the knowledge base is currently published.\n\nRequired scope: `knowledge_bases:write`", "tags": [ "Knowledge Base Categories" ], "parameters": [ { "in": "path", "name": "category_id", "required": true, "description": "The ID of the category to update", "schema": { "type": "string", "default": "kbc_123" } }, { "in": "path", "name": "locale", "required": true, "description": "The [locale](https://dev.frontapp.com/reference/knowledge-bases#locales) of the updated content", "schema": { "type": "string", "default": "en" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KnowledgeBaseCategoryPatch" } } } }, "responses": { "200": { "$ref": "#/components/responses/knowledgeBaseCategory" } }, "x-required-scopes": [ "knowledge_bases:write" ] } }, "/knowledge_bases": { "get": { "summary": "List knowledge bases", "operationId": "list-knowledge-bases", "description": "List the knowledge bases of the company.\n\nRequired scope: `knowledge_bases:read`", "tags": [ "Knowledge Bases" ], "responses": { "200": { "$ref": "#/components/responses/listOfKnowledgeBases" } }, "x-required-scopes": [ "knowledge_bases:read" ] }, "post": { "summary": "Create a knowledge base", "operationId": "create-a-knowledge-base", "description": "Creates a knowledge base.\n\nRequired scope: `knowledge_bases:write`", "tags": [ "Knowledge Bases" ], "requestBody": { "content": { "application/json": { "schema": { "required": [ "name" ], "$ref": "#/components/schemas/KnowledgeBaseCreate" } } } }, "responses": { "201": { "$ref": "#/components/responses/knowledgeBase" } }, "x-required-scopes": [ "knowledge_bases:write" ] } }, "/knowledge_bases/{knowledge_base_id}": { "get": { "summary": "Get a knowledge base", "operationId": "get-a-knowledge-base", "description": "Fetches a knowledge base.\n\nRequired scope: `knowledge_bases:read`", "tags": [ "Knowledge Bases" ], "parameters": [ { "in": "path", "name": "knowledge_base_id", "required": true, "description": "The ID of the knowledge base to fetch", "schema": { "type": "string", "default": "knb_123" } } ], "responses": { "200": { "$ref": "#/components/responses/knowledgeBaseSlim" } }, "x-required-scopes": [ "knowledge_bases:read" ] } }, "/knowledge_bases/{knowledge_base_id}/articles": { "get": { "summary": "List articles in a knowledge base", "operationId": "list-articles-in-a-knowledge-base", "description": "List articles in a knowledge base\n\nRequired scope: `knowledge_bases:read`", "tags": [ "Knowledge Base Articles" ], "parameters": [ { "in": "path", "name": "knowledge_base_id", "required": true, "description": "The ID of the knowledge base", "schema": { "type": "string", "default": "knb_123" } }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfKnowledgeBaseArticles" } }, "x-required-scopes": [ "knowledge_bases:read" ] }, "post": { "summary": "Create article in a knowledge base in default locale", "operationId": "create-article-in-a-knowledge-base-in-default-locale", "description": "Creates an article in a knowledge base in the default locale.\n\nRequired scope: `knowledge_bases:write`", "tags": [ "Knowledge Bases" ], "parameters": [ { "in": "path", "name": "knowledge_base_id", "required": true, "description": "The ID of the knowledge base to create the article in", "schema": { "type": "string", "default": "knb_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "required": [ "author_id", "subject", "content" ], "$ref": "#/components/schemas/KnowledgeBaseArticleCreate" } } } }, "responses": { "201": { "$ref": "#/components/responses/knowledgeBaseArticle" } }, "x-required-scopes": [ "knowledge_bases:write" ] } }, "/knowledge_bases/{knowledge_base_id}/categories": { "get": { "summary": "List categories in a knowledge base", "operationId": "list-categories-in-a-knowledge-base", "description": "List categories in a knowledge base.\n\nRequired scope: `knowledge_bases:read`", "tags": [ "Knowledge Base Categories" ], "parameters": [ { "in": "path", "name": "knowledge_base_id", "required": true, "description": "The ID of the knowledge base", "schema": { "type": "string", "default": "knb_123" } }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfKnowledgeBaseCategories" } }, "x-required-scopes": [ "knowledge_bases:read" ] }, "post": { "summary": "Create knowledge base category in default locale", "operationId": "create-knowledge-base-category-in-default-locale", "description": "Creates a knowledge base category in the default locale.\n\nRequired scope: `knowledge_bases:write`", "tags": [ "Knowledge Bases" ], "parameters": [ { "in": "path", "name": "knowledge_base_id", "required": true, "description": "The ID of the knowledge base to create the category in", "schema": { "type": "string", "default": "knb_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "required": [ "name" ], "$ref": "#/components/schemas/KnowledgeBaseCategoryCreate" } } } }, "responses": { "201": { "$ref": "#/components/responses/knowledgeBaseCategory" } }, "x-required-scopes": [ "knowledge_bases:write" ] } }, "/knowledge_bases/{knowledge_base_id}/content": { "get": { "summary": "Get a knowledge base with content in default locale", "operationId": "get-a-knowledge-base-with-content-in-default-locale", "description": "Fetches a knowledge base with its content in the default locale.\n\nRequired scope: `knowledge_bases:read`", "tags": [ "Knowledge Bases" ], "parameters": [ { "in": "path", "name": "knowledge_base_id", "required": true, "description": "The ID of the knowledge base to fetch", "schema": { "type": "string", "default": "knb_123" } } ], "responses": { "200": { "$ref": "#/components/responses/knowledgeBase" } }, "x-required-scopes": [ "knowledge_bases:read" ] }, "patch": { "summary": "Update knowledge base in default locale", "operationId": "update-knowledge-base-in-default-locale", "description": "Updates a knowledge base in the default locale. Will republish the knowledge base if the knowledge base is currently published.\n\nRequired scope: `knowledge_bases:write`", "tags": [ "Knowledge Bases" ], "parameters": [ { "in": "path", "name": "knowledge_base_id", "required": true, "description": "The ID of the knowledge base to update", "schema": { "type": "string", "default": "knb_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "required": [ "name" ], "$ref": "#/components/schemas/KnowledgeBasePatch" } } } }, "responses": { "200": { "$ref": "#/components/responses/knowledgeBase" } }, "x-required-scopes": [ "knowledge_bases:write" ] } }, "/knowledge_bases/{knowledge_base_id}/locales/{locale}/articles": { "post": { "summary": "Create article in a knowledge base in specified locale", "operationId": "create-article-in-a-knowledge-base-in-specified-locale", "description": "Create an article for a given locale in a knowledge base.\n\nRequired scope: `knowledge_bases:write`", "tags": [ "Knowledge Bases" ], "parameters": [ { "in": "path", "name": "knowledge_base_id", "required": true, "description": "The ID of the knowledge base to create the article in", "schema": { "type": "string", "default": "knb_123" } }, { "in": "path", "name": "locale", "required": true, "description": "The [locale](https://dev.frontapp.com/reference/knowledge-bases#locales) of the article's content", "schema": { "type": "string", "default": "en" } } ], "requestBody": { "content": { "application/json": { "schema": { "required": [ "author_id", "subject", "content" ], "$ref": "#/components/schemas/KnowledgeBaseArticleCreate" } } } }, "responses": { "201": { "$ref": "#/components/responses/knowledgeBaseArticle" } }, "x-required-scopes": [ "knowledge_bases:write" ] } }, "/knowledge_bases/{knowledge_base_id}/locales/{locale}/categories": { "post": { "summary": "Create knowledge base category in specified locale", "operationId": "create-knowledge-base-category-in-specified-locale", "description": "Creates a knowledge base category for a given locale.\n\nRequired scope: `knowledge_bases:write`", "tags": [ "Knowledge Bases" ], "parameters": [ { "in": "path", "name": "knowledge_base_id", "required": true, "description": "The ID of the knowledge base to create the category in", "schema": { "type": "string", "default": "knb_123" } }, { "in": "path", "name": "locale", "required": true, "description": "The [locale](https://dev.frontapp.com/reference/knowledge-bases#locales) of the category's content", "schema": { "type": "string", "default": "en" } } ], "requestBody": { "content": { "application/json": { "schema": { "required": [ "name" ], "$ref": "#/components/schemas/KnowledgeBaseCategoryCreate" } } } }, "responses": { "201": { "$ref": "#/components/responses/knowledgeBaseCategory" } }, "x-required-scopes": [ "knowledge_bases:write" ] } }, "/knowledge_bases/{knowledge_base_id}/locales/{locale}/content": { "get": { "summary": "Get a knowledge base with content in specified locale", "operationId": "get-a-knowledge-base-with-content-in-specified-locale", "description": "Fetches a knowledge base with its content for a given locale.\n\nRequired scope: `knowledge_bases:read`", "tags": [ "Knowledge Bases" ], "parameters": [ { "in": "path", "name": "knowledge_base_id", "required": true, "description": "The ID of the knowledge base to fetch", "schema": { "type": "string", "default": "knb_123" } }, { "in": "path", "name": "locale", "required": true, "description": "The [locale](https://dev.frontapp.com/reference/knowledge-bases#locales) of the content to fetch", "schema": { "type": "string", "default": "en" } } ], "responses": { "200": { "$ref": "#/components/responses/knowledgeBase" } }, "x-required-scopes": [ "knowledge_bases:read" ] }, "patch": { "summary": "Update knowledge base in specified locale", "operationId": "update-knowledge-base-in-specified-locale", "description": "Updates a knowledge base for a given locale. Will republish the knowledge base if the knowledge base is currently published.\n\nRequired scope: `knowledge_bases:write`", "tags": [ "Knowledge Bases" ], "parameters": [ { "in": "path", "name": "knowledge_base_id", "required": true, "description": "The ID of the knowledge base to update", "schema": { "type": "string", "default": "knb_123" } }, { "in": "path", "name": "locale", "required": true, "description": "The [locale](https://dev.frontapp.com/reference/knowledge-bases#locales) of the updated content", "schema": { "type": "string", "default": "en" } } ], "requestBody": { "content": { "application/json": { "schema": { "required": [ "name" ], "$ref": "#/components/schemas/KnowledgeBasePatch" } } } }, "responses": { "200": { "$ref": "#/components/responses/knowledgeBase" } }, "x-required-scopes": [ "knowledge_bases:write" ] } }, "/links": { "get": { "summary": "List links", "operationId": "list-links", "description": "List the links of the company paginated by id. Allows filtering by link type via the q.types param.\nThese links include application objects; for more details, see the [Links](https://dev.frontapp.com/reference/links) topic.\n\n\nRequired scope: `links:read`", "tags": [ "Links" ], "parameters": [ { "$ref": "#/components/parameters/topicQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/sortByLinks" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfLinks" } }, "x-required-scopes": [ "links:read" ] }, "post": { "summary": "Create link", "operationId": "create-link", "description": "Create a link. You must supply either `pattern` or `external_url` in the request, but not both (`pattern` is for application objects while `external_url` is for standard links). If `pattern` is provided, the API call updates the application objects matching the exact pattern. Keep in mind this endpoint only creates or updates an existing link from an application object. It does not create new application objects. If the link is resolved to an installed links integration, any name retrieved from the integration will override the provided name in the request.\n\nRequired scope: `links:write`", "tags": [ "Links" ], "requestBody": { "description": "Link to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateLink" } } } }, "responses": { "201": { "$ref": "#/components/responses/link" } }, "x-required-scopes": [ "links:write" ] } }, "/links/custom_fields": { "get": { "summary": "List Link's custom fields", "operationId": "list-link-custom-fields", "description": "Lists the custom fields that can be attached to a Link.\nFor more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.\n\n\nRequired scope: `custom_fields:read`", "tags": [ "Custom Fields" ], "responses": { "200": { "$ref": "#/components/responses/listOfCustomFields" } }, "x-required-scopes": [ "custom_fields:read" ] } }, "/links/{link_id}": { "get": { "summary": "Get link", "operationId": "get-link", "description": "Fetch a link.\nFor more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.\n\n\nRequired scope: `links:read`", "tags": [ "Links" ], "parameters": [ { "in": "path", "name": "link_id", "required": true, "description": "The link ID", "schema": { "type": "string", "default": "top_123" } } ], "responses": { "200": { "$ref": "#/components/responses/link" } }, "x-required-scopes": [ "links:read" ] }, "patch": { "summary": "Update a link", "operationId": "update-a-link", "description": "Update a link.\nFor more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.\n\n\nRequired scope: `links:write`", "tags": [ "Links" ], "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" } }, "x-required-scopes": [ "links:write" ] } }, "/links/{link_id}/conversations": { "get": { "summary": "List link conversations", "operationId": "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).\nFor more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.\n\n\nRequired scope: `conversations:read`", "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" }, { "$ref": "#/components/parameters/sortByConversations" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfConversations" } }, "x-required-scopes": [ "conversations:read" ] } }, "/me": { "get": { "tags": [ "Token Identity" ], "summary": "API Token details", "operationId": "api-token-details", "description": "Fetch the details of the API token.", "responses": { "200": { "$ref": "#/components/responses/identity" } } } }, "/message_template_folders": { "get": { "summary": "List folders", "operationId": "list-folders", "description": "List the message template folders.\n\nRequired scope: `message_templates:read`", "tags": [ "Message Template Folders" ], "parameters": [ { "$ref": "#/components/parameters/sortByCannedAnswerFolders" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfCannedAnswerFolders" } }, "x-required-scopes": [ "message_templates:read" ] }, "post": { "summary": "Create folder", "operationId": "create-folder", "description": "Create a new message template folder in the oldest active workspace that the token has access to. If you need to specify the workspace, we recommend using the [Create team folder](https://dev.frontapp.com/reference/create-team-folder) endpoint instead.\n\nRequired scope: `message_templates:write`", "tags": [ "Message Template Folders" ], "requestBody": { "description": "Message template folder to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateMessageTemplateFolder" } } } }, "responses": { "201": { "$ref": "#/components/responses/cannedAnswerFolder" } }, "x-required-scopes": [ "message_templates:write" ] } }, "/message_template_folders/{message_template_folder_id}": { "get": { "summary": "Get folder", "operationId": "get-folder", "description": "Fetch a message template folder.\n\nRequired scope: `message_templates:read`", "tags": [ "Message Template Folders" ], "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" } }, "x-required-scopes": [ "message_templates:read" ] }, "patch": { "summary": "Update folder", "operationId": "update-folder", "description": "Update message template folder\n\nRequired scope: `message_templates:write`", "tags": [ "Message Template Folders" ], "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" } }, "x-required-scopes": [ "message_templates:write" ] }, "delete": { "summary": "Delete folder", "operationId": "delete-folder", "description": "Delete a message template folder and child folders/templates\n\nRequired scope: `message_templates:delete`", "tags": [ "Message Template Folders" ], "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" } }, "x-required-scopes": [ "message_templates:delete" ] } }, "/message_template_folders/{message_template_folder_id}/message_template_folders": { "get": { "summary": "Get child folders", "operationId": "get-child-folders", "description": "Fetch the child message templates folders of a message template folder.\n\nRequired scope: `message_templates:read`", "tags": [ "Message Template Folders" ], "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" } }, "x-required-scopes": [ "message_templates:read" ] }, "post": { "summary": "Create child folder", "operationId": "create-child-folder", "description": "Create a new message template folder as a child of the given folder\n\nRequired scope: `message_templates:write`", "tags": [ "Message Template Folders" ], "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" } }, "x-required-scopes": [ "message_templates:write" ] } }, "/message_template_folders/{message_template_folder_id}/message_templates": { "get": { "summary": "Get child templates", "operationId": "get-child-templates", "description": "Fetch the child message templates of a message template folder.\n\nRequired scope: `message_templates:read`", "tags": [ "Message Templates" ], "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" } }, "x-required-scopes": [ "message_templates:read" ] }, "post": { "summary": "Create child template", "operationId": "create-child-template", "description": "Create a new message template as a child of the given folder\n\nRequired scope: `message_templates:write`", "tags": [ "Message Templates" ], "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" } }, "x-required-scopes": [ "message_templates:write" ] } }, "/message_templates": { "get": { "summary": "List message templates", "operationId": "list-message-templates", "description": "List the message templates.\n\nRequired scope: `message_templates:read`", "tags": [ "Message Templates" ], "parameters": [ { "$ref": "#/components/parameters/sortByCannedAnswers" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfCannedAnswers" } }, "x-required-scopes": [ "message_templates:read" ] }, "post": { "summary": "Create message template", "operationId": "create-message-template", "description": "Create a new message template in the oldest active workspace that the token has access to. If you need to specify the workspace, we recommend using the [Create team message template](https://dev.frontapp.com/reference/create-team-message-template) endpoint instead.\n\nRequired scope: `message_templates:write`", "tags": [ "Message Templates" ], "requestBody": { "description": "Message template to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSharedMessageTemplate" } } } }, "responses": { "201": { "$ref": "#/components/responses/cannedAnswer" } }, "x-required-scopes": [ "message_templates:write" ] } }, "/message_templates/{message_template_id}": { "get": { "summary": "Get message template", "operationId": "get-message-template", "description": "Fetch a message template.\n\nRequired scope: `message_templates:read`", "tags": [ "Message Templates" ], "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" } }, "x-required-scopes": [ "message_templates:read" ] }, "patch": { "summary": "Update message template", "operationId": "update-message-template", "description": "Update message template\n\nRequired scope: `message_templates:write`", "tags": [ "Message Templates" ], "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" } }, "x-required-scopes": [ "message_templates:write" ] }, "delete": { "summary": "Delete message template", "operationId": "delete-message-template", "description": "Delete a message template\n\nRequired scope: `message_templates:delete`", "tags": [ "Message Templates" ], "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" } }, "x-required-scopes": [ "message_templates:delete" ] } }, "/message_templates/{message_template_id}/download/{attachment_link_id}": { "get": { "summary": "Download attachment for a message template", "operationId": "download-attachment-for-a-message-template", "description": "Download an attachment file for a given message template ID\n\nRequired scope: `attachments:read`", "tags": [ "Attachments" ], "parameters": [ { "in": "path", "name": "message_template_id", "required": true, "description": "The Message Template ID", "schema": { "type": "string", "default": "rsp_1v3ef" } }, { "in": "path", "name": "attachment_link_id", "required": true, "description": "The Attachment ID", "schema": { "type": "string", "default": "fil_55c8c149" } } ], "responses": { "200": { "$ref": "#/components/responses/attachment" } }, "x-required-scopes": [ "attachments:read" ] } }, "/messages/{message_id}": { "get": { "summary": "Get message", "operationId": "get-message", "description": "Fetch a message.\n\n> ℹ️ The HTTP Header `Accept` can be used to request the message in a different format.\n> By default, Front will return the documented JSON response. By requesting `message/rfc822`, the response will contain the message in the EML format (for email messages only).\n\n\nRequired scope: `messages:read`", "tags": [ "Messages" ], "parameters": [ { "in": "path", "name": "message_id", "required": true, "description": "The message ID", "schema": { "type": "string", "default": "msg_123" } } ], "responses": { "200": { "$ref": "#/components/responses/message" } }, "x-required-scopes": [ "messages:read" ] } }, "/messages/{message_id}/download/{attachment_link_id}": { "get": { "summary": "Download attachment for a message", "operationId": "download-attachment-for-a-message", "description": "Download an attachment file for a given message id. Should be used by partner channels.\n\nRequired scope: `attachments:read`", "tags": [ "Attachments" ], "parameters": [ { "in": "path", "name": "message_id", "required": true, "description": "The Message ID", "schema": { "type": "string", "default": "msg_12345" } }, { "in": "path", "name": "attachment_link_id", "required": true, "description": "The Attachment ID", "schema": { "type": "string", "default": "fil_55c8c149" } } ], "responses": { "200": { "$ref": "#/components/responses/attachment" } }, "x-required-scopes": [ "attachments:read" ] } }, "/messages/{message_id}/seen": { "get": { "summary": "Get message seen status", "operationId": "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.\n\nRequired scope: `messages:read`", "tags": [ "Messages" ], "parameters": [ { "in": "path", "name": "message_id", "required": true, "description": "The message ID", "schema": { "type": "string", "default": "msg_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfSeenReceipts" } }, "x-required-scopes": [ "messages:read" ] }, "post": { "summary": "Mark message seen", "operationId": "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 message per hour.\n\nRequired scope: `messages:write`", "tags": [ "Messages" ], "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" } }, "x-required-scopes": [ "messages:write" ] } }, "/rules": { "get": { "summary": "List rules", "operationId": "list-rules", "description": "List the rules of the company.\n\nRequired scope: `rules:read`", "tags": [ "Rules" ], "responses": { "200": { "$ref": "#/components/responses/listOfRules" } }, "x-required-scopes": [ "rules:read" ] } }, "/rules/{rule_id}": { "get": { "summary": "Get rule", "operationId": "get-rule", "description": "Fetch a rule.\n\nRequired scope: `rules:read`", "tags": [ "Rules" ], "parameters": [ { "in": "path", "name": "rule_id", "required": true, "description": "The Rule ID", "schema": { "type": "string", "default": "rul_123" } } ], "responses": { "200": { "$ref": "#/components/responses/rule" } }, "x-required-scopes": [ "rules:read" ] } }, "/shifts": { "get": { "summary": "List Shifts", "operationId": "list-shifts", "description": "List the shifts.\n\nRequired scope: `shifts:read`", "tags": [ "Shifts" ], "responses": { "200": { "$ref": "#/components/responses/listOfShifts" } }, "x-required-scopes": [ "shifts:read" ] }, "post": { "summary": "Create shift", "operationId": "create-shift", "description": "Create a shift in the oldest active workspace that the token has access to. If you need to specify the workspace, we recommend using the [Create team shift](https://dev.frontapp.com/reference/create-team-shift) endpoint instead.\n\nRequired scope: `shifts:write`", "tags": [ "Shifts" ], "requestBody": { "description": "Shift to create details", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateShift" } } } }, "responses": { "201": { "$ref": "#/components/responses/shift" } }, "x-required-scopes": [ "shifts:write" ] } }, "/shifts/{shift_id}": { "get": { "summary": "Get shift", "operationId": "get-shift", "description": "Fetch a shift.\n\nRequired scope: `shifts:read`", "tags": [ "Shifts" ], "parameters": [ { "in": "path", "name": "shift_id", "required": true, "description": "The Shift ID", "schema": { "type": "string", "default": "shf_123" } } ], "responses": { "200": { "$ref": "#/components/responses/shift" } }, "x-required-scopes": [ "shifts:read" ] }, "patch": { "summary": "Update shift", "operationId": "update-shift", "description": "Update a shift.\n\nRequired scope: `shifts:write`", "tags": [ "Shifts" ], "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" } }, "x-required-scopes": [ "shifts:write" ] } }, "/shifts/{shift_id}/teammates": { "get": { "summary": "List shift's teammates", "operationId": "list-shifts-teammates", "description": "List the teammates assigned to a shift.\n\nRequired scope: `teammates:read`", "tags": [ "Shifts" ], "parameters": [ { "in": "path", "name": "shift_id", "required": true, "description": "The Shift ID", "schema": { "type": "string", "default": "shf_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfTeammates" } }, "x-required-scopes": [ "teammates:read" ] }, "post": { "summary": "Add teammates to shift", "operationId": "add-teammates-to-shift", "description": "Add teammates to a shift. The selected teammates must be in the team that owns the shift.\n\nRequired scope: `shifts:write`", "tags": [ "Shifts" ], "parameters": [ { "in": "path", "name": "shift_id", "required": true, "description": "The Shift ID", "schema": { "type": "string", "default": "shf_123" } } ], "requestBody": { "description": "Teammate IDs to add. Alternatively, you can supply emails as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeammateIds" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "shifts:write" ] }, "delete": { "summary": "Remove teammates from shift", "operationId": "remove-teammates-from-shift", "description": "Remove teammates from a shift.\n\nRequired scope: `shifts:write`", "tags": [ "Shifts" ], "parameters": [ { "in": "path", "name": "shift_id", "required": true, "description": "The Shift ID", "schema": { "type": "string", "default": "shf_123" } } ], "requestBody": { "description": "Teammate IDs to remove. Alternatively, you can supply emails as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeammateIds" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "shifts:write" ] } }, "/signatures/{signature_id}": { "get": { "summary": "Get signatures", "operationId": "get-signatures", "description": "Get the given signature.\n\nRequired scope: `signatures:read`", "tags": [ "Signatures" ], "parameters": [ { "in": "path", "name": "signature_id", "required": true, "description": "The signature ID", "schema": { "type": "string", "default": "sig_123" } } ], "responses": { "200": { "$ref": "#/components/responses/signature" } }, "x-required-scopes": [ "signatures:read" ] }, "patch": { "summary": "Update signature", "operationId": "update-signature", "description": "Update signature\n\nRequired scope: `signatures:write`", "tags": [ "Signatures" ], "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" } }, "x-required-scopes": [ "signatures:write" ] }, "delete": { "summary": "Delete signature", "operationId": "delete-signature", "description": "Delete signature\n\nRequired scope: `signatures:delete`", "tags": [ "Signatures" ], "parameters": [ { "in": "path", "name": "signature_id", "required": true, "description": "The signature ID", "schema": { "type": "string", "default": "sig_123" } } ], "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "signatures:delete" ] } }, "/tags": { "get": { "summary": "List tags", "operationId": "list-tags", "description": "List all the tags of the company that the API token has access to, whether they be company tags, team tags, or teammate tags.\n\nRequired scope: `tags:read`", "tags": [ "Tags" ], "parameters": [ { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/sortByTags" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfTags" } }, "x-required-scopes": [ "tags:read" ] }, "post": { "summary": "Create tag", "operationId": "create-tag", "description": "Create a tag in the oldest team (workspace). This is a legacy endpoint. Use the Create company tag, Create team tag, or Create teammate tag endpoints instead.\n\nRequired scope: `tags:write`", "tags": [ "Tags" ], "requestBody": { "description": "Tag to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTag" } } } }, "responses": { "201": { "$ref": "#/components/responses/tag" } }, "x-required-scopes": [ "tags:write" ] } }, "/tags/{tag_id}": { "get": { "summary": "Get tag", "operationId": "get-tag", "description": "Fetch a tag.\n\nRequired scope: `tags:read`", "tags": [ "Tags" ], "parameters": [ { "in": "path", "name": "tag_id", "required": true, "description": "The tag ID", "schema": { "type": "string", "default": "tag_123" } } ], "responses": { "200": { "$ref": "#/components/responses/tag" } }, "x-required-scopes": [ "tags:read" ] }, "patch": { "summary": "Update a tag", "operationId": "update-a-tag", "description": "Update a tag.\n\nRequired scope: `tags:write`", "tags": [ "Tags" ], "parameters": [ { "in": "path", "name": "tag_id", "required": true, "description": "The tag ID", "schema": { "type": "string", "default": "tag_123" } } ], "requestBody": { "description": "Child Tag to update", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTag" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "tags:write" ] }, "delete": { "summary": "Delete tag", "operationId": "delete-tag", "description": "Delete a tag.\n\nRequired scope: `tags:delete`", "tags": [ "Tags" ], "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" } }, "x-required-scopes": [ "tags:delete" ] } }, "/tags/{tag_id}/children": { "get": { "summary": "List tag children", "operationId": "list-tag-children", "description": "List the children of a specific tag.\n\nRequired scope: `tags:read`", "tags": [ "Tags" ], "parameters": [ { "in": "path", "name": "tag_id", "required": true, "description": "The tag ID", "schema": { "type": "string", "default": "tag_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfTags" } }, "x-required-scopes": [ "tags:read" ] }, "post": { "summary": "Create child tag", "operationId": "create-child-tag", "description": "Creates a child tag.\n\nRequired scope: `tags:write`", "tags": [ "Tags" ], "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" } }, "x-required-scopes": [ "tags:write" ] } }, "/tags/{tag_id}/conversations": { "get": { "summary": "List tagged conversations", "operationId": "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\n\nRequired scope: `conversations:read`", "tags": [ "Tags" ], "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" } }, "x-required-scopes": [ "conversations:read" ] } }, "/teammate_groups": { "get": { "summary": "List teammate groups", "operationId": "list-company-teammate-groups", "description": "List the teammate groups in the company.\n\nRequired scope: `teammate_groups:read`", "tags": [ "Teammate groups" ], "responses": { "200": { "$ref": "#/components/responses/listOfTeammateGroups" } }, "x-required-scopes": [ "teammate_groups:read" ] }, "post": { "summary": "Create teammate group", "operationId": "create-company-teammate-group", "description": "Create a new teammate group.\n\nRequired scope: `teammate_groups:write`", "tags": [ "Teammate groups" ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTeammateGroup" } } } }, "responses": { "201": { "$ref": "#/components/responses/teammateGroup" } }, "x-required-scopes": [ "teammate_groups:write" ] } }, "/teammate_groups/{teammate_group_id}": { "get": { "summary": "Get teammate group", "operationId": "get-company-teammate-group", "description": "Fetch a teammate group.\n\nRequired scope: `teammate_groups:read`", "tags": [ "Teammate groups" ], "parameters": [ { "in": "path", "name": "teammate_group_id", "required": true, "description": "The teammate group ID.", "schema": { "type": "string", "default": "cir_123" } } ], "responses": { "200": { "$ref": "#/components/responses/teammateGroup" } }, "x-required-scopes": [ "teammate_groups:read" ] }, "patch": { "summary": "Update a teammate group", "operationId": "update-a-company-teammate-group", "description": "Updates a teammate group. Note - You cannot modify a teammate group that is managed by SCIM.\n\nRequired scope: `teammate_groups:write`", "tags": [ "Teammate groups" ], "parameters": [ { "in": "path", "name": "teammate_group_id", "required": true, "description": "The teammate group ID.", "schema": { "type": "string", "default": "cir_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTeammateGroup" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "teammate_groups:write" ] }, "delete": { "summary": "Delete teammate group", "operationId": "delete-company-teammate-group", "description": "Deletes a teammate group. Note - You cannot delete a teammate group that is managed by SCIM.\n\nRequired scope: `teammate_groups:delete`", "tags": [ "Teammate groups" ], "parameters": [ { "in": "path", "name": "teammate_group_id", "required": true, "description": "The teammate group ID.", "schema": { "type": "string", "default": "cir_123" } } ], "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "teammate_groups:delete" ] } }, "/teammate_groups/{teammate_group_id}/inboxes": { "get": { "summary": "List teammate group team inboxes", "operationId": "list-company-teammate-group-team-inboxes", "description": "List inboxes that the teammate group has access to via its associated teams.\n\nRequired scope: `inboxes:read`", "tags": [ "Teammate groups" ], "parameters": [ { "in": "path", "name": "teammate_group_id", "required": true, "description": "The teammate group ID.", "schema": { "type": "string", "default": "cir_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfInboxes" } }, "x-required-scopes": [ "inboxes:read" ] }, "post": { "summary": "Add teammate group team inboxes", "operationId": "add-company-teammate-group-team-inboxes", "description": "Links non-public inboxes to the teammate group. The inbox must be part of a team that has been added to the teammate group.\n\nRequired scope: `teammate_groups:write`", "tags": [ "Teammate groups" ], "parameters": [ { "in": "path", "name": "teammate_group_id", "required": true, "description": "The teammate group ID.", "schema": { "type": "string", "default": "cir_123" } } ], "requestBody": { "description": "Inbox IDs to add", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InboxIds" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "teammate_groups:write" ] }, "delete": { "summary": "Remove teammate group team inboxes", "operationId": "remove-company-teammate-group-team-inboxes", "description": "Unlinks non-public inboxes from the teammate group.\n\nRequired scope: `teammate_groups:write`", "tags": [ "Teammate groups" ], "parameters": [ { "in": "path", "name": "teammate_group_id", "required": true, "description": "The teammate group ID.", "schema": { "type": "string", "default": "cir_123" } } ], "requestBody": { "description": "Inbox IDs to remove", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InboxIds" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "teammate_groups:write" ] } }, "/teammate_groups/{teammate_group_id}/teammates": { "get": { "summary": "List teammate group teammates", "operationId": "list-company-teammate-group-teammates", "description": "List teammate group teammates.\n\nRequired scope: `teammates:read`", "tags": [ "Teammate groups" ], "parameters": [ { "in": "path", "name": "teammate_group_id", "required": true, "description": "The teammate group ID.", "schema": { "type": "string", "default": "cir_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfTeammates" } }, "x-required-scopes": [ "teammates:read" ] }, "post": { "summary": "Add teammate group teammates", "operationId": "add-company-teammate-group-teammates", "description": "Add teammate group teammates. Note - You cannot modify a teammate group that is managed by SCIM.\n\nRequired scope: `teammate_groups:write`", "tags": [ "Teammate groups" ], "parameters": [ { "in": "path", "name": "teammate_group_id", "required": true, "description": "The teammate group ID.", "schema": { "type": "string", "default": "cir_123" } } ], "requestBody": { "description": "Teammate IDs to add. Alternatively, you can supply emails as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeammateIds" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "teammate_groups:write" ] }, "delete": { "summary": "Remove teammate group teammates", "operationId": "remove-company-teammate-group-teammates", "description": "Remove teammate group teammates. Note - You cannot modify a teammate group that is managed by SCIM.\n\nRequired scope: `teammate_groups:write`", "tags": [ "Teammate groups" ], "parameters": [ { "in": "path", "name": "teammate_group_id", "required": true, "description": "The teammate group ID.", "schema": { "type": "string", "default": "cir_123" } } ], "requestBody": { "description": "Teammate IDs to remove. Alternatively, you can supply emails as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeammateIds" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "teammate_groups:write" ] } }, "/teammate_groups/{teammate_group_id}/teams": { "get": { "summary": "List teammate group teams", "operationId": "list-company-teammate-group-teams", "description": "List teams added to the teammate group. Any teams added to the teammate group will automatically link public inboxes.\n\nRequired scope: `teams:read`", "tags": [ "Teammate groups" ], "parameters": [ { "in": "path", "name": "teammate_group_id", "required": true, "description": "The teammate group ID.", "schema": { "type": "string", "default": "cir_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfTeams" } }, "x-required-scopes": [ "teams:read" ] }, "post": { "summary": "Add teammate group teams", "operationId": "add-company-teammate-group-teams", "description": "Adds teams to the teammate group. Any teams added to the teammate group will automatically link public inboxes. Non-public inboxes can be added to the teammate group separately.\n\nRequired scope: `teammate_groups:write`", "tags": [ "Teammate groups" ], "parameters": [ { "in": "path", "name": "teammate_group_id", "required": true, "description": "The teammate group ID.", "schema": { "type": "string", "default": "cir_123" } } ], "requestBody": { "description": "Team IDs to add", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamIds" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "teammate_groups:write" ] }, "delete": { "summary": "Remove teammate group teams", "operationId": "remove-company-teammate-group-teams", "description": "Remove teams from the teammate group. Unlinks to any associated team inboxes.\n\nRequired scope: `teammate_groups:write`", "tags": [ "Teammate groups" ], "parameters": [ { "in": "path", "name": "teammate_group_id", "required": true, "description": "The teammate group ID.", "schema": { "type": "string", "default": "cir_123" } } ], "requestBody": { "description": "Team IDs to remove.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamIds" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "teammate_groups:write" ] } }, "/teammates": { "get": { "summary": "List teammates", "operationId": "list-teammates", "description": "List the teammates in the company.\n\nRequired scope: `teammates:read`", "tags": [ "Teammates" ], "responses": { "200": { "$ref": "#/components/responses/listOfTeammates" } }, "x-required-scopes": [ "teammates:read" ] } }, "/teammates/custom_fields": { "get": { "summary": "List Teammate's custom fields", "operationId": "list-teammate-custom-fields", "description": "Lists the custom fields that can be attached to a Teammate.\n\nRequired scope: `custom_fields:read`", "tags": [ "Custom Fields" ], "responses": { "200": { "$ref": "#/components/responses/listOfCustomFields" } }, "x-required-scopes": [ "custom_fields:read" ] } }, "/teammates/{teammate_id}": { "get": { "summary": "Get teammate", "operationId": "get-teammate", "description": "Fetch a teammate.\n\nRequired scope: `teammates:read`", "tags": [ "Teammates" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/teammate" } }, "x-required-scopes": [ "teammates:read" ] }, "patch": { "summary": "Update teammate", "operationId": "update-teammate", "description": "Update a teammate.\n\nRequired scope: `teammates:write`", "tags": [ "Teammates" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTeammate" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "teammates:write" ] } }, "/teammates/{teammate_id}/channels": { "get": { "summary": "List teammate channels", "operationId": "list-teammate-channels", "description": "List the channels of a teammate.\n\nRequired scope: `channels:read`", "tags": [ "Channels" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfChannels" } }, "x-required-scopes": [ "channels:read" ] } }, "/teammates/{teammate_id}/contact_groups": { "get": { "deprecated": true, "summary": "List teammate groups", "operationId": "list-teammate-groups", "description": "List the contact groups belonging to the requested teammate.\n\n> ⚠️ Deprecated endpoint\n>\n> This endpoint has been deprecated. Please use the compatible contact list endpoints instead.\n> - `GET /teammates/{teammate_id}/contact_lists`.\n\n\nRequired scope: `contacts:read`", "tags": [ "Contact Groups" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfContactLists" } }, "x-required-scopes": [ "contacts:read" ] }, "post": { "deprecated": true, "summary": "Create teammate group", "operationId": "create-teammate-group", "description": "Create a new contact group for the requested teammate.\n\n> ⚠️ Deprecated endpoint\n>\n> This endpoint has been deprecated. Please use the compatible contact list endpoints instead.\n> - `POST /teammates/{teammate_id}/contact_lists`.\n\n\nRequired scope: `contacts:write`", "tags": [ "Contact Groups" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContactList" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "contacts:write" ] } }, "/teammates/{teammate_id}/contact_lists": { "get": { "summary": "List teammate contact lists", "operationId": "list-teammate-contact-lists", "description": "List the contact lists belonging to the requested teammate.\n\nRequired scope: `contacts:read`", "tags": [ "Contact Lists" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfContactLists" } }, "x-required-scopes": [ "contacts:read" ] }, "post": { "summary": "Create teammate contact list", "operationId": "create-teammate-contact-list", "description": "Create a new contact list for the requested teammate.\n\nRequired scope: `contacts:write`", "tags": [ "Contact Lists" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContactList" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "contacts:write" ] } }, "/teammates/{teammate_id}/contacts": { "get": { "summary": "List teammate contacts", "operationId": "list-teammate-contacts", "description": "List the contacts of a teammate.\n\nRequired scope: `contacts:read`", "tags": [ "Contacts" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } }, { "$ref": "#/components/parameters/cardQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/sortByCards" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfContacts" } }, "x-required-scopes": [ "contacts:read" ] }, "post": { "summary": "Create teammate contact", "operationId": "create-teammate-contact", "description": "Create a contact for a teammate.\n\nRequired scope: `contacts:write`", "tags": [ "Contacts" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContact" } } } }, "responses": { "201": { "$ref": "#/components/responses/contact" } }, "x-required-scopes": [ "contacts:write" ] } }, "/teammates/{teammate_id}/conversations": { "get": { "summary": "List assigned conversations", "operationId": "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\n\nRequired scope: `conversations:read`", "tags": [ "Teammates" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } }, { "$ref": "#/components/parameters/conversationQuery" }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfConversations" } }, "x-required-scopes": [ "conversations:read" ] } }, "/teammates/{teammate_id}/inboxes": { "get": { "deprecated": true, "summary": "List teammate inboxes", "operationId": "list-teammate-inboxes", "description": "Returns list of inboxes the teammate has access to.\n\nRequired scope: `inboxes:read`", "tags": [ "Teammates" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfInboxes" } }, "x-required-scopes": [ "inboxes:read" ] } }, "/teammates/{teammate_id}/message_template_folders": { "get": { "summary": "List teammate folders", "operationId": "list-teammate-folders", "description": "List the message template folders belonging to the requested teammate.\n\nRequired scope: `message_templates:read`", "tags": [ "Message Template Folders" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } }, { "$ref": "#/components/parameters/sortByCannedAnswerFolders" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfCannedAnswerFolders" } }, "x-required-scopes": [ "message_templates:read" ] }, "post": { "summary": "Create teammate folder", "operationId": "create-teammate-folder", "description": "Create a new message template folder belonging to the requested teammate.\n\nRequired scope: `message_templates:write`", "tags": [ "Message Template Folders" ], "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. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "201": { "$ref": "#/components/responses/cannedAnswerFolder" } }, "x-required-scopes": [ "message_templates:write" ] } }, "/teammates/{teammate_id}/message_templates": { "get": { "summary": "List teammate message templates", "operationId": "list-teammate-message-templates", "description": "List the message templates belonging to the requested teammate.\n\nRequired scope: `message_templates:read`", "tags": [ "Message Templates" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } }, { "$ref": "#/components/parameters/sortByCannedAnswers" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfCannedAnswers" } }, "x-required-scopes": [ "message_templates:read" ] }, "post": { "summary": "Create teammate message template", "operationId": "create-teammate-message-template", "description": "Create a new message template for the given teammate\n\nRequired scope: `message_templates:write`", "tags": [ "Message Templates" ], "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. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "201": { "$ref": "#/components/responses/cannedAnswer" } }, "x-required-scopes": [ "message_templates:write" ] } }, "/teammates/{teammate_id}/private_inboxes": { "get": { "summary": "List teammate private inboxes", "operationId": "list-teammate-private-inboxes", "description": "List the private inboxes of a teammate.\n\nRequired scope: `inboxes:read`", "tags": [ "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" } }, "x-required-scopes": [ "inboxes:read" ] }, "post": { "summary": "Create teammate private inbox", "operationId": "create-teammate-private-inbox", "description": "Create a private inbox for a teammate.\n\nRequired scope: `inboxes:write`", "tags": [ "Inboxes" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID", "schema": { "type": "string", "default": "tea_123" } } ], "requestBody": { "description": "Inbox details", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePrivateInbox" } } } }, "responses": { "201": { "$ref": "#/components/responses/inbox" } }, "x-required-scopes": [ "inboxes:write" ] } }, "/teammates/{teammate_id}/rules": { "get": { "summary": "List teammate rules", "operationId": "list-teammate-rules", "description": "List the rules of a teammate.\n\nRequired scope: `rules:read`", "tags": [ "Rules" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfRules" } }, "x-required-scopes": [ "rules:read" ] } }, "/teammates/{teammate_id}/shifts": { "get": { "summary": "List Teammate Shifts", "operationId": "list-teammate-shifts", "description": "Lists all the shifts for the teammate.\n\nRequired scope: `shifts:read`", "tags": [ "Shifts" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfShifts" } }, "x-required-scopes": [ "shifts:read" ] } }, "/teammates/{teammate_id}/signatures": { "get": { "summary": "List teammate signatures", "operationId": "list-teammate-signatures", "description": "List the signatures belonging to the given teammate.\n\nRequired scope: `signatures:read`", "tags": [ "Signatures" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfSignatures" } }, "x-required-scopes": [ "signatures:read" ] }, "post": { "summary": "Create teammate signature", "operationId": "create-teammate-signature", "description": "Create a new signature for the given teammate\n\nRequired scope: `signatures:write`", "tags": [ "Signatures" ], "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. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } } ], "responses": { "201": { "$ref": "#/components/responses/signature" } }, "x-required-scopes": [ "signatures:write" ] } }, "/teammates/{teammate_id}/tags": { "get": { "summary": "List teammate tags", "operationId": "list-teammate-tags", "description": "List the tags for a teammate.\n\nRequired scope: `tags:read`", "tags": [ "Tags" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "schema": { "type": "string", "default": "tea_123" } }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/sortByTags" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfTags" } }, "x-required-scopes": [ "tags:read" ] }, "post": { "summary": "Create teammate tag", "operationId": "create-teammate-tag", "description": "Create a tag for a teammate.\n\nRequired scope: `tags:write`", "tags": [ "Tags" ], "parameters": [ { "in": "path", "name": "teammate_id", "required": true, "description": "The teammate ID. Alternatively, you can supply an email as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "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" } }, "x-required-scopes": [ "tags:write" ] } }, "/teams": { "get": { "summary": "List teams", "operationId": "list-teams", "description": "List the teams (workspaces) in the company.\n\nRequired scope: `teams:read`", "tags": [ "Teams" ], "responses": { "200": { "$ref": "#/components/responses/listOfTeams" } }, "x-required-scopes": [ "teams:read" ] } }, "/teams/{team_id}": { "get": { "summary": "Get team", "operationId": "get-team", "description": "Fetch a team (workspace).\n\nRequired scope: `teams:read`", "tags": [ "Teams" ], "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The Team ID", "schema": { "type": "string", "default": "tim_123" } } ], "responses": { "200": { "$ref": "#/components/responses/team" } }, "x-required-scopes": [ "teams:read" ] } }, "/teams/{team_id}/channels": { "get": { "summary": "List team channels", "operationId": "list-team-channels", "description": "List the channels of a team (workspace).\n\nRequired scope: `channels:read`", "tags": [ "Channels" ], "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfChannels" } }, "x-required-scopes": [ "channels:read" ] } }, "/teams/{team_id}/contact_groups": { "get": { "deprecated": true, "summary": "List team groups", "operationId": "list-team-groups", "description": "List contact groups belonging to the requested team (workspace).\n\n> ⚠️ Deprecated endpoint\n>\n> This endpoint has been deprecated. Please use the compatible contact list endpoints instead.\n> - `GET /teams/{team_id}/contact_lists`.\n\n\nRequired scope: `contacts:read`", "tags": [ "Contact Groups" ], "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfContactLists" } }, "x-required-scopes": [ "contacts:read" ] }, "post": { "deprecated": true, "summary": "Create team group", "operationId": "create-team-group", "description": "Create a new contact group for the requested team (workspace).\n\n> ⚠️ Deprecated endpoint\n>\n> This endpoint has been deprecated. Please use the compatible contact list endpoints instead.\n> - `POST /teams/{team_id}/contact_lists`.\n\n\nRequired scope: `contacts:write`", "tags": [ "Contact Groups" ], "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/CreateContactList" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "contacts:write" ] } }, "/teams/{team_id}/contact_lists": { "get": { "summary": "List team contact lists", "operationId": "list-team-contact-lists", "description": "List contact lists belonging to the requested team (workspace).\n\nRequired scope: `contacts:read`", "tags": [ "Contact Lists" ], "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } } ], "responses": { "200": { "$ref": "#/components/responses/listOfContactLists" } }, "x-required-scopes": [ "contacts:read" ] }, "post": { "summary": "Create team contact list", "operationId": "create-team-contact-list", "description": "Create a new contact list for the requested team (workspace).\n\nRequired scope: `contacts:write`", "tags": [ "Contact Lists" ], "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/CreateContactList" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "contacts:write" ] } }, "/teams/{team_id}/contacts": { "get": { "summary": "List team contacts", "operationId": "list-team-contacts", "description": "List the contacts of a team (workspace).\n\nRequired scope: `contacts:read`", "tags": [ "Contacts" ], "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/sortByCards" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfContacts" } }, "x-required-scopes": [ "contacts:read" ] }, "post": { "summary": "Create team contact", "operationId": "create-team-contact", "description": "Create a contact for a team (workspace).\n\nRequired scope: `contacts:write`", "tags": [ "Contacts" ], "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" } }, "x-required-scopes": [ "contacts:write" ] } }, "/teams/{team_id}/inboxes": { "get": { "summary": "List team inboxes", "operationId": "list-team-inboxes", "description": "List the inboxes belonging to a team (workspace).\n\nRequired scope: `inboxes:read`", "tags": [ "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" } }, "x-required-scopes": [ "inboxes:read" ] }, "post": { "summary": "Create team inbox", "operationId": "create-team-inbox", "description": "Create an inbox for a team (workspace).\n\nRequired scope: `inboxes:write`", "tags": [ "Inboxes" ], "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } } ], "requestBody": { "description": "Inbox details", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTeamInbox" } } } }, "responses": { "201": { "$ref": "#/components/responses/inbox" } }, "x-required-scopes": [ "inboxes:write" ] } }, "/teams/{team_id}/message_template_folders": { "get": { "summary": "List team folders", "operationId": "list-team-folders", "description": "List the message template folders belonging to the requested team (workspace).\n\nRequired scope: `message_templates:read`", "tags": [ "Message Template Folders" ], "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_55c8c149" } }, { "$ref": "#/components/parameters/sortByCannedAnswerFolders" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfCannedAnswerFolders" } }, "x-required-scopes": [ "message_templates:read" ] }, "post": { "summary": "Create team folder", "operationId": "create-team-folder", "description": "Create a new message template folder belonging to the requested team (workspace).\n\nRequired scope: `message_templates:write`", "tags": [ "Message Template Folders" ], "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" } }, "x-required-scopes": [ "message_templates:write" ] } }, "/teams/{team_id}/message_templates": { "get": { "summary": "List team message templates", "operationId": "list-team-message-templates", "description": "List the message templates belonging to the requested team (workspace).\n\nRequired scope: `message_templates:read`", "tags": [ "Message Templates" ], "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_55c8c149" } }, { "$ref": "#/components/parameters/sortByCannedAnswers" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfCannedAnswers" } }, "x-required-scopes": [ "message_templates:read" ] }, "post": { "summary": "Create team message template", "operationId": "create-team-message-template", "description": "Create a new message template for the given team (workspace).\n\nRequired scope: `message_templates:write`", "tags": [ "Message Templates" ], "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" } }, "x-required-scopes": [ "message_templates:write" ] } }, "/teams/{team_id}/rules": { "get": { "summary": "List team rules", "operationId": "list-team-rules", "description": "List the rules of a team (workspace).\n\nRequired scope: `rules:read`", "tags": [ "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" } }, "x-required-scopes": [ "rules:read" ] } }, "/teams/{team_id}/shifts": { "get": { "summary": "List team Shifts", "operationId": "list-team-shifts", "description": "List the shifts for a team (workspace).\n\nRequired scope: `shifts:read`", "tags": [ "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" } }, "x-required-scopes": [ "shifts:read" ] }, "post": { "summary": "Create team shift", "operationId": "create-team-shift", "description": "Create a shift for a team (workspace).\n\nRequired scope: `shifts:write`", "tags": [ "Shifts" ], "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" } }, "x-required-scopes": [ "shifts:write" ] } }, "/teams/{team_id}/signatures": { "get": { "summary": "List team signatures", "operationId": "list-team-signatures", "description": "List the signatures belonging to the given team (workspace).\n\nRequired scope: `signatures:read`", "tags": [ "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" } }, "x-required-scopes": [ "signatures:read" ] }, "post": { "summary": "Create team signature", "operationId": "create-team-signature", "description": "Create a new signature for the given team (workspace).\n\nRequired scope: `signatures:write`", "tags": [ "Signatures" ], "requestBody": { "description": "Signature to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSharedSignature" } } } }, "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } } ], "responses": { "201": { "$ref": "#/components/responses/signature" } }, "x-required-scopes": [ "signatures:write" ] } }, "/teams/{team_id}/tags": { "get": { "summary": "List team tags", "operationId": "list-team-tags", "description": "List the tags for a team (workspace).\n\nRequired scope: `tags:read`", "tags": [ "Tags" ], "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_123" } }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" }, { "$ref": "#/components/parameters/sortByTags" }, { "$ref": "#/components/parameters/sortOrder" } ], "responses": { "200": { "$ref": "#/components/responses/listOfTags" } }, "x-required-scopes": [ "tags:read" ] }, "post": { "summary": "Create team tag", "operationId": "create-team-tag", "description": "Create a tag for a team (workspace).\n\nRequired scope: `tags:write`", "tags": [ "Tags" ], "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" } }, "x-required-scopes": [ "tags:write" ] } }, "/teams/{team_id}/teammates": { "post": { "summary": "Add teammates to team", "operationId": "add-teammates-to-team", "description": "Add one or more teammates to a team (workspace).\n\nRequired scope: `teams:write`", "tags": [ "Teams" ], "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The Team ID", "schema": { "type": "string", "default": "tim_123" } } ], "requestBody": { "description": "Teammate IDs to add. Alternatively, you can supply emails as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeammateIds" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "teams:write" ] }, "delete": { "summary": "Remove teammates from team", "operationId": "remove-teammates-from-team", "description": "Remove one or more teammates from a team (workspace).\n\nRequired scope: `teams:write`", "tags": [ "Teams" ], "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. Alternatively, you can supply emails as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeammateIds" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "teams:write" ] } }, "/teams/{team_id}/views": { "get": { "summary": "List team views", "operationId": "list-team-views", "description": "List the views of a team.\n\nRequired scope: `views:read`", "tags": [ "Views" ], "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_xyz" } }, { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfViews" } }, "x-required-scopes": [ "views:read" ] }, "post": { "summary": "Create team view", "operationId": "create-team-view", "description": "Create a new view for a team.\n\nRequired scope: `views:write`", "tags": [ "Views" ], "parameters": [ { "in": "path", "name": "team_id", "required": true, "description": "The team ID", "schema": { "type": "string", "default": "tim_xyz" } } ], "requestBody": { "description": "View to create", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateView" } } } }, "responses": { "201": { "$ref": "#/components/responses/view" } }, "x-required-scopes": [ "views:write" ] } }, "/views": { "get": { "summary": "List views", "operationId": "list-views", "description": "List the views accessible to the authenticated token.\n\nRequired scope: `views:read`", "tags": [ "Views" ], "parameters": [ { "$ref": "#/components/parameters/limit" }, { "$ref": "#/components/parameters/pageToken" } ], "responses": { "200": { "$ref": "#/components/responses/listOfViews" } }, "x-required-scopes": [ "views:read" ] } }, "/views/{view_id}": { "get": { "summary": "Get view", "operationId": "get-view", "description": "Fetch a view.\n\nRequired scope: `views:read`", "tags": [ "Views" ], "parameters": [ { "in": "path", "name": "view_id", "required": true, "description": "The view ID", "schema": { "type": "string", "default": "lns_abc123" } } ], "responses": { "200": { "$ref": "#/components/responses/view" } }, "x-required-scopes": [ "views:read" ] }, "patch": { "summary": "Update view", "operationId": "update-view", "description": "Update a view.\n\nRequired scope: `views:write`", "tags": [ "Views" ], "parameters": [ { "in": "path", "name": "view_id", "required": true, "description": "The view ID", "schema": { "type": "string", "default": "lns_abc123" } } ], "requestBody": { "description": "View properties to update", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateView" } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "views:write" ] } }, "/views/{view_id}/teammates": { "post": { "summary": "Add view to teammate sidebars", "operationId": "add-view-teammates", "description": "Makes this view visible in specified teammates' sidebar navigation.\n\nRequired scope: `views:write`", "tags": [ "Views" ], "parameters": [ { "in": "path", "name": "view_id", "required": true, "description": "The view ID", "schema": { "type": "string", "default": "lns_abc123" } } ], "requestBody": { "description": "Teammate IDs to add. Alternatively, you can supply emails as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).", "content": { "application/json": { "schema": { "type": "object", "required": [ "teammate_ids" ], "properties": { "teammate_ids": { "type": "array", "items": { "type": "string" } } } } } } }, "responses": { "204": { "description": "No content" } }, "x-required-scopes": [ "views:write" ] } } } }