diff --git a/apis.yml b/apis.yml
index 134dd8a..99b256f 100644
--- a/apis.yml
+++ b/apis.yml
@@ -56,11 +56,10 @@ apis:
- Inboxes
- Communication
description: >-
- The Front Core API is a REST API over Front's shared-inbox platform. It
- exposes conversations, messages, drafts, comments, contacts, accounts,
- inboxes, channels, tags, teammates, teams, knowledge bases, shifts,
- analytics, links, message templates, and signatures, with API-token and
- OAuth 2.0 authentication, cursor pagination, and webhooks for events.
+ The Front Core API is a REST API over Front's shared-inbox platform. It exposes conversations, messages,
+ drafts, comments, contacts, accounts, inboxes, channels, tags, teammates, teams, knowledge bases,
+ shifts, analytics, links, message templates, and signatures, with API-token and OAuth 2.0 authentication,
+ cursor pagination, and webhooks for events.
properties:
- url: https://dev.frontapp.com
type: DeveloperPortal
@@ -74,6 +73,370 @@ apis:
type: Authentication
- url: https://dev.frontapp.com/docs/webhooks-1
type: Webhooks
+- aid: frontapp:frontapp-accounts-api
+ name: FrontApp Accounts API
+ description: The Accounts API from FrontApp — 3 operation(s) for accounts.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Accounts
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-accounts-api-openapi.yml
+- aid: frontapp:frontapp-analytics-api
+ name: FrontApp Analytics API
+ description: The Analytics API from FrontApp — 4 operation(s) for analytics.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Analytics
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-analytics-api-openapi.yml
+- aid: frontapp:frontapp-application-message-templates-api
+ name: FrontApp Application Message Templates API
+ description: >-
+ The Application Message Templates API from FrontApp — 2 operation(s) for application message templates.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Application Message Templates
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-application-message-templates-api-openapi.yml
+- aid: frontapp:frontapp-applications-api
+ name: FrontApp Applications API
+ description: The Applications API from FrontApp — 1 operation(s) for applications.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Applications
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-applications-api-openapi.yml
+- aid: frontapp:frontapp-attachments-api
+ name: FrontApp Attachments API
+ description: The Attachments API from FrontApp — 4 operation(s) for attachments.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Attachments
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-attachments-api-openapi.yml
+- aid: frontapp:frontapp-calls-api
+ name: FrontApp Calls API
+ description: The Calls API from FrontApp — 5 operation(s) for calls.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Calls
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-calls-api-openapi.yml
+- aid: frontapp:frontapp-channels-api
+ name: FrontApp Channels API
+ description: The Channels API from FrontApp — 6 operation(s) for channels.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Channels
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-channels-api-openapi.yml
+- aid: frontapp:frontapp-comments-api
+ name: FrontApp Comments API
+ description: The Comments API from FrontApp — 5 operation(s) for comments.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Comments
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-comments-api-openapi.yml
+- aid: frontapp:frontapp-contact-groups-api
+ name: FrontApp Contact Groups API
+ description: The Contact Groups API from FrontApp — 5 operation(s) for contact groups.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Contact Groups
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-contact-groups-api-openapi.yml
+- aid: frontapp:frontapp-contact-handles-api
+ name: FrontApp Contact Handles API
+ description: The Contact Handles API from FrontApp — 1 operation(s) for contact handles.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Contact Handles
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-contact-handles-api-openapi.yml
+- aid: frontapp:frontapp-contact-lists-api
+ name: FrontApp Contact Lists API
+ description: The Contact Lists API from FrontApp — 5 operation(s) for contact lists.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Contact Lists
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-contact-lists-api-openapi.yml
+- aid: frontapp:frontapp-contact-notes-api
+ name: FrontApp Contact Notes API
+ description: The Contact Notes API from FrontApp — 1 operation(s) for contact notes.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Contact Notes
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-contact-notes-api-openapi.yml
+- aid: frontapp:frontapp-contacts-api
+ name: FrontApp Contacts API
+ description: The Contacts API from FrontApp — 6 operation(s) for contacts.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Contacts
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-contacts-api-openapi.yml
+- aid: frontapp:frontapp-conversations-api
+ name: FrontApp Conversations API
+ description: The Conversations API from FrontApp — 11 operation(s) for conversations.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Conversations
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-conversations-api-openapi.yml
+- aid: frontapp:frontapp-custom-fields-api
+ name: FrontApp Custom Fields API
+ description: The Custom Fields API from FrontApp — 7 operation(s) for custom fields.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Custom Fields
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-custom-fields-api-openapi.yml
+- aid: frontapp:frontapp-drafts-api
+ name: FrontApp Drafts API
+ description: The Drafts API from FrontApp — 4 operation(s) for drafts.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Drafts
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-drafts-api-openapi.yml
+- aid: frontapp:frontapp-events-api
+ name: FrontApp Events API
+ description: The Events API from FrontApp — 2 operation(s) for events.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Events
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-events-api-openapi.yml
+- aid: frontapp:frontapp-inboxes-api
+ name: FrontApp Inboxes API
+ description: The Inboxes API from FrontApp — 7 operation(s) for inboxes.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Inboxes
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-inboxes-api-openapi.yml
+- aid: frontapp:frontapp-knowledge-base-articles-api
+ name: FrontApp Knowledge Base Articles API
+ description: >-
+ The Knowledge Base Articles API from FrontApp — 6 operation(s) for knowledge base articles.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Knowledge Base Articles
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-knowledge-base-articles-api-openapi.yml
+- aid: frontapp:frontapp-knowledge-base-categories-api
+ name: FrontApp Knowledge Base Categories API
+ description: >-
+ The Knowledge Base Categories API from FrontApp — 4 operation(s) for knowledge base categories.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Knowledge Base Categories
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-knowledge-base-categories-api-openapi.yml
+- aid: frontapp:frontapp-knowledge-bases-api
+ name: FrontApp Knowledge Bases API
+ description: The Knowledge Bases API from FrontApp — 8 operation(s) for knowledge bases.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Knowledge Bases
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-knowledge-bases-api-openapi.yml
+- aid: frontapp:frontapp-links-api
+ name: FrontApp Links API
+ description: The Links API from FrontApp — 3 operation(s) for links.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Links
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-links-api-openapi.yml
+- aid: frontapp:frontapp-message-template-folders-api
+ name: FrontApp Message Template Folders API
+ description: >-
+ The Message Template Folders API from FrontApp — 5 operation(s) for message template folders.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Message Template Folders
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-message-template-folders-api-openapi.yml
+- aid: frontapp:frontapp-message-templates-api
+ name: FrontApp Message Templates API
+ description: The Message Templates API from FrontApp — 5 operation(s) for message templates.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Message Templates
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-message-templates-api-openapi.yml
+- aid: frontapp:frontapp-messages-api
+ name: FrontApp Messages API
+ description: The Messages API from FrontApp — 9 operation(s) for messages.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Messages
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-messages-api-openapi.yml
+- aid: frontapp:frontapp-rules-api
+ name: FrontApp Rules API
+ description: The Rules API from FrontApp — 5 operation(s) for rules.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Rules
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-rules-api-openapi.yml
+- aid: frontapp:frontapp-shifts-api
+ name: FrontApp Shifts API
+ description: The Shifts API from FrontApp — 5 operation(s) for shifts.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Shifts
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-shifts-api-openapi.yml
+- aid: frontapp:frontapp-signatures-api
+ name: FrontApp Signatures API
+ description: The Signatures API from FrontApp — 3 operation(s) for signatures.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Signatures
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-signatures-api-openapi.yml
+- aid: frontapp:frontapp-statuses-api
+ name: FrontApp Statuses API
+ description: The Statuses API from FrontApp — 2 operation(s) for statuses.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Statuses
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-statuses-api-openapi.yml
+- aid: frontapp:frontapp-tags-api
+ name: FrontApp Tags API
+ description: The Tags API from FrontApp — 7 operation(s) for tags.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Tags
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-tags-api-openapi.yml
+- aid: frontapp:frontapp-teammate-groups-api
+ name: FrontApp Teammate groups API
+ description: The Teammate groups API from FrontApp — 5 operation(s) for teammate groups.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Teammate groups
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-teammate-groups-api-openapi.yml
+- aid: frontapp:frontapp-teammates-api
+ name: FrontApp Teammates API
+ description: The Teammates API from FrontApp — 4 operation(s) for teammates.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Teammates
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-teammates-api-openapi.yml
+- aid: frontapp:frontapp-teams-api
+ name: FrontApp Teams API
+ description: The Teams API from FrontApp — 3 operation(s) for teams.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Teams
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-teams-api-openapi.yml
+- aid: frontapp:frontapp-time-off-api
+ name: FrontApp Time Off API
+ description: The Time Off API from FrontApp — 3 operation(s) for time off.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Time Off
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-time-off-api-openapi.yml
+- aid: frontapp:frontapp-token-identity-api
+ name: FrontApp Token Identity API
+ description: The Token Identity API from FrontApp — 1 operation(s) for token identity.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Token Identity
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-token-identity-api-openapi.yml
+- aid: frontapp:frontapp-views-api
+ name: FrontApp Views API
+ description: The Views API from FrontApp — 4 operation(s) for views.
+ humanURL: https://dev.frontapp.com/reference/introduction
+ baseURL: https://api2.frontapp.com
+ tags:
+ - Views
+ properties:
+ - type: OpenAPI
+ url: openapi/frontapp-views-api-openapi.yml
common:
- type: DeveloperPortal
url: https://dev.frontapp.com
diff --git a/openapi/.refine-report.json b/openapi/.refine-report.json
new file mode 100644
index 0000000..e9b38df
--- /dev/null
+++ b/openapi/.refine-report.json
@@ -0,0 +1,97 @@
+{
+ "provider": "frontapp",
+ "sources": [
+ "frontapp-channel-api.yml",
+ "frontapp-core-api.yml"
+ ],
+ "outputs": [
+ "frontapp-application-message-templates-api-openapi.yml",
+ "frontapp-calls-api-openapi.yml",
+ "frontapp-channels-api-openapi.yml",
+ "frontapp-messages-api-openapi.yml",
+ "frontapp-accounts-api-openapi.yml",
+ "frontapp-analytics-api-openapi.yml",
+ "frontapp-applications-api-openapi.yml",
+ "frontapp-attachments-api-openapi.yml",
+ "frontapp-comments-api-openapi.yml",
+ "frontapp-contact-groups-api-openapi.yml",
+ "frontapp-contact-handles-api-openapi.yml",
+ "frontapp-contact-lists-api-openapi.yml",
+ "frontapp-contact-notes-api-openapi.yml",
+ "frontapp-contacts-api-openapi.yml",
+ "frontapp-conversations-api-openapi.yml",
+ "frontapp-custom-fields-api-openapi.yml",
+ "frontapp-drafts-api-openapi.yml",
+ "frontapp-events-api-openapi.yml",
+ "frontapp-inboxes-api-openapi.yml",
+ "frontapp-knowledge-base-articles-api-openapi.yml",
+ "frontapp-knowledge-base-categories-api-openapi.yml",
+ "frontapp-knowledge-bases-api-openapi.yml",
+ "frontapp-links-api-openapi.yml",
+ "frontapp-message-template-folders-api-openapi.yml",
+ "frontapp-message-templates-api-openapi.yml",
+ "frontapp-rules-api-openapi.yml",
+ "frontapp-shifts-api-openapi.yml",
+ "frontapp-signatures-api-openapi.yml",
+ "frontapp-statuses-api-openapi.yml",
+ "frontapp-tags-api-openapi.yml",
+ "frontapp-teammate-groups-api-openapi.yml",
+ "frontapp-teammates-api-openapi.yml",
+ "frontapp-teams-api-openapi.yml",
+ "frontapp-time-off-api-openapi.yml",
+ "frontapp-token-identity-api-openapi.yml",
+ "frontapp-views-api-openapi.yml"
+ ],
+ "archived": [
+ "archived openapi/frontapp-channel-api.yml",
+ "archived openapi/frontapp-core-api.yml"
+ ],
+ "errors": [],
+ "warnings": [],
+ "notes": [
+ "frontapp-channel-api.yml: upgraded openapi 3.0.0 -> OpenAPI 3.2.0",
+ "frontapp-channel-api.yml: declared missing tag: Application Message Templates",
+ "frontapp-channel-api.yml: declared missing tag: Calls",
+ "frontapp-channel-api.yml: declared missing tag: Channels",
+ "frontapp-channel-api.yml: declared missing tag: Messages",
+ "frontapp-core-api.yml: upgraded openapi 3.0.0 -> OpenAPI 3.2.0",
+ "frontapp-core-api.yml: declared missing tag: Accounts",
+ "frontapp-core-api.yml: declared missing tag: Analytics",
+ "frontapp-core-api.yml: declared missing tag: Applications",
+ "frontapp-core-api.yml: declared missing tag: Attachments",
+ "frontapp-core-api.yml: declared missing tag: Channels",
+ "frontapp-core-api.yml: declared missing tag: Comments",
+ "frontapp-core-api.yml: declared missing tag: Contact Groups",
+ "frontapp-core-api.yml: declared missing tag: Contact Handles",
+ "frontapp-core-api.yml: declared missing tag: Contact Lists",
+ "frontapp-core-api.yml: declared missing tag: Contact Notes",
+ "frontapp-core-api.yml: declared missing tag: Contacts",
+ "frontapp-core-api.yml: declared missing tag: Conversations",
+ "frontapp-core-api.yml: declared missing tag: Custom Fields",
+ "frontapp-core-api.yml: declared missing tag: Drafts",
+ "frontapp-core-api.yml: declared missing tag: Events",
+ "frontapp-core-api.yml: declared missing tag: Inboxes",
+ "frontapp-core-api.yml: declared missing tag: Knowledge Base Articles",
+ "frontapp-core-api.yml: declared missing tag: Knowledge Base Categories",
+ "frontapp-core-api.yml: declared missing tag: Knowledge Bases",
+ "frontapp-core-api.yml: declared missing tag: Links",
+ "frontapp-core-api.yml: declared missing tag: Message Template Folders",
+ "frontapp-core-api.yml: declared missing tag: Message Templates",
+ "frontapp-core-api.yml: declared missing tag: Messages",
+ "frontapp-core-api.yml: declared missing tag: Rules",
+ "frontapp-core-api.yml: declared missing tag: Shifts",
+ "frontapp-core-api.yml: declared missing tag: Signatures",
+ "frontapp-core-api.yml: declared missing tag: Statuses",
+ "frontapp-core-api.yml: declared missing tag: Tags",
+ "frontapp-core-api.yml: declared missing tag: Teammate groups",
+ "frontapp-core-api.yml: declared missing tag: Teammates",
+ "frontapp-core-api.yml: declared missing tag: Teams",
+ "frontapp-core-api.yml: declared missing tag: Time Off",
+ "frontapp-core-api.yml: declared missing tag: Token Identity",
+ "frontapp-core-api.yml: declared missing tag: Views",
+ "tag 'Channels' spans 2 source specs (frontapp-channel-api.yml, frontapp-core-api.yml): per-path servers applied",
+ "tag 'Messages' spans 2 source specs (frontapp-channel-api.yml, frontapp-core-api.yml): per-path servers applied",
+ "apis.yml register: written (+36 apis, 37 total)"
+ ],
+ "skipped": []
+}
\ No newline at end of file
diff --git a/openapi/_original/frontapp-channel-api.yml b/openapi/_original/frontapp-channel-api.yml
new file mode 100644
index 0000000..a512f9e
--- /dev/null
+++ b/openapi/_original/frontapp-channel-api.yml
@@ -0,0 +1,803 @@
+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: Channel API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/48cgkyj15mnqc4ttp
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+security:
+- http: []
+servers:
+- url: https://api2.frontapp.com
+components:
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+ responses:
+ acceptedMessage:
+ description: An accepted message
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ status:
+ type: string
+ default: accepted
+ message_uid:
+ type: string
+ description: Message unique identifier
+ applicationMessageTemplate:
+ description: An application message template
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApplicationMessageTemplateResponse'
+ schemas:
+ AddCallRecordingFormFields:
+ type: object
+ required:
+ - recording_type
+ properties:
+ recording_type:
+ type: string
+ enum:
+ - call
+ - voicemail
+ AddCallSummary:
+ type: object
+ required:
+ - content
+ properties:
+ content:
+ type: string
+ minLength: 1
+ description: Summary text for the call.
+ AddCallTranscript:
+ type: object
+ required:
+ - lines
+ properties:
+ lines:
+ type: array
+ minItems: 1
+ items:
+ $ref: '#/components/schemas/TranscriptLine'
+ ApplicationMessageTemplate:
+ required:
+ - external_id
+ - name
+ - blurb
+ - is_disabled
+ - status_name
+ - variable_mappings
+ - template_preview
+ allOf:
+ - $ref: '#/components/schemas/ApplicationMessageTemplateEditBlob'
+ - type: object
+ properties:
+ external_id:
+ type: string
+ ApplicationMessageTemplateEditBlob:
+ properties:
+ name:
+ type: string
+ description: Name of the message template.
+ blurb:
+ type: string
+ description: A limited preview of the message template content.
+ is_disabled:
+ type: boolean
+ description: Whether the message template is enabled for use in the external service.
+ status_name:
+ type: string
+ description: Either "PENDING", "APPROVED", or "REJECTED". This value helps admins understand
+ why a template may be enabled or disabled in the external service.
+ variable_mappings:
+ type: array
+ description: List of variable mappings
+ items:
+ type: object
+ required:
+ - uid
+ - type
+ - name
+ properties:
+ uid:
+ type: string
+ description: Value of the variable
+ name:
+ type: string
+ description: Name of the variable
+ type:
+ type: string
+ description: Type of the variable
+ template_preview:
+ type: string
+ description: Preview of the template
+ ApplicationMessageTemplateResponse:
+ description: Response for an application message template.
+ type: object
+ properties:
+ template_id:
+ type: number
+ description: ID of the application message template
+ example: msg_777
+ CallParty:
+ type: object
+ required:
+ - handle
+ properties:
+ handle:
+ type: string
+ description: Party identifier compatible with the application channel contact type.
+ name:
+ type: string
+ description: Optional display name for the party.
+ CreateCall:
+ discriminator:
+ propertyName: direction
+ mapping:
+ inbound: '#/components/schemas/CreateCallInbound'
+ outbound: '#/components/schemas/CreateCallOutbound'
+ oneOf:
+ - $ref: '#/components/schemas/CreateCallInbound'
+ - $ref: '#/components/schemas/CreateCallOutbound'
+ properties:
+ direction:
+ type: string
+ enum:
+ - inbound
+ - outbound
+ description: Use `inbound` with required `from` (external party); use `outbound` with required
+ `to` (callee).
+ CreateCallInbound:
+ type: object
+ required:
+ - external_call_id
+ - initial_status
+ - direction
+ - from
+ - parent_external_call_id
+ properties:
+ external_call_id:
+ type: string
+ description: Stable identifier for this call in the provider system.
+ initial_status:
+ type: string
+ enum:
+ - queued
+ - ringing
+ direction:
+ type: string
+ enum:
+ - inbound
+ description: Inbound calls must include `from` (external party who initiated). The channel is
+ treated as the receiving side (e.g. agent or queue).
+ from:
+ $ref: '#/components/schemas/CallParty'
+ description: External party who initiated the inbound call.
+ started_at:
+ type: number
+ description: Optional Unix timestamp (ms) when the call started.
+ parent_external_call_id:
+ type: string
+ description: External ID of the parent call (e.g. where the call was transferred from). This
+ will be used to thread the call into an existing conversation with a matching parent call
+ ID.
+ agent_email_address:
+ type: string
+ description: Optional email of the teammate associated with the call.
+ CreateCallOutbound:
+ type: object
+ required:
+ - external_call_id
+ - initial_status
+ - direction
+ - to
+ - parent_external_call_id
+ properties:
+ external_call_id:
+ type: string
+ description: Stable identifier for this call in the provider system.
+ initial_status:
+ type: string
+ enum:
+ - queued
+ - ringing
+ direction:
+ type: string
+ enum:
+ - outbound
+ description: Outbound calls must include `to` (callee). The channel is treated as the originating
+ side (e.g. agent).
+ to:
+ $ref: '#/components/schemas/CallParty'
+ description: Party being called (callee).
+ started_at:
+ type: number
+ description: Optional Unix timestamp (ms) when the call started.
+ parent_external_call_id:
+ type: string
+ description: External ID of the parent call (e.g. where the call was transferred from). This
+ will be used to thread the call into an existing conversation with a matching parent call
+ ID.
+ agent_email_address:
+ type: string
+ description: Optional email of the teammate associated with the call.
+ InboundMessage:
+ required:
+ - sender
+ - body
+ - metadata
+ properties:
+ sender:
+ type: object
+ description: Data of the sender
+ required:
+ - handle
+ properties:
+ 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).
+ email:
+ type: string
+ description: Email of the sender. When provided, links this contact to existing contacts
+ with the same email to prevent duplicates across channels.
+ subject:
+ type: string
+ description: Subject of the message
+ body:
+ type: string
+ description: The body of the message in HTML or plain text format.
+ metadata:
+ type: object
+ required:
+ - external_id
+ - external_conversation_id
+ properties:
+ external_id:
+ type: string
+ maxLength: 200
+ description: External identifier of the message
+ external_conversation_id:
+ type: string
+ maxLength: 200
+ description: External identifier of the conversation. Will be used to thread messages.
+ referenced_message_external_id:
+ type: string
+ maxLength: 200
+ description: External identifier of the message that this message is replying to. Use this
+ for explicit replies.
+ delivered_at:
+ type: integer
+ description: Time in seconds at which message was created in external system
+ 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
+ OutboundMessage:
+ required:
+ - to
+ - body
+ - metadata
+ description: Payload to receive an outbound message from an external system into Front.
+ properties:
+ sender_name:
+ type: string
+ description: Name of the sender
+ to:
+ type: array
+ description: Data of the message recipient
+ items:
+ type: object
+ required:
+ - handle
+ properties:
+ name:
+ type: string
+ description: Name of the recipient
+ handle:
+ type: string
+ description: Handle of the recipient. 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).
+ email:
+ type: string
+ description: Email of the recipient. When provided, links this contact to existing contacts
+ with the same email to prevent duplicates across channels.
+ subject:
+ type: string
+ description: Subject of the message
+ author_id:
+ type: string
+ description: ID of the teammate on behalf of whom the message is sent
+ body:
+ type: string
+ description: The body of the message in HTML or plain text format.
+ metadata:
+ type: object
+ required:
+ - external_id
+ - external_conversation_id
+ properties:
+ external_id:
+ type: string
+ maxLength: 200
+ description: External identifier of the message
+ external_conversation_id:
+ type: string
+ maxLength: 200
+ description: External identifier of the conversation. Will be used to thread messages.
+ referenced_message_external_id:
+ type: string
+ maxLength: 200
+ description: External identifier of the message that this message is replying to. Use this
+ for explicit replies.
+ delivered_at:
+ type: integer
+ description: Time in seconds at which message was created in external system
+ 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
+ TranscriptLine:
+ type: object
+ required:
+ - speaker_name
+ - content
+ - start_time_seconds
+ - speaker_type
+ properties:
+ speaker_name:
+ type: string
+ content:
+ type: string
+ start_time_seconds:
+ type: number
+ speaker_type:
+ type: string
+ enum:
+ - internal
+ - external
+ description: internal for agent or system-side speech; external for the other party.
+ UpdateCall:
+ type: object
+ required:
+ - call_status
+ properties:
+ occurred_at:
+ type: number
+ description: Optional Unix timestamp (ms) when this status change occurred.
+ call_status:
+ type: string
+ enum:
+ - queued
+ - ringing
+ - connected
+ - hold
+ - hangup
+ - abandoned
+ - missed
+ - transferred
+ agent_email_address:
+ type: string
+ description: Optional; include when the status update relates to a specific teammate.
+ UpdateChannel:
+ properties:
+ status:
+ type: string
+ description: Status of the channel
+ enum:
+ - offline
+ - ok
+paths:
+ /channels/{channel_id}:
+ patch:
+ summary: Update Channel
+ operationId: update-channel
+ description: Update a channel.
+ 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}/application_message_templates:
+ put:
+ summary: Sync application message template
+ operationId: sync-application-message-template
+ description: Import an application message template from an external service (such as WhatsApp or
+ Facebook). The message template becomes available for use by the channel specified if configured
+ as described in [this topic](https://dev.frontapp.com/update/docs/application-channel-message-templates).
+ tags:
+ - Application Message Templates
+ 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/ApplicationMessageTemplate'
+ responses:
+ '200':
+ $ref: '#/components/responses/applicationMessageTemplate'
+ '400':
+ description: Channel is not an application channel or does not support application message templates.
+ x-required-scopes:
+ - message_templates:write
+ /channels/{channel_id}/application_message_templates/{external_id}:
+ patch:
+ summary: Update application message template
+ operationId: update-application-message-template
+ description: Update an application message template that already exists in Front.
+ tags:
+ - Application Message Templates
+ 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
+ - in: path
+ name: external_id
+ required: true
+ description: The external ID of the application message template.
+ schema:
+ type: string
+ default: ext_123
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApplicationMessageTemplateEditBlob'
+ responses:
+ '200':
+ $ref: '#/components/responses/applicationMessageTemplate'
+ '400':
+ description: Channel is not an application channel or does not support application message templates.
+ x-required-scopes:
+ - message_templates:write
+ /channels/{channel_id}/calls:
+ post:
+ summary: Create a call
+ operationId: create-call
+ description: Creates a call in Front.
+ tags:
+ - Calls
+ parameters:
+ - in: path
+ name: channel_id
+ required: true
+ description: The Channel ID.
+ schema:
+ type: string
+ default: cha_123
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateCall'
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ description: Bad Request
+ x-required-scopes:
+ - channels:write
+ /channels/{channel_id}/calls/{external_call_id}:
+ patch:
+ summary: Update call status
+ operationId: update-call
+ description: Updates the call status of a call in Front.
+ tags:
+ - Calls
+ parameters:
+ - in: path
+ name: channel_id
+ required: true
+ description: The Channel ID.
+ schema:
+ type: string
+ default: cha_123
+ - in: path
+ name: external_call_id
+ required: true
+ description: The external call ID from the provider system (same as `external_call_id` on create).
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UpdateCall'
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ description: Bad Request
+ x-required-scopes:
+ - channels:write
+ /channels/{channel_id}/calls/{external_call_id}/recording:
+ post:
+ summary: Add call recording
+ operationId: add-call-recording
+ description: 'Adds a recording to a call in Front. Send `multipart/form-data` with exactly one file
+ in the `attachments` field, `Content-Type: audio/*`, and required `recording_type` (`call` or
+ `voicemail`).
+
+ '
+ tags:
+ - Calls
+ parameters:
+ - in: path
+ name: channel_id
+ required: true
+ description: The Channel ID.
+ schema:
+ type: string
+ default: cha_123
+ - in: path
+ name: external_call_id
+ required: true
+ description: The external call ID from the provider system.
+ schema:
+ type: string
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ required:
+ - attachments
+ - recording_type
+ properties:
+ attachments:
+ type: string
+ format: binary
+ description: Exactly one audio file (`audio/*`).
+ recording_type:
+ type: string
+ enum:
+ - call
+ - voicemail
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ description: Bad Request
+ x-required-scopes:
+ - channels:write
+ /channels/{channel_id}/calls/{external_call_id}/summary:
+ post:
+ summary: Add call summary
+ operationId: add-call-summary
+ description: Adds a summary to a call in Front.
+ tags:
+ - Calls
+ parameters:
+ - in: path
+ name: channel_id
+ required: true
+ description: The Channel ID.
+ schema:
+ type: string
+ default: cha_123
+ - in: path
+ name: external_call_id
+ required: true
+ description: The external call ID from the provider system.
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AddCallSummary'
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ description: Bad Request
+ x-required-scopes:
+ - channels:write
+ /channels/{channel_id}/calls/{external_call_id}/transcript:
+ post:
+ summary: Add call transcript
+ operationId: add-call-transcript
+ description: Adds a transcript to a call in Front.
+ tags:
+ - Calls
+ parameters:
+ - in: path
+ name: channel_id
+ required: true
+ description: The Channel ID.
+ schema:
+ type: string
+ default: cha_123
+ - in: path
+ name: external_call_id
+ required: true
+ description: The external call ID from the provider system.
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AddCallTranscript'
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ description: Bad Request
+ x-required-scopes:
+ - channels:write
+ /channels/{channel_id}/conversations/{conv_ext_id}/messages/{message_ext_id}/status:
+ put:
+ summary: Update external message status
+ operationId: update-external-message-status
+ description: 'Update the status of an outbound message by external ID. This endpoint is used by
+ external systems (like SMS providers or custom channels)
+
+ to notify Front when a message''s delivery status has changed.
+
+
+ **Available status changes:**
+
+ - `failed`: Mark a message as failed. When marked as failed, the conversation is reopened so the
+ team can take action.
+
+
+ **Note:** This endpoint is only available for outbound messages.
+
+ '
+ 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
+ - in: path
+ name: conv_ext_id
+ required: true
+ description: The conversation's external ID.
+ schema:
+ type: string
+ - in: path
+ name: message_ext_id
+ required: true
+ description: The message's external ID.
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - status
+ properties:
+ status:
+ type: string
+ enum:
+ - failed
+ description: The status to set for the message. Currently only 'failed' is supported.
+ reason:
+ type: string
+ description: Optional reason for the status change. This will be displayed to users
+ and logged for debugging purposes.
+ responses:
+ '204':
+ description: No content
+ x-required-scopes:
+ - messages:write
+ /channels/{channel_id}/inbound_messages:
+ post:
+ summary: Sync inbound message
+ operationId: sync-inbound-message
+ description: Import a message that was received by the channel.
+ 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/InboundMessage'
+ responses:
+ '202':
+ $ref: '#/components/responses/acceptedMessage'
+ x-required-scopes:
+ - messages:write
+ /channels/{channel_id}/outbound_messages:
+ post:
+ summary: Sync outbound message
+ operationId: sync-outbound-message
+ description: Import a message that was sent from the channel.
+ 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/OutboundMessage'
+ responses:
+ '202':
+ $ref: '#/components/responses/acceptedMessage'
+ x-required-scopes:
+ - messages:write
diff --git a/openapi/_original/frontapp-core-api.yml b/openapi/_original/frontapp-core-api.yml
new file mode 100644
index 0000000..0c34811
--- /dev/null
+++ b/openapi/_original/frontapp-core-api.yml
@@ -0,0 +1,12057 @@
+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
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+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:
+ title: Columns
+ 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 category
+ - Time spent in Ticket Status
+ - Transitions to Ticket Status
+ - Smart QA score
+ - Custom Field
+ - Updated Custom Field
+ AnalyticsActivitiesExportsColumns:
+ required:
+ - columns
+ type: object
+ properties:
+ columns:
+ type: array
+ description: "List of the columns to include in the export.\n\n**Fixed columns** are plain strings\
+ \ selected from the predefined list (e.g., `\"Message ID\"`).\n\n**Parameterized columns**\
+ \ require an additional parameter and must be specified as an object\nwith `name` and `id`\
+ \ fields. Supported parameterized prefixes:\n - `Time spent in Ticket Status` — `id` is the\
+ \ ticket status public API ID (e.g., `sts_123`)\n - `Transitions to Ticket Status` — `id`\
+ \ is the ticket status public API ID (e.g., `sts_123`)\n - `Smart QA score` — `id` is the\
+ \ Smart QA criteria name (e.g., `Comprehension`)\n - `Custom Field` — `id` is the custom\
+ \ field public API ID (e.g., `fld_456`)\n - `Updated Custom Field` — `id` is the custom field\
+ \ public API ID (e.g., `fld_456`)\n\nExample: `[\"Message ID\", {\"name\": \"Time spent in\
+ \ Ticket Status\", \"id\": \"sts_123\"}, {\"name\": \"Smart QA score\", \"id\": \"Comprehension\"\
+ }]`\n"
+ items:
+ oneOf:
+ - $ref: '#/components/schemas/AnalyticsActivitiesColumns'
+ - $ref: '#/components/schemas/AnalyticsActivitiesSmartQAParameterizedColumn'
+ - $ref: '#/components/schemas/AnalyticsActivitiesNumericParameterizedColumn'
+ 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
+ AnalyticsActivitiesNumericParameterizedColumn:
+ title: Columns with numeric parameter
+ type: object
+ required:
+ - name
+ - id
+ properties:
+ name:
+ type: string
+ enum:
+ - Time spent in Ticket Status
+ - Transitions to Ticket Status
+ - Custom Field
+ - Updated Custom Field
+ id:
+ description: Public API string ID (e.g., sts_123 for ticket statuses, fld_456 for custom fields)
+ or legacy numeric ID
+ oneOf:
+ - type: string
+ - type: integer
+ AnalyticsActivitiesParameterizedColumns:
+ type: string
+ oneOf:
+ - type: string
+ pattern: ^Time spent in Ticket Status:sts_[a-z0-9]+$
+ - type: string
+ pattern: ^Transitions to Ticket Status:sts_[a-z0-9]+$
+ - type: string
+ pattern: ^Smart QA score:\w+$
+ - type: string
+ pattern: ^Custom Field:fld_[a-z0-9]+$
+ - type: string
+ pattern: ^Updated Custom Field:fld_[a-z0-9]+$
+ AnalyticsActivitiesSmartQAParameterizedColumn:
+ title: Smart QA Columns
+ type: object
+ required:
+ - name
+ - id
+ properties:
+ name:
+ type: string
+ enum:
+ - Smart QA score
+ id:
+ $ref: '#/components/schemas/AnalyticsActivitiesSmartQAScoreParameters'
+ 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 category
+ - Custom Field
+ AnalyticsMessagesExportColumns:
+ required:
+ - columns
+ type: object
+ properties:
+ columns:
+ type: array
+ description: 'List of the columns to include in the export.
+
+ '
+ 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.
+
+ If both are provided, the ID will be favored.
+
+ '
+ 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
+ - type
+ - 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
+ type:
+ type: string
+ description: Type of the conversation
+ enum:
+ - conversation
+ - discussion
+ - task
+ example: discussion
+ 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'
+ description:
+ type: string
+ nullable: true
+ description: Description of the task. Only present on task conversations.
+ due_at:
+ type: number
+ nullable: true
+ description: Unix timestamp in seconds when the task is due. Only present on task conversations.
+ example: 1701292649.333
+ 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
+ properties:
+ type:
+ description: Conversation type
+ type: string
+ enum:
+ - discussion
+ - task
+ 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. Used as the title for tasks.
+ type: string
+ comment:
+ description: Details for the starter comment. Required for discussions, optional for tasks.
+ 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
+ description:
+ description: Description of the task. Only allowed when type is `task`.
+ type: string
+ maxLength: 65535
+ due_at:
+ description: Unix timestamp in seconds when the task is due. Must be in the future and within
+ 50 years. Only allowed when type is `task`.
+ type: number
+ 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.
+
+ '
+ 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.
+
+ '
+ 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.
+
+ '
+ 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
+ CreateTimeOff:
+ required:
+ - name
+ - start_at
+ properties:
+ name:
+ type: string
+ description: Name of the time off
+ start_at:
+ type: number
+ description: Timestamp when the time off starts (in seconds)
+ end_at:
+ type: number
+ nullable: true
+ description: Timestamp when the time off ends (in seconds), or null if open-ended
+ auto_responder:
+ type: object
+ properties:
+ body:
+ type: string
+ description: The auto-reply message body
+ is_enabled:
+ type: boolean
+ description: Whether the auto-responder is enabled
+ is_contacts_only:
+ type: boolean
+ description: Whether the auto-responder only replies to known contacts
+ channel_ids:
+ type: array
+ description: List of channel IDs the auto-responder applies to
+ items:
+ $ref: '#/components/schemas/ResourceID'
+ 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
+ - call_transcript_added
+ - call_voicemail_transcript_added
+ 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.
+
+ '
+ 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 * ai: acting on behalf of an AI\n * api: acting on behalf of\
+ \ OAuth clients\n * application: acting on behalf of an Application\n * bulk_reply: acting\
+ \ on behalf of a Bulk Reply\n * csat: used for authoring CSAT response comments\n * integration:\
+ \ acting on behalf of an Integration\n * macro: acting on behalf of a Macro, author of comments\
+ \ and drafts\n * rule: acting on behalf of a Rule, author of comments and drafts\n * smart_csat:\
+ \ acting on behalf of a Smart CSAT\n"
+ enum:
+ - user
+ - visitor
+ - ai
+ - api
+ - application
+ - bulk_reply
+ - csat
+ - integration
+ - macro
+ - rule
+ - smart_csat
+ custom_fields:
+ description: Custom fields for this teammate
+ $ref: '#/components/schemas/CustomFieldParameter'
+ TimeOffResponse:
+ type: object
+ required:
+ - _links
+ - id
+ - name
+ - start_at
+ - auto_responder
+ properties:
+ _links:
+ type: object
+ properties:
+ self:
+ type: string
+ description: Link to the time off resource
+ example: https://yourCompany.api.frontapp.com/time_offs/vcr_1bri
+ related:
+ type: object
+ properties:
+ teammate:
+ type: string
+ description: Link to the teammate this time off belongs to
+ example: https://yourCompany.api.frontapp.com/teammates/tea_1bri
+ id:
+ type: string
+ description: Unique identifier of the time off
+ example: vcr_1bri
+ name:
+ type: string
+ description: Name of the time off
+ example: Out of office
+ start_at:
+ type: number
+ description: Timestamp when the time off starts
+ example: 1606943265.298
+ end_at:
+ type: number
+ nullable: true
+ description: Timestamp when the time off ends, or null if open-ended
+ example: 1607548065.298
+ created_at:
+ type: number
+ description: Timestamp when the time off was created
+ example: 1606943265.298
+ updated_at:
+ type: number
+ description: Timestamp when the time off was last updated
+ example: 1606943265.298
+ auto_responder:
+ type: object
+ properties:
+ is_enabled:
+ type: boolean
+ description: Whether the auto-responder is enabled
+ example: true
+ channel_ids:
+ type: array
+ description: List of channel IDs the auto-responder applies to
+ items:
+ type: string
+ example:
+ - cha_1bri
+ - cha_2bri
+ is_contacts_only:
+ type: boolean
+ description: Whether the auto-responder only replies to known contacts
+ example: false
+ body:
+ type: string
+ description: The auto-reply message body
+ example: Thanks for reaching out, I will reply when I am back.
+ 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.
+
+ For custom channels, all settings may be replaced.
+
+ For all other channels, only `undo_send_time` and `all_teammates_can_reply` may be replaced.
+
+ '
+ 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'
+ description:
+ type: string
+ nullable: true
+ maxLength: 65535
+ description: Description of the task. Only allowed on task conversations. Set to null to clear.
+ due_at:
+ type: number
+ nullable: true
+ description: Unix timestamp in seconds when the task is due. Must be in the future and within
+ 50 years. Only allowed on task conversations. Set to null to clear.
+ example: 1701292649.333
+ 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.
+
+ '
+ 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
+ UpdateTimeOff:
+ properties:
+ name:
+ type: string
+ description: Name of the time off
+ start_at:
+ type: number
+ description: Timestamp when the time off starts (in seconds)
+ end_at:
+ type: number
+ nullable: true
+ description: Timestamp when the time off ends (in seconds), or null to clear it
+ auto_responder:
+ type: object
+ properties:
+ body:
+ type: string
+ description: The auto-reply message body
+ is_enabled:
+ type: boolean
+ description: Whether the auto-responder is enabled
+ is_contacts_only:
+ type: boolean
+ description: Whether the auto-responder only replies to known contacts
+ channel_ids:
+ type: array
+ description: List of channel IDs the auto-responder applies to
+ items:
+ $ref: '#/components/schemas/ResourceID'
+ 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
+ timeOffQuery:
+ name: q
+ in: query
+ description: '[Search query object](https://dev.frontapp.com/docs/query-object-q) with the optional
+ properties `active_from` and `active_until`, 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'
+ listOfTimeOffs:
+ description: Array of time offs
+ 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/teams/tim_abc123/time_offs?page_token=9fa92a7f385fd7be43f7153055b30e6d
+ _links:
+ type: object
+ properties:
+ self:
+ type: string
+ description: Link to resource
+ example: https://yourCompany.api.frontapp.com/teams/tim_abc123/time_offs
+ _results:
+ type: array
+ items:
+ $ref: '#/components/schemas/TimeOffResponse'
+ 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'
+ time_off:
+ description: A time off
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TimeOffResponse'
+ 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+
+
+ Required 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.
+
+
+ Required 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
+
+
+ Required 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
+
+
+ Required 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
+
+
+ Required 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
+
+
+ Required 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.
+
+ The 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.
+
+
+
+ Required 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.
+
+
+ Required 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).
+
+ The report will be executed asynchronously. The response will include a link that can be used
+ to retrieve the
+
+ report status & result. Refer to the [Analytics](https://dev.frontapp.com/reference/analytics)
+ topic for details about specific metrics.
+
+
+
+ Required 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.
+
+
+ Required 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.
+
+ For more information, see the [developer docs](https://dev.frontapp.com/docs/application-triggers#/).
+
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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).
+
+
+ Required 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**.
+
+
+ Required 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).
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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).
+
+
+ Required 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
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `GET /contact_lists`.
+
+
+
+ Required 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).
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `POST /contact_lists`.
+
+
+
+ Required 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.
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `DELETE /contact_lists/{contact_list_id}`.
+
+
+
+ Required 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.
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `GET /contact_lists/{contact_list_id}/contacts`.
+
+
+
+ Required 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.
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `POST /contact_lists/{contact_list_id}/contacts`.
+
+
+
+ Required 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.
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `DELETE /contact_lists/{contact_list_id}/contacts`.
+
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.\n\
+ If 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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).
+
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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).
+
+
+
+ Required 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/task conversation
+ operationId: create-conversation
+ description: 'Create a new [conversation](https://dev.frontapp.com/reference/conversations#creating-a-new-conversation)
+ of type discussion or task. Both types only support comments. 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.
+
+
+ Required 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 customer-managed custom fields that can be attached to a Conversation.
+
+ Front-managed system fields are excluded.
+
+
+
+ Required 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.
+
+ See the [search syntax documentation](https://dev.frontapp.com/docs/search-1) for usage examples.
+
+ **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.
+
+
+
+ Required 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.
+
+
+
+ Required 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.
+
+
+ Required 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"
+
+ (in the trash) before it can be permanently deleted. This action cannot be undone.
+
+
+
+ Required 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.
+
+
+ Required 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).
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+
+ For more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.
+
+
+
+ Required 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.
+
+ For more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.
+
+
+
+ Required 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).
+
+
+ Required 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.
+
+
+ Required 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.
+
+ For private conversations, reminders can only be created and edited through the API for teammates
+ that own the conversation.
+
+ For shared conversations, reminders created and edited through the API are shared for all teammates
+ within the shared inbox(es) that the conversation belongs to.
+
+
+
+ Required 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
+
+
+ Required 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
+
+
+ Required 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.
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the fully compatible `GET /contacts/custom_fields`
+ endpoint instead.
+
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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).
+
+ Refer to the [Events](https://dev.frontapp.com/reference/events) topic for more information, including
+ sorting and filtering.
+
+
+
+ Required 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.
+
+ Refer to the [Events](https://dev.frontapp.com/reference/events) topic for more information, including
+ sorting and filtering.
+
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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).
+
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ > ⚠️ Warning
+
+ >
+
+ > When a category is deleted, all articles in the category are also deleted.
+
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+ These links include application objects; for more details, see the [Links](https://dev.frontapp.com/reference/links)
+ topic.
+
+
+
+ Required 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.
+
+
+ Required 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.
+
+ For more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.
+
+
+
+ Required 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.
+
+ For more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.
+
+
+
+ Required 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.
+
+ For more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.
+
+
+
+ Required 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).
+
+ For more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.
+
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+
+
+ Required 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
+
+
+ Required 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.
+
+
+ Required 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
+
+
+ Required 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.
+
+
+ Required 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
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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 a message template.
+
+
+ Required scope: `message_templates:write`'
+ 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:write
+ delete:
+ summary: Delete message template
+ operationId: delete-message-template
+ description: 'Delete a message template
+
+
+ Required 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
+
+
+ Required 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.
+
+
+ > ℹ️ The HTTP Header `Accept` can be used to request the message in a different format.
+
+ > 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).
+
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+
+
+ Required 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
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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).
+
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `GET /teammates/{teammate_id}/contact_lists`.
+
+
+
+ Required 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.
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `POST /teammates/{teammate_id}/contact_lists`.
+
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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).
+
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+ /teammates/{teammate_id}/time_offs:
+ get:
+ summary: List teammate time offs
+ operationId: list-teammate-time-offs
+ description: 'List the time offs of a teammate.
+
+
+ Required scope: `time_off:read`'
+ tags:
+ - Time Off
+ parameters:
+ - in: path
+ name: teammate_id
+ required: true
+ description: The teammate ID
+ schema:
+ type: string
+ default: tea_abc123
+ - $ref: '#/components/parameters/limit'
+ - $ref: '#/components/parameters/pageToken'
+ - $ref: '#/components/parameters/timeOffQuery'
+ responses:
+ '200':
+ $ref: '#/components/responses/listOfTimeOffs'
+ x-required-scopes:
+ - time_off:read
+ post:
+ summary: Create time off
+ operationId: create-time-off
+ description: 'Create a time off for a teammate.
+
+
+ Required scope: `time_off:write`'
+ tags:
+ - Time Off
+ 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_abc123
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateTimeOff'
+ responses:
+ '201':
+ $ref: '#/components/responses/time_off'
+ x-required-scopes:
+ - time_off:write
+ /teams:
+ get:
+ summary: List teams
+ operationId: list-teams
+ description: 'List the teams (workspaces) in the company.
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `GET /teams/{team_id}/contact_lists`.
+
+
+
+ Required 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).
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `POST /teams/{team_id}/contact_lists`.
+
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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).
+
+
+ Required 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}/time_offs:
+ get:
+ summary: List team time offs
+ operationId: list-team-time-offs
+ description: 'List the time offs of all teammates in a team.
+
+
+ Required scope: `time_off:read`'
+ tags:
+ - Time Off
+ parameters:
+ - in: path
+ name: team_id
+ required: true
+ description: The team ID
+ schema:
+ type: string
+ default: tim_abc123
+ - $ref: '#/components/parameters/limit'
+ - $ref: '#/components/parameters/pageToken'
+ - $ref: '#/components/parameters/timeOffQuery'
+ responses:
+ '200':
+ $ref: '#/components/responses/listOfTimeOffs'
+ x-required-scopes:
+ - time_off:read
+ /teams/{team_id}/views:
+ get:
+ summary: List team views
+ operationId: list-team-views
+ description: 'List the views of a team.
+
+
+ Required 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.
+
+
+ Required 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
+ /time_offs/{time_off_id}:
+ get:
+ summary: Get time off
+ operationId: get-time-off
+ description: 'Fetch a time off.
+
+
+ Required scope: `time_off:read`'
+ tags:
+ - Time Off
+ parameters:
+ - in: path
+ name: time_off_id
+ required: true
+ description: The time off ID
+ schema:
+ type: string
+ default: vcr_abc123
+ responses:
+ '200':
+ $ref: '#/components/responses/time_off'
+ x-required-scopes:
+ - time_off:read
+ patch:
+ summary: Update time off
+ operationId: update-time-off
+ description: 'Update a time off.
+
+
+ Required scope: `time_off:write`'
+ tags:
+ - Time Off
+ parameters:
+ - in: path
+ name: time_off_id
+ required: true
+ description: The time off ID
+ schema:
+ type: string
+ default: vcr_abc123
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UpdateTimeOff'
+ responses:
+ '204':
+ description: No content
+ x-required-scopes:
+ - time_off:write
+ delete:
+ summary: Delete time off
+ operationId: delete-time-off
+ description: 'Delete a time off.
+
+
+ Required scope: `time_off:delete`'
+ tags:
+ - Time Off
+ parameters:
+ - in: path
+ name: time_off_id
+ required: true
+ description: The time off ID
+ schema:
+ type: string
+ default: vcr_abc123
+ responses:
+ '204':
+ description: No content
+ x-required-scopes:
+ - time_off:delete
+ /views:
+ get:
+ summary: List views
+ operationId: list-views
+ description: 'List the views accessible to the authenticated token.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
diff --git a/openapi/frontapp-accounts-api-openapi.yml b/openapi/frontapp-accounts-api-openapi.yml
new file mode 100644
index 0000000..0e3cd4d
--- /dev/null
+++ b/openapi/frontapp-accounts-api-openapi.yml
@@ -0,0 +1,580 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Accounts API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Accounts
+paths:
+ /accounts:
+ get:
+ summary: List Accounts
+ operationId: list-accounts
+ description: 'List the accounts of the company.
+
+
+ Required 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.
+
+
+ Required 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/{account_id}:
+ get:
+ summary: Fetch an account
+ operationId: fetch-an-account
+ description: 'Fetches an account
+
+
+ Required 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.
+
+
+ Required 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
+
+
+ Required 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
+
+
+ Required 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
+
+
+ Required 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
+
+
+ Required 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
+components:
+ parameters:
+ sortOrder:
+ name: sort_order
+ in: query
+ description: Order by which results should be sorted
+ schema:
+ type: string
+ enum:
+ - asc
+ - desc
+ example: asc
+ sortByAccounts:
+ name: sort_by
+ in: query
+ description: Field used to sort the accounts. Either `created_at` or `updated_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
+ 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
+ responses:
+ listOfAccounts:
+ description: Array of accounts
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ account:
+ description: An Account
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AccountResponse'
+ listOfContacts:
+ description: Array of contacts
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ 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'
+ 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
+ - 'null'
+ description: URL of the Account's logo
+ example: https://yourCompany.api.frontapp.com/accounts/acc_aq/logo-1654309308278
+ description:
+ type:
+ - string
+ - 'null'
+ 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
+ - 'null'
+ 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
+ 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
+ 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
+ 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
+ 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
+ ResourceID:
+ type: string
+ 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'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-analytics-api-openapi.yml b/openapi/frontapp-analytics-api-openapi.yml
new file mode 100644
index 0000000..99df70f
--- /dev/null
+++ b/openapi/frontapp-analytics-api-openapi.yml
@@ -0,0 +1,734 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Analytics API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Analytics
+paths:
+ /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.
+
+ The 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.
+
+
+
+ Required 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.
+
+
+ Required 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).
+
+ The report will be executed asynchronously. The response will include a link that can be used to retrieve the
+
+ report status & result. Refer to the [Analytics](https://dev.frontapp.com/reference/analytics) topic for details about specific metrics.
+
+
+
+ Required 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.
+
+
+ Required 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
+components:
+ schemas:
+ 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 category
+ - Custom Field
+ TeammateIds:
+ type: object
+ required:
+ - teammate_ids
+ properties:
+ teammate_ids:
+ type: array
+ items:
+ $ref: '#/components/schemas/ResourceID'
+ 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
+ TeamIds:
+ type: object
+ required:
+ - team_ids
+ properties:
+ team_ids:
+ type: array
+ items:
+ $ref: '#/components/schemas/ResourceID'
+ AnalyticsActivitiesExportsColumns:
+ required:
+ - columns
+ type: object
+ properties:
+ columns:
+ type: array
+ description: "List of the columns to include in the export.\n\n**Fixed columns** are plain strings selected from the predefined list (e.g., `\"Message ID\"`).\n\n**Parameterized columns** require an additional parameter and must be specified as an object\nwith `name` and `id` fields. Supported parameterized prefixes:\n - `Time spent in Ticket Status` — `id` is the ticket status public API ID (e.g., `sts_123`)\n - `Transitions to Ticket Status` — `id` is the ticket status public API ID (e.g., `sts_123`)\n - `Smart QA score` — `id` is the Smart QA criteria name (e.g., `Comprehension`)\n - `Custom Field` — `id` is the custom field public API ID (e.g., `fld_456`)\n - `Updated Custom Field` — `id` is the custom field public API ID (e.g., `fld_456`)\n\nExample: `[\"Message ID\", {\"name\": \"Time spent in Ticket Status\", \"id\": \"sts_123\"}, {\"name\": \"Smart QA score\", \"id\": \"Comprehension\"}]`\n"
+ items:
+ oneOf:
+ - $ref: '#/components/schemas/AnalyticsActivitiesColumns'
+ - $ref: '#/components/schemas/AnalyticsActivitiesSmartQAParameterizedColumn'
+ - $ref: '#/components/schemas/AnalyticsActivitiesNumericParameterizedColumn'
+ 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
+ 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
+ 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
+ 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'
+ AccountIds:
+ type: object
+ required:
+ - account_ids
+ properties:
+ account_ids:
+ type: array
+ items:
+ $ref: '#/components/schemas/ResourceID'
+ 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
+ AnalyticsActivitiesNumericParameterizedColumn:
+ title: Columns with numeric parameter
+ type: object
+ required:
+ - name
+ - id
+ properties:
+ name:
+ type: string
+ enum:
+ - Time spent in Ticket Status
+ - Transitions to Ticket Status
+ - Custom Field
+ - Updated Custom Field
+ id:
+ description: Public API string ID (e.g., sts_123 for ticket statuses, fld_456 for custom fields) or legacy numeric ID
+ oneOf:
+ - type: string
+ - type: integer
+ AnalyticsScalarType:
+ type: string
+ example: number
+ enum:
+ - number
+ - percentage
+ - string
+ - duration
+ - resource
+ AnalyticsActivitiesSmartQAParameterizedColumn:
+ title: Smart QA Columns
+ type: object
+ required:
+ - name
+ - id
+ properties:
+ name:
+ type: string
+ enum:
+ - Smart QA score
+ id:
+ $ref: '#/components/schemas/AnalyticsActivitiesSmartQAScoreParameters'
+ AnalyticsActivitiesColumns:
+ title: Columns
+ 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 category
+ - Time spent in Ticket Status
+ - Transitions to Ticket Status
+ - Smart QA score
+ - Custom Field
+ - Updated Custom Field
+ 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'
+ 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
+ - 'null'
+ 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'
+ TagIds:
+ type: object
+ required:
+ - tag_ids
+ properties:
+ tag_ids:
+ type: array
+ items:
+ $ref: '#/components/schemas/ResourceID'
+ AnalyticsMessagesExportColumns:
+ required:
+ - columns
+ type: object
+ properties:
+ columns:
+ type: array
+ description: 'List of the columns to include in the export.
+
+ '
+ 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
+ ChannelIds:
+ type: object
+ required:
+ - channel_ids
+ properties:
+ channel_ids:
+ type: array
+ items:
+ $ref: '#/components/schemas/ResourceID'
+ AnalyticsScalar:
+ type: object
+ required:
+ - id
+ - type
+ - value
+ properties:
+ id:
+ $ref: '#/components/schemas/AnalyticsMetricId'
+ type:
+ $ref: '#/components/schemas/AnalyticsScalarType'
+ value:
+ $ref: '#/components/schemas/AnalyticsScalarValue'
+ InboxIds:
+ type: object
+ required:
+ - inbox_ids
+ properties:
+ inbox_ids:
+ type: array
+ items:
+ $ref: '#/components/schemas/ResourceID'
+ 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.
+ description: The value of a scalar metric.
+ ResourceID:
+ type: string
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-application-message-templates-api-openapi.yml b/openapi/frontapp-application-message-templates-api-openapi.yml
new file mode 100644
index 0000000..ce9357a
--- /dev/null
+++ b/openapi/frontapp-application-message-templates-api-openapi.yml
@@ -0,0 +1,156 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Channel Application Message Templates API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/48cgkyj15mnqc4ttp
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Application Message Templates
+paths:
+ /channels/{channel_id}/application_message_templates:
+ put:
+ summary: Sync application message template
+ operationId: sync-application-message-template
+ description: Import an application message template from an external service (such as WhatsApp or Facebook). The message template becomes available for use by the channel specified if configured as described in [this topic](https://dev.frontapp.com/update/docs/application-channel-message-templates).
+ tags:
+ - Application Message Templates
+ 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/ApplicationMessageTemplate'
+ responses:
+ '200':
+ $ref: '#/components/responses/applicationMessageTemplate'
+ '400':
+ description: Channel is not an application channel or does not support application message templates.
+ x-required-scopes:
+ - message_templates:write
+ /channels/{channel_id}/application_message_templates/{external_id}:
+ patch:
+ summary: Update application message template
+ operationId: update-application-message-template
+ description: Update an application message template that already exists in Front.
+ tags:
+ - Application Message Templates
+ 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
+ - in: path
+ name: external_id
+ required: true
+ description: The external ID of the application message template.
+ schema:
+ type: string
+ default: ext_123
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApplicationMessageTemplateEditBlob'
+ responses:
+ '200':
+ $ref: '#/components/responses/applicationMessageTemplate'
+ '400':
+ description: Channel is not an application channel or does not support application message templates.
+ x-required-scopes:
+ - message_templates:write
+components:
+ responses:
+ applicationMessageTemplate:
+ description: An application message template
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApplicationMessageTemplateResponse'
+ schemas:
+ ApplicationMessageTemplateEditBlob:
+ properties:
+ name:
+ type: string
+ description: Name of the message template.
+ blurb:
+ type: string
+ description: A limited preview of the message template content.
+ is_disabled:
+ type: boolean
+ description: Whether the message template is enabled for use in the external service.
+ status_name:
+ type: string
+ description: Either "PENDING", "APPROVED", or "REJECTED". This value helps admins understand why a template may be enabled or disabled in the external service.
+ variable_mappings:
+ type: array
+ description: List of variable mappings
+ items:
+ type: object
+ required:
+ - uid
+ - type
+ - name
+ properties:
+ uid:
+ type: string
+ description: Value of the variable
+ name:
+ type: string
+ description: Name of the variable
+ type:
+ type: string
+ description: Type of the variable
+ template_preview:
+ type: string
+ description: Preview of the template
+ ApplicationMessageTemplateResponse:
+ description: Response for an application message template.
+ type: object
+ properties:
+ template_id:
+ type: number
+ description: ID of the application message template
+ example: msg_777
+ ApplicationMessageTemplate:
+ required:
+ - external_id
+ - name
+ - blurb
+ - is_disabled
+ - status_name
+ - variable_mappings
+ - template_preview
+ allOf:
+ - $ref: '#/components/schemas/ApplicationMessageTemplateEditBlob'
+ - type: object
+ properties:
+ external_id:
+ type: string
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-applications-api-openapi.yml b/openapi/frontapp-applications-api-openapi.yml
new file mode 100644
index 0000000..d8702e1
--- /dev/null
+++ b/openapi/frontapp-applications-api-openapi.yml
@@ -0,0 +1,81 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Applications API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Applications
+paths:
+ /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.
+
+ For more information, see the [developer docs](https://dev.frontapp.com/docs/application-triggers#/).
+
+
+
+ Required 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
+components:
+ schemas:
+ 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.
+
+ If both are provided, the ID will be favored.
+
+ '
+ properties:
+ id:
+ type: string
+ description: ID of the app object
+ ext_link:
+ type: string
+ description: External link of the app object
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-attachments-api-openapi.yml b/openapi/frontapp-attachments-api-openapi.yml
new file mode 100644
index 0000000..635084d
--- /dev/null
+++ b/openapi/frontapp-attachments-api-openapi.yml
@@ -0,0 +1,160 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Attachments API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Attachments
+paths:
+ /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
+
+
+ Required 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
+ /download/{attachment_link_id}:
+ get:
+ summary: Download attachment
+ operationId: download-attachment
+ description: 'Download an attachment file.
+
+
+ Required 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
+ /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
+
+
+ Required 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}/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.
+
+
+ Required 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
+components:
+ responses:
+ 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'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-calls-api-openapi.yml b/openapi/frontapp-calls-api-openapi.yml
new file mode 100644
index 0000000..d9ad1d8
--- /dev/null
+++ b/openapi/frontapp-calls-api-openapi.yml
@@ -0,0 +1,359 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Channel Calls API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/48cgkyj15mnqc4ttp
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Calls
+paths:
+ /channels/{channel_id}/calls:
+ post:
+ summary: Create a call
+ operationId: create-call
+ description: Creates a call in Front.
+ tags:
+ - Calls
+ parameters:
+ - in: path
+ name: channel_id
+ required: true
+ description: The Channel ID.
+ schema:
+ type: string
+ default: cha_123
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateCall'
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ description: Bad Request
+ x-required-scopes:
+ - channels:write
+ /channels/{channel_id}/calls/{external_call_id}:
+ patch:
+ summary: Update call status
+ operationId: update-call
+ description: Updates the call status of a call in Front.
+ tags:
+ - Calls
+ parameters:
+ - in: path
+ name: channel_id
+ required: true
+ description: The Channel ID.
+ schema:
+ type: string
+ default: cha_123
+ - in: path
+ name: external_call_id
+ required: true
+ description: The external call ID from the provider system (same as `external_call_id` on create).
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UpdateCall'
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ description: Bad Request
+ x-required-scopes:
+ - channels:write
+ /channels/{channel_id}/calls/{external_call_id}/recording:
+ post:
+ summary: Add call recording
+ operationId: add-call-recording
+ description: 'Adds a recording to a call in Front. Send `multipart/form-data` with exactly one file in the `attachments` field, `Content-Type: audio/*`, and required `recording_type` (`call` or `voicemail`).
+
+ '
+ tags:
+ - Calls
+ parameters:
+ - in: path
+ name: channel_id
+ required: true
+ description: The Channel ID.
+ schema:
+ type: string
+ default: cha_123
+ - in: path
+ name: external_call_id
+ required: true
+ description: The external call ID from the provider system.
+ schema:
+ type: string
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ required:
+ - attachments
+ - recording_type
+ properties:
+ attachments:
+ type: string
+ format: binary
+ description: Exactly one audio file (`audio/*`).
+ recording_type:
+ type: string
+ enum:
+ - call
+ - voicemail
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ description: Bad Request
+ x-required-scopes:
+ - channels:write
+ /channels/{channel_id}/calls/{external_call_id}/summary:
+ post:
+ summary: Add call summary
+ operationId: add-call-summary
+ description: Adds a summary to a call in Front.
+ tags:
+ - Calls
+ parameters:
+ - in: path
+ name: channel_id
+ required: true
+ description: The Channel ID.
+ schema:
+ type: string
+ default: cha_123
+ - in: path
+ name: external_call_id
+ required: true
+ description: The external call ID from the provider system.
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AddCallSummary'
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ description: Bad Request
+ x-required-scopes:
+ - channels:write
+ /channels/{channel_id}/calls/{external_call_id}/transcript:
+ post:
+ summary: Add call transcript
+ operationId: add-call-transcript
+ description: Adds a transcript to a call in Front.
+ tags:
+ - Calls
+ parameters:
+ - in: path
+ name: channel_id
+ required: true
+ description: The Channel ID.
+ schema:
+ type: string
+ default: cha_123
+ - in: path
+ name: external_call_id
+ required: true
+ description: The external call ID from the provider system.
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AddCallTranscript'
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ description: Bad Request
+ x-required-scopes:
+ - channels:write
+components:
+ schemas:
+ CreateCallInbound:
+ type: object
+ required:
+ - external_call_id
+ - initial_status
+ - direction
+ - from
+ - parent_external_call_id
+ properties:
+ external_call_id:
+ type: string
+ description: Stable identifier for this call in the provider system.
+ initial_status:
+ type: string
+ enum:
+ - queued
+ - ringing
+ direction:
+ type: string
+ enum:
+ - inbound
+ description: Inbound calls must include `from` (external party who initiated). The channel is treated as the receiving side (e.g. agent or queue).
+ from:
+ $ref: '#/components/schemas/CallParty'
+ description: External party who initiated the inbound call.
+ started_at:
+ type: number
+ description: Optional Unix timestamp (ms) when the call started.
+ parent_external_call_id:
+ type: string
+ description: External ID of the parent call (e.g. where the call was transferred from). This will be used to thread the call into an existing conversation with a matching parent call ID.
+ agent_email_address:
+ type: string
+ description: Optional email of the teammate associated with the call.
+ CreateCall:
+ discriminator:
+ propertyName: direction
+ mapping:
+ inbound: '#/components/schemas/CreateCallInbound'
+ outbound: '#/components/schemas/CreateCallOutbound'
+ oneOf:
+ - $ref: '#/components/schemas/CreateCallInbound'
+ - $ref: '#/components/schemas/CreateCallOutbound'
+ properties:
+ direction:
+ type: string
+ enum:
+ - inbound
+ - outbound
+ description: Use `inbound` with required `from` (external party); use `outbound` with required `to` (callee).
+ CallParty:
+ type: object
+ required:
+ - handle
+ properties:
+ handle:
+ type: string
+ description: Party identifier compatible with the application channel contact type.
+ name:
+ type: string
+ description: Optional display name for the party.
+ TranscriptLine:
+ type: object
+ required:
+ - speaker_name
+ - content
+ - start_time_seconds
+ - speaker_type
+ properties:
+ speaker_name:
+ type: string
+ content:
+ type: string
+ start_time_seconds:
+ type: number
+ speaker_type:
+ type: string
+ enum:
+ - internal
+ - external
+ description: internal for agent or system-side speech; external for the other party.
+ UpdateCall:
+ type: object
+ required:
+ - call_status
+ properties:
+ occurred_at:
+ type: number
+ description: Optional Unix timestamp (ms) when this status change occurred.
+ call_status:
+ type: string
+ enum:
+ - queued
+ - ringing
+ - connected
+ - hold
+ - hangup
+ - abandoned
+ - missed
+ - transferred
+ agent_email_address:
+ type: string
+ description: Optional; include when the status update relates to a specific teammate.
+ CreateCallOutbound:
+ type: object
+ required:
+ - external_call_id
+ - initial_status
+ - direction
+ - to
+ - parent_external_call_id
+ properties:
+ external_call_id:
+ type: string
+ description: Stable identifier for this call in the provider system.
+ initial_status:
+ type: string
+ enum:
+ - queued
+ - ringing
+ direction:
+ type: string
+ enum:
+ - outbound
+ description: Outbound calls must include `to` (callee). The channel is treated as the originating side (e.g. agent).
+ to:
+ $ref: '#/components/schemas/CallParty'
+ description: Party being called (callee).
+ started_at:
+ type: number
+ description: Optional Unix timestamp (ms) when the call started.
+ parent_external_call_id:
+ type: string
+ description: External ID of the parent call (e.g. where the call was transferred from). This will be used to thread the call into an existing conversation with a matching parent call ID.
+ agent_email_address:
+ type: string
+ description: Optional email of the teammate associated with the call.
+ AddCallSummary:
+ type: object
+ required:
+ - content
+ properties:
+ content:
+ type: string
+ minLength: 1
+ description: Summary text for the call.
+ AddCallTranscript:
+ type: object
+ required:
+ - lines
+ properties:
+ lines:
+ type: array
+ minItems: 1
+ items:
+ $ref: '#/components/schemas/TranscriptLine'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-channels-api-openapi.yml b/openapi/frontapp-channels-api-openapi.yml
new file mode 100644
index 0000000..902a5e5
--- /dev/null
+++ b/openapi/frontapp-channels-api-openapi.yml
@@ -0,0 +1,423 @@
+openapi: 3.2.0
+info:
+ title: Frontapp Channels API
+ version: 1.0.0
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ description: 'Operations tagged Channels across 2 of this provider''s published API definitions: frontapp-channel-api.yml, frontapp-core-api.yml. Each path carries the servers of the definition it was published in.'
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Channels
+paths:
+ /channels/{channel_id}:
+ patch:
+ summary: Update Channel
+ operationId: update-channel
+ description: Update a channel.
+ 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
+ get:
+ summary: Get channel
+ operationId: get-channel
+ description: 'Fetch a channel.
+
+
+ Required 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
+ servers:
+ - url: https://api2.frontapp.com
+ /channels:
+ get:
+ summary: List channels
+ operationId: list-channels
+ description: 'List the channels of the company.
+
+
+ Required scope: `channels:read`'
+ tags:
+ - Channels
+ responses:
+ '200':
+ $ref: '#/components/responses/listOfChannels'
+ x-required-scopes:
+ - channels:read
+ servers:
+ - url: https://api2.frontapp.com
+ /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.
+
+
+ Required 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
+ servers:
+ - url: https://api2.frontapp.com
+ /inboxes/{inbox_id}/channels:
+ post:
+ summary: Create a channel
+ operationId: create-a-channel
+ description: 'Create a channel in an inbox.
+
+
+ Required 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
+ servers:
+ - url: https://api2.frontapp.com
+ /teammates/{teammate_id}/channels:
+ get:
+ summary: List teammate channels
+ operationId: list-teammate-channels
+ description: 'List the channels of a teammate.
+
+
+ Required 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
+ servers:
+ - url: https://api2.frontapp.com
+ /teams/{team_id}/channels:
+ get:
+ summary: List team channels
+ operationId: list-team-channels
+ description: 'List the channels of a team (workspace).
+
+
+ Required 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
+ servers:
+ - url: https://api2.frontapp.com
+components:
+ schemas:
+ UpdateChannel:
+ properties:
+ status:
+ type: string
+ description: Status of the channel
+ enum:
+ - offline
+ - ok
+ 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
+ - 'null'
+ 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
+ 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.
+ UpdateChannel_2:
+ 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.
+
+ For custom channels, all settings may be replaced.
+
+ For all other channels, only `undo_send_time` and `all_teammates_can_reply` may be replaced.
+
+ '
+ 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.
+ responses:
+ 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'
+ accepted:
+ description: Request accepted
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ status:
+ type: string
+ default: accepted
+ example: accepted
+ channel:
+ description: A channel
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChannelResponse'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-refined-from:
+- frontapp-channel-api.yml
+- frontapp-core-api.yml
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-comments-api-openapi.yml b/openapi/frontapp-comments-api-openapi.yml
new file mode 100644
index 0000000..dac1c62
--- /dev/null
+++ b/openapi/frontapp-comments-api-openapi.yml
@@ -0,0 +1,455 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Comments API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Comments
+paths:
+ /comments/{comment_id}:
+ get:
+ summary: Get comment
+ operationId: get-comment
+ description: 'Fetches a comment.
+
+
+ Required 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).
+
+
+ Required 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}/mentions:
+ get:
+ summary: List comment mentions
+ operationId: list-comment-mentions
+ description: 'List the teammates mentioned in a comment.
+
+
+ Required 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.
+
+
+ Required 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
+ /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).
+
+
+ Required 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.
+
+
+ Required 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
+components:
+ schemas:
+ 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 * ai: acting on behalf of an AI\n * api: acting on behalf of OAuth clients\n * application: acting on behalf of an Application\n * bulk_reply: acting on behalf of a Bulk Reply\n * csat: used for authoring CSAT response comments\n * integration: acting on behalf of an Integration\n * macro: acting on behalf of a Macro, author of comments and drafts\n * rule: acting on behalf of a Rule, author of comments and drafts\n * smart_csat: acting on behalf of a Smart CSAT\n"
+ enum:
+ - user
+ - visitor
+ - ai
+ - api
+ - application
+ - bulk_reply
+ - csat
+ - integration
+ - macro
+ - rule
+ - smart_csat
+ custom_fields:
+ description: Custom fields for this teammate
+ $ref: '#/components/schemas/CustomFieldParameter'
+ 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
+ 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
+ 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:
+ type:
+ - string
+ - 'null'
+ 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
+ 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
+ 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.
+ responses:
+ comment:
+ description: A comment
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CommentResponse'
+ 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'
+ 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'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-contact-groups-api-openapi.yml b/openapi/frontapp-contact-groups-api-openapi.yml
new file mode 100644
index 0000000..67fa863
--- /dev/null
+++ b/openapi/frontapp-contact-groups-api-openapi.yml
@@ -0,0 +1,603 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Contact Groups API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Contact Groups
+paths:
+ /contact_groups:
+ get:
+ deprecated: true
+ summary: List groups
+ operationId: list-groups
+ description: 'List the contact groups.
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `GET /contact_lists`.
+
+
+
+ Required 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).
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `POST /contact_lists`.
+
+
+
+ Required 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.
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `DELETE /contact_lists/{contact_list_id}`.
+
+
+
+ Required 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.
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `GET /contact_lists/{contact_list_id}/contacts`.
+
+
+
+ Required 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.
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `POST /contact_lists/{contact_list_id}/contacts`.
+
+
+
+ Required 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.
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `DELETE /contact_lists/{contact_list_id}/contacts`.
+
+
+
+ Required 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
+ /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.
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `GET /teammates/{teammate_id}/contact_lists`.
+
+
+
+ Required 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.
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `POST /teammates/{teammate_id}/contact_lists`.
+
+
+
+ Required 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
+ /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).
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `GET /teams/{team_id}/contact_lists`.
+
+
+
+ Required 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).
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the compatible contact list endpoints instead.
+
+ > - `POST /teams/{team_id}/contact_lists`.
+
+
+
+ Required 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
+components:
+ schemas:
+ CreateContactList:
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ type: string
+ description: Name of the contact list
+ 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'
+ 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
+ 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
+ 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
+ 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'
+ 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
+ ResourceID:
+ type: string
+ responses:
+ 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'
+ listOfContacts:
+ description: Array of contacts
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ parameters:
+ 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
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-contact-handles-api-openapi.yml b/openapi/frontapp-contact-handles-api-openapi.yml
new file mode 100644
index 0000000..0b3f07a
--- /dev/null
+++ b/openapi/frontapp-contact-handles-api-openapi.yml
@@ -0,0 +1,115 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Contact Handles API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Contact Handles
+paths:
+ /contacts/{contact_id}/handles:
+ post:
+ summary: Add contact handle
+ operationId: add-contact-handle
+ description: 'Adds a new handle to a contact.
+
+
+ Required 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.
+
+
+ Required 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
+components:
+ schemas:
+ 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
+ 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
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-contact-lists-api-openapi.yml b/openapi/frontapp-contact-lists-api-openapi.yml
new file mode 100644
index 0000000..83f7b39
--- /dev/null
+++ b/openapi/frontapp-contact-lists-api-openapi.yml
@@ -0,0 +1,494 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Contact Lists API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Contact Lists
+paths:
+ /contact_lists:
+ get:
+ summary: List contact lists
+ operationId: list-contact-lists
+ description: 'List contact lists.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+ /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.
+
+
+ Required 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.
+
+
+ Required 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
+ /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).
+
+
+ Required 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).
+
+
+ Required 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
+components:
+ schemas:
+ CreateContactList:
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ type: string
+ description: Name of the contact list
+ 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'
+ 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
+ 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
+ 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
+ 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'
+ 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
+ ResourceID:
+ type: string
+ responses:
+ 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'
+ listOfContacts:
+ description: Array of contacts
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ parameters:
+ 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
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-contact-notes-api-openapi.yml b/openapi/frontapp-contact-notes-api-openapi.yml
new file mode 100644
index 0000000..45a694f
--- /dev/null
+++ b/openapi/frontapp-contact-notes-api-openapi.yml
@@ -0,0 +1,252 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Contact Notes API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Contact Notes
+paths:
+ /contacts/{contact_id}/notes:
+ get:
+ summary: List notes
+ operationId: list-notes
+ description: 'List the notes added to a contact.
+
+
+ Required 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.
+
+
+ Required 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
+components:
+ responses:
+ 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'
+ contactNote:
+ description: A contact note
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ContactNoteResponses'
+ schemas:
+ 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
+ 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
+ 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
+ - 'null'
+ 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
+ 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 * ai: acting on behalf of an AI\n * api: acting on behalf of OAuth clients\n * application: acting on behalf of an Application\n * bulk_reply: acting on behalf of a Bulk Reply\n * csat: used for authoring CSAT response comments\n * integration: acting on behalf of an Integration\n * macro: acting on behalf of a Macro, author of comments and drafts\n * rule: acting on behalf of a Rule, author of comments and drafts\n * smart_csat: acting on behalf of a Smart CSAT\n"
+ enum:
+ - user
+ - visitor
+ - ai
+ - api
+ - application
+ - bulk_reply
+ - csat
+ - integration
+ - macro
+ - rule
+ - smart_csat
+ custom_fields:
+ description: Custom fields for this teammate
+ $ref: '#/components/schemas/CustomFieldParameter'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-contacts-api-openapi.yml b/openapi/frontapp-contacts-api-openapi.yml
new file mode 100644
index 0000000..4eb0a61
--- /dev/null
+++ b/openapi/frontapp-contacts-api-openapi.yml
@@ -0,0 +1,1024 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Contacts API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Contacts
+paths:
+ /contacts:
+ get:
+ summary: List contacts
+ operationId: list-contacts
+ description: 'List the contacts of the company.
+
+
+ Required 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.
+
+
+ Required 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/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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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).
+
+
+
+ Required 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
+ /teammates/{teammate_id}/contacts:
+ get:
+ summary: List teammate contacts
+ operationId: list-teammate-contacts
+ description: 'List the contacts of a teammate.
+
+
+ Required 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.
+
+
+ Required 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
+ /teams/{team_id}/contacts:
+ get:
+ summary: List team contacts
+ operationId: list-team-contacts
+ description: 'List the contacts of a team (workspace).
+
+
+ Required 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).
+
+
+ Required 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
+components:
+ responses:
+ listOfConversations:
+ description: Array of conversations
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ contact:
+ description: A contact
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ContactResponse'
+ listOfContacts:
+ description: Array of contacts
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ parameters:
+ 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
+ sortByCards:
+ name: sort_by
+ in: query
+ description: Field used to sort the contacts. Either `created_at` or `updated_at`.
+ 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
+ sortOrder:
+ name: sort_order
+ in: query
+ description: Order by which results should be sorted
+ schema:
+ type: string
+ enum:
+ - asc
+ - desc
+ example: asc
+ schemas:
+ 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 * ai: acting on behalf of an AI\n * api: acting on behalf of OAuth clients\n * application: acting on behalf of an Application\n * bulk_reply: acting on behalf of a Bulk Reply\n * csat: used for authoring CSAT response comments\n * integration: acting on behalf of an Integration\n * macro: acting on behalf of a Macro, author of comments and drafts\n * rule: acting on behalf of a Rule, author of comments and drafts\n * smart_csat: acting on behalf of a Smart CSAT\n"
+ enum:
+ - user
+ - visitor
+ - ai
+ - api
+ - application
+ - bulk_reply
+ - csat
+ - integration
+ - macro
+ - rule
+ - smart_csat
+ custom_fields:
+ description: Custom fields for this teammate
+ $ref: '#/components/schemas/CustomFieldParameter'
+ 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
+ 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'
+ RecipientResponse:
+ type: object
+ required:
+ - _links
+ - name
+ - handle
+ - role
+ properties:
+ _links:
+ type: object
+ properties:
+ related:
+ type: object
+ properties:
+ contact:
+ type:
+ - string
+ - 'null'
+ description: Link to recipient contact
+ example: https://yourCompany.api.frontapp.com/contacts/crd_2njtoem
+ name:
+ type:
+ - string
+ - 'null'
+ 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
+ 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
+ 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
+ ConversationResponse:
+ type: object
+ required:
+ - _links
+ - id
+ - type
+ - 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
+ type:
+ type: string
+ description: Type of the conversation
+ enum:
+ - conversation
+ - discussion
+ - task
+ example: discussion
+ 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:
+ $ref: '#/components/schemas/TeammateResponse'
+ description: Partial representation of the teammate assigned to the conversation
+ recipient:
+ $ref: '#/components/schemas/RecipientResponse'
+ description: Main recipient of the conversation
+ tags:
+ type: array
+ description: List of the tags for this conversation
+ items:
+ $ref: '#/components/schemas/TagResponse'
+ links:
+ type: array
+ description: List of the links for this conversation
+ items:
+ $ref: '#/components/schemas/LinkResponse'
+ 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'
+ description:
+ type:
+ - string
+ - 'null'
+ description: Description of the task. Only present on task conversations.
+ due_at:
+ type:
+ - number
+ - 'null'
+ description: Unix timestamp in seconds when the task is due. Only present on task conversations.
+ example: 1701292649.333
+ 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
+ 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'
+ 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'
+ 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
+ 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
+ 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
+ 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
+ - 'null'
+ description: Link to tag owner
+ example: https://yourCompany.api.frontapp.com/teammates/tea_6jydq
+ parent_tag:
+ type:
+ - string
+ - 'null'
+ description: Link to parent tag
+ example: https://yourCompany.api.frontapp.com/tags/tag_3h07ym
+ children:
+ type:
+ - string
+ - 'null'
+ 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
+ - 'null'
+ description: Description of the tag
+ example: Sitting on your biscuit, never having to risk it
+ highlight:
+ type:
+ - string
+ - 'null'
+ 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
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-conversations-api-openapi.yml b/openapi/frontapp-conversations-api-openapi.yml
new file mode 100644
index 0000000..cdf0a79
--- /dev/null
+++ b/openapi/frontapp-conversations-api-openapi.yml
@@ -0,0 +1,1892 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Conversations API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Conversations
+paths:
+ /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).
+
+
+
+ Required 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/task conversation
+ operationId: create-conversation
+ description: 'Create a new [conversation](https://dev.frontapp.com/reference/conversations#creating-a-new-conversation) of type discussion or task. Both types only support comments. 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.
+
+
+ Required 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/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.
+
+ See the [search syntax documentation](https://dev.frontapp.com/docs/search-1) for usage examples.
+
+ **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.
+
+
+
+ Required 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.
+
+
+
+ Required 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.
+
+
+ Required 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"
+
+ (in the trash) before it can be permanently deleted. This action cannot be undone.
+
+
+
+ Required 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.
+
+
+ Required 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}/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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+
+ For more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.
+
+
+
+ Required 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.
+
+ For more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.
+
+
+
+ Required 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).
+
+
+ Required 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
+ /conversations/{conversation_id}/reminders:
+ patch:
+ summary: Update conversation reminders
+ operationId: update-conversation-reminders
+ description: 'Snooze or unsnooze a conversation for the provided user.
+
+ For private conversations, reminders can only be created and edited through the API for teammates that own the conversation.
+
+ For shared conversations, reminders created and edited through the API are shared for all teammates within the shared inbox(es) that the conversation belongs to.
+
+
+
+ Required 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
+
+
+ Required 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
+
+
+ Required 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
+components:
+ schemas:
+ 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.
+ 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'
+ description:
+ type:
+ - string
+ - 'null'
+ maxLength: 65535
+ description: Description of the task. Only allowed on task conversations. Set to null to clear.
+ due_at:
+ type:
+ - number
+ - 'null'
+ description: Unix timestamp in seconds when the task is due. Must be in the future and within 50 years. Only allowed on task conversations. Set to null to clear.
+ example: 1701292649.333
+ 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'
+ 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 * ai: acting on behalf of an AI\n * api: acting on behalf of OAuth clients\n * application: acting on behalf of an Application\n * bulk_reply: acting on behalf of a Bulk Reply\n * csat: used for authoring CSAT response comments\n * integration: acting on behalf of an Integration\n * macro: acting on behalf of a Macro, author of comments and drafts\n * rule: acting on behalf of a Rule, author of comments and drafts\n * smart_csat: acting on behalf of a Smart CSAT\n"
+ enum:
+ - user
+ - visitor
+ - ai
+ - api
+ - application
+ - bulk_reply
+ - csat
+ - integration
+ - macro
+ - rule
+ - smart_csat
+ custom_fields:
+ description: Custom fields for this teammate
+ $ref: '#/components/schemas/CustomFieldParameter'
+ 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
+ - 'null'
+ 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
+ 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
+ RecipientResponse:
+ type: object
+ required:
+ - _links
+ - name
+ - handle
+ - role
+ properties:
+ _links:
+ type: object
+ properties:
+ related:
+ type: object
+ properties:
+ contact:
+ type:
+ - string
+ - 'null'
+ description: Link to recipient contact
+ example: https://yourCompany.api.frontapp.com/contacts/crd_2njtoem
+ name:
+ type:
+ - string
+ - 'null'
+ 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
+ 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
+ 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.
+ 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
+ - call_transcript_added
+ - call_voicemail_transcript_added
+ 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
+ ConversationResponse:
+ type: object
+ required:
+ - _links
+ - id
+ - type
+ - 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
+ type:
+ type: string
+ description: Type of the conversation
+ enum:
+ - conversation
+ - discussion
+ - task
+ example: discussion
+ 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:
+ $ref: '#/components/schemas/TeammateResponse'
+ description: Partial representation of the teammate assigned to the conversation
+ recipient:
+ $ref: '#/components/schemas/RecipientResponse'
+ description: Main recipient of the conversation
+ tags:
+ type: array
+ description: List of the tags for this conversation
+ items:
+ $ref: '#/components/schemas/TagResponse'
+ links:
+ type: array
+ description: List of the links for this conversation
+ items:
+ $ref: '#/components/schemas/LinkResponse'
+ 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'
+ description:
+ type:
+ - string
+ - 'null'
+ description: Description of the task. Only present on task conversations.
+ due_at:
+ type:
+ - number
+ - 'null'
+ description: Unix timestamp in seconds when the task is due. Only present on task conversations.
+ example: 1701292649.333
+ 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
+ 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'
+ 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
+ - 'null'
+ description: Link to rule owner
+ example: null
+ 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
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ CreateConversation:
+ required:
+ - type
+ - subject
+ properties:
+ type:
+ description: Conversation type
+ type: string
+ enum:
+ - discussion
+ - task
+ 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. Used as the title for tasks.
+ type: string
+ comment:
+ description: Details for the starter comment. Required for discussions, optional for tasks.
+ 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
+ description:
+ description: Description of the task. Only allowed when type is `task`.
+ type: string
+ maxLength: 65535
+ due_at:
+ description: Unix timestamp in seconds when the task is due. Must be in the future and within 50 years. Only allowed when type is `task`.
+ type: number
+ custom_fields:
+ description: Custom fields for this conversation
+ $ref: '#/components/schemas/CustomFieldParameter'
+ 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
+ TagIds:
+ type: object
+ required:
+ - tag_ids
+ properties:
+ tag_ids:
+ type: array
+ items:
+ $ref: '#/components/schemas/ResourceID'
+ 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:
+ type:
+ - string
+ - 'null'
+ 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
+ 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'
+ ResourceID:
+ type: string
+ 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
+ - 'null'
+ description: Link to tag owner
+ example: https://yourCompany.api.frontapp.com/teammates/tea_6jydq
+ parent_tag:
+ type:
+ - string
+ - 'null'
+ description: Link to parent tag
+ example: https://yourCompany.api.frontapp.com/tags/tag_3h07ym
+ children:
+ type:
+ - string
+ - 'null'
+ 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
+ - 'null'
+ description: Description of the tag
+ example: Sitting on your biscuit, never having to risk it
+ highlight:
+ type:
+ - string
+ - 'null'
+ 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
+ responses:
+ listOfConversations:
+ description: Array of conversations
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ 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'
+ conversation:
+ description: A conversation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ConversationResponse'
+ 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'
+ listOfConversationSearchResults:
+ description: Array of conversation search results
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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
+ - 'null'
+ 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'
+ listOfMessages:
+ description: Array of messages
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ parameters:
+ sortByConversationMessages:
+ name: sort_by
+ in: query
+ description: Field used to sort the messages. Only supports `created_at`.
+ 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
+ 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
+ sortByConversations:
+ name: sort_by
+ in: query
+ description: Field used to sort the conversations. Only supports `date`.
+ schema:
+ type: string
+ 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
+ sortOrder:
+ name: sort_order
+ in: query
+ description: Order by which results should be sorted
+ schema:
+ type: string
+ enum:
+ - asc
+ - desc
+ example: asc
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-custom-fields-api-openapi.yml b/openapi/frontapp-custom-fields-api-openapi.yml
new file mode 100644
index 0000000..f21c185
--- /dev/null
+++ b/openapi/frontapp-custom-fields-api-openapi.yml
@@ -0,0 +1,222 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Custom Fields API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Custom Fields
+paths:
+ /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.
+
+
+ Required scope: `custom_fields:read`'
+ tags:
+ - Custom Fields
+ responses:
+ '200':
+ $ref: '#/components/responses/listOfCustomFields'
+ x-required-scopes:
+ - custom_fields:read
+ /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.
+
+
+ Required scope: `custom_fields:read`'
+ tags:
+ - Custom Fields
+ responses:
+ '200':
+ $ref: '#/components/responses/listOfCustomFields'
+ x-required-scopes:
+ - custom_fields:read
+ /conversations/custom_fields:
+ get:
+ summary: List Conversation's custom fields
+ operationId: list-conversation-custom-fields
+ description: 'Lists customer-managed custom fields that can be attached to a Conversation.
+
+ Front-managed system fields are excluded.
+
+
+
+ Required scope: `custom_fields:read`'
+ tags:
+ - Custom Fields
+ responses:
+ '200':
+ $ref: '#/components/responses/listOfCustomFields'
+ x-required-scopes:
+ - custom_fields:read
+ /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.
+
+
+ > ⚠️ Deprecated endpoint
+
+ >
+
+ > This endpoint has been deprecated. Please use the fully compatible `GET /contacts/custom_fields` endpoint instead.
+
+
+
+ Required scope: `custom_fields:read`'
+ tags:
+ - Custom Fields
+ responses:
+ '200':
+ $ref: '#/components/responses/listOfCustomFields'
+ x-required-scopes:
+ - custom_fields:read
+ /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.
+
+
+ Required scope: `custom_fields:read`'
+ tags:
+ - Custom Fields
+ responses:
+ '200':
+ $ref: '#/components/responses/listOfCustomFields'
+ x-required-scopes:
+ - custom_fields:read
+ /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.
+
+ For more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.
+
+
+
+ Required scope: `custom_fields:read`'
+ tags:
+ - Custom Fields
+ responses:
+ '200':
+ $ref: '#/components/responses/listOfCustomFields'
+ x-required-scopes:
+ - custom_fields: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.
+
+
+ Required scope: `custom_fields:read`'
+ tags:
+ - Custom Fields
+ responses:
+ '200':
+ $ref: '#/components/responses/listOfCustomFields'
+ x-required-scopes:
+ - custom_fields:read
+components:
+ schemas:
+ 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
+ responses:
+ 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'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-drafts-api-openapi.yml b/openapi/frontapp-drafts-api-openapi.yml
new file mode 100644
index 0000000..2cb1ce1
--- /dev/null
+++ b/openapi/frontapp-drafts-api-openapi.yml
@@ -0,0 +1,690 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Drafts API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Drafts
+paths:
+ /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).
+
+
+ Required 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
+ /conversations/{conversation_id}/drafts:
+ get:
+ summary: List conversation drafts
+ operationId: list-conversation-drafts
+ description: 'List the drafts in a conversation.
+
+
+ Required 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.
+
+
+ Required 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
+ /drafts/{draft_id}:
+ delete:
+ summary: Delete draft
+ operationId: delete-draft
+ description: 'Delete a draft message.
+
+
+ Required 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.
+
+
+ Required 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
+components:
+ schemas:
+ 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
+ - 'null'
+ 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
+ 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
+ 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).
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ RecipientResponse:
+ type: object
+ required:
+ - _links
+ - name
+ - handle
+ - role
+ properties:
+ _links:
+ type: object
+ properties:
+ related:
+ type: object
+ properties:
+ contact:
+ type:
+ - string
+ - 'null'
+ description: Link to recipient contact
+ example: https://yourCompany.api.frontapp.com/contacts/crd_2njtoem
+ name:
+ type:
+ - string
+ - 'null'
+ 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
+ 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
+ DeleteDraft:
+ required:
+ - version
+ properties:
+ version:
+ type: string
+ description: Version of the draft
+ 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
+ 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;
+ 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 * ai: acting on behalf of an AI\n * api: acting on behalf of OAuth clients\n * application: acting on behalf of an Application\n * bulk_reply: acting on behalf of a Bulk Reply\n * csat: used for authoring CSAT response comments\n * integration: acting on behalf of an Integration\n * macro: acting on behalf of a Macro, author of comments and drafts\n * rule: acting on behalf of a Rule, author of comments and drafts\n * smart_csat: acting on behalf of a Smart CSAT\n"
+ enum:
+ - user
+ - visitor
+ - ai
+ - api
+ - application
+ - bulk_reply
+ - csat
+ - integration
+ - macro
+ - rule
+ - smart_csat
+ custom_fields:
+ description: Custom fields for this teammate
+ $ref: '#/components/schemas/CustomFieldParameter'
+ responses:
+ listOfMessages:
+ description: Array of messages
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ message:
+ description: A message
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/MessageResponse'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-events-api-openapi.yml b/openapi/frontapp-events-api-openapi.yml
new file mode 100644
index 0000000..fc957e7
--- /dev/null
+++ b/openapi/frontapp-events-api-openapi.yml
@@ -0,0 +1,1130 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Events API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Events
+paths:
+ /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).
+
+ Refer to the [Events](https://dev.frontapp.com/reference/events) topic for more information, including sorting and filtering.
+
+
+
+ Required 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.
+
+ Refer to the [Events](https://dev.frontapp.com/reference/events) topic for more information, including sorting and filtering.
+
+
+
+ Required 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
+components:
+ schemas:
+ 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 * ai: acting on behalf of an AI\n * api: acting on behalf of OAuth clients\n * application: acting on behalf of an Application\n * bulk_reply: acting on behalf of a Bulk Reply\n * csat: used for authoring CSAT response comments\n * integration: acting on behalf of an Integration\n * macro: acting on behalf of a Macro, author of comments and drafts\n * rule: acting on behalf of a Rule, author of comments and drafts\n * smart_csat: acting on behalf of a Smart CSAT\n"
+ enum:
+ - user
+ - visitor
+ - ai
+ - api
+ - application
+ - bulk_reply
+ - csat
+ - integration
+ - macro
+ - rule
+ - smart_csat
+ custom_fields:
+ description: Custom fields for this teammate
+ $ref: '#/components/schemas/CustomFieldParameter'
+ 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
+ - 'null'
+ 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
+ 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
+ RecipientResponse:
+ type: object
+ required:
+ - _links
+ - name
+ - handle
+ - role
+ properties:
+ _links:
+ type: object
+ properties:
+ related:
+ type: object
+ properties:
+ contact:
+ type:
+ - string
+ - 'null'
+ description: Link to recipient contact
+ example: https://yourCompany.api.frontapp.com/contacts/crd_2njtoem
+ name:
+ type:
+ - string
+ - 'null'
+ 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
+ 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
+ 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
+ - call_transcript_added
+ - call_voicemail_transcript_added
+ 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
+ ConversationResponse:
+ type: object
+ required:
+ - _links
+ - id
+ - type
+ - 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
+ type:
+ type: string
+ description: Type of the conversation
+ enum:
+ - conversation
+ - discussion
+ - task
+ example: discussion
+ 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:
+ $ref: '#/components/schemas/TeammateResponse'
+ description: Partial representation of the teammate assigned to the conversation
+ recipient:
+ $ref: '#/components/schemas/RecipientResponse'
+ description: Main recipient of the conversation
+ tags:
+ type: array
+ description: List of the tags for this conversation
+ items:
+ $ref: '#/components/schemas/TagResponse'
+ links:
+ type: array
+ description: List of the links for this conversation
+ items:
+ $ref: '#/components/schemas/LinkResponse'
+ 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'
+ description:
+ type:
+ - string
+ - 'null'
+ description: Description of the task. Only present on task conversations.
+ due_at:
+ type:
+ - number
+ - 'null'
+ description: Unix timestamp in seconds when the task is due. Only present on task conversations.
+ example: 1701292649.333
+ 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
+ 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'
+ 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
+ - 'null'
+ description: Link to rule owner
+ example: null
+ 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
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ 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
+ 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:
+ type:
+ - string
+ - 'null'
+ 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
+ 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'
+ 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
+ - 'null'
+ description: Link to tag owner
+ example: https://yourCompany.api.frontapp.com/teammates/tea_6jydq
+ parent_tag:
+ type:
+ - string
+ - 'null'
+ description: Link to parent tag
+ example: https://yourCompany.api.frontapp.com/tags/tag_3h07ym
+ children:
+ type:
+ - string
+ - 'null'
+ 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
+ - 'null'
+ description: Description of the tag
+ example: Sitting on your biscuit, never having to risk it
+ highlight:
+ type:
+ - string
+ - 'null'
+ 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
+ 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
+ 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
+ sortOrder:
+ name: sort_order
+ in: query
+ description: Order by which results should be sorted
+ schema:
+ type: string
+ enum:
+ - asc
+ - desc
+ example: asc
+ sortByActivities:
+ name: sort_by
+ in: query
+ description: Field used to sort the events. Only supports `created_at`.
+ schema:
+ type: string
+ responses:
+ event:
+ description: An event
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/EventResponse'
+ listOfEvents:
+ description: Array of events
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-inboxes-api-openapi.yml b/openapi/frontapp-inboxes-api-openapi.yml
new file mode 100644
index 0000000..d203cb9
--- /dev/null
+++ b/openapi/frontapp-inboxes-api-openapi.yml
@@ -0,0 +1,1078 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Inboxes API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Inboxes
+paths:
+ /inboxes:
+ get:
+ summary: List inboxes
+ operationId: list-inboxes
+ description: 'List the inboxes of the company.
+
+
+ Required 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.
+
+
+ Required 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/{inbox_id}:
+ get:
+ summary: Get inbox
+ operationId: get-inbox
+ description: 'Fetch an inbox.
+
+
+ Required 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.
+
+
+ Required 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
+ /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).
+
+
+
+ Required 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}/teammates:
+ get:
+ summary: List inbox access
+ operationId: list-inbox-access
+ description: 'List the teammates with access to an inbox.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+ /teammates/{teammate_id}/private_inboxes:
+ get:
+ summary: List teammate private inboxes
+ operationId: list-teammate-private-inboxes
+ description: 'List the private inboxes of a teammate.
+
+
+ Required 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.
+
+
+ Required 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
+ /teams/{team_id}/inboxes:
+ get:
+ summary: List team inboxes
+ operationId: list-team-inboxes
+ description: 'List the inboxes belonging to a team (workspace).
+
+
+ Required 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).
+
+
+ Required 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
+components:
+ responses:
+ inbox:
+ description: An inbox
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/InboxResponse'
+ listOfConversations:
+ description: Array of conversations
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ 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'
+ 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'
+ 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'
+ schemas:
+ 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 * ai: acting on behalf of an AI\n * api: acting on behalf of OAuth clients\n * application: acting on behalf of an Application\n * bulk_reply: acting on behalf of a Bulk Reply\n * csat: used for authoring CSAT response comments\n * integration: acting on behalf of an Integration\n * macro: acting on behalf of a Macro, author of comments and drafts\n * rule: acting on behalf of a Rule, author of comments and drafts\n * smart_csat: acting on behalf of a Smart CSAT\n"
+ enum:
+ - user
+ - visitor
+ - ai
+ - api
+ - application
+ - bulk_reply
+ - csat
+ - integration
+ - macro
+ - rule
+ - smart_csat
+ custom_fields:
+ description: Custom fields for this teammate
+ $ref: '#/components/schemas/CustomFieldParameter'
+ 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
+ RecipientResponse:
+ type: object
+ required:
+ - _links
+ - name
+ - handle
+ - role
+ properties:
+ _links:
+ type: object
+ properties:
+ related:
+ type: object
+ properties:
+ contact:
+ type:
+ - string
+ - 'null'
+ description: Link to recipient contact
+ example: https://yourCompany.api.frontapp.com/contacts/crd_2njtoem
+ name:
+ type:
+ - string
+ - 'null'
+ 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
+ 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'
+ 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
+ - 'null'
+ 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
+ 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'
+ ConversationResponse:
+ type: object
+ required:
+ - _links
+ - id
+ - type
+ - 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
+ type:
+ type: string
+ description: Type of the conversation
+ enum:
+ - conversation
+ - discussion
+ - task
+ example: discussion
+ 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:
+ $ref: '#/components/schemas/TeammateResponse'
+ description: Partial representation of the teammate assigned to the conversation
+ recipient:
+ $ref: '#/components/schemas/RecipientResponse'
+ description: Main recipient of the conversation
+ tags:
+ type: array
+ description: List of the tags for this conversation
+ items:
+ $ref: '#/components/schemas/TagResponse'
+ links:
+ type: array
+ description: List of the links for this conversation
+ items:
+ $ref: '#/components/schemas/LinkResponse'
+ 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'
+ description:
+ type:
+ - string
+ - 'null'
+ description: Description of the task. Only present on task conversations.
+ due_at:
+ type:
+ - number
+ - 'null'
+ description: Unix timestamp in seconds when the task is due. Only present on task conversations.
+ example: 1701292649.333
+ 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
+ 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'
+ 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
+ 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'
+ 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'
+ ResourceID:
+ type: string
+ 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
+ - 'null'
+ description: Link to tag owner
+ example: https://yourCompany.api.frontapp.com/teammates/tea_6jydq
+ parent_tag:
+ type:
+ - string
+ - 'null'
+ description: Link to parent tag
+ example: https://yourCompany.api.frontapp.com/tags/tag_3h07ym
+ children:
+ type:
+ - string
+ - 'null'
+ 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
+ - 'null'
+ description: Description of the tag
+ example: Sitting on your biscuit, never having to risk it
+ highlight:
+ type:
+ - string
+ - 'null'
+ 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
+ parameters:
+ 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
+ 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
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-knowledge-base-articles-api-openapi.yml b/openapi/frontapp-knowledge-base-articles-api-openapi.yml
new file mode 100644
index 0000000..42c1ef9
--- /dev/null
+++ b/openapi/frontapp-knowledge-base-articles-api-openapi.yml
@@ -0,0 +1,548 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Knowledge Base Articles API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Knowledge Base Articles
+paths:
+ /knowledge_base_articles/{article_id}:
+ get:
+ summary: Get a knowledge base article
+ operationId: get-a-knowledge-base-article
+ description: 'Fetches a knowledge base article.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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}/articles:
+ get:
+ summary: List articles in a category
+ operationId: list-articles-in-a-category
+ description: 'List articles in a category.
+
+
+ Required 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_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
+
+
+ Required 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
+components:
+ responses:
+ knowledgeBaseArticle:
+ description: A knowledge base article with content
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/KnowledgeBaseArticleResponse'
+ listOfKnowledgeBaseArticles:
+ description: Array of knowledge base articles
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ knowledgeBaseArticleSlim:
+ description: A knowledge base article
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/KnowledgeBaseArticleSlimResponse'
+ 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'
+ schemas:
+ 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
+ - 'null'
+ 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
+ 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
+ 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
+ parameters:
+ 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
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-knowledge-base-categories-api-openapi.yml b/openapi/frontapp-knowledge-base-categories-api-openapi.yml
new file mode 100644
index 0000000..9871f1c
--- /dev/null
+++ b/openapi/frontapp-knowledge-base-categories-api-openapi.yml
@@ -0,0 +1,416 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Knowledge Base Categories API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Knowledge Base Categories
+paths:
+ /knowledge_base_categories/{category_id}:
+ get:
+ summary: Get a knowledge base category
+ operationId: get-a-knowledge-base-category
+ description: 'Fetches a knowledge base category.
+
+
+ Required 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.
+
+
+ > ⚠️ Warning
+
+ >
+
+ > When a category is deleted, all articles in the category are also deleted.
+
+
+
+ Required 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}/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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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/{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.
+
+
+ Required 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
+components:
+ schemas:
+ 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
+ - 'null'
+ 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
+ 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
+ - 'null'
+ 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
+ - 'null'
+ description: Category name
+ example: Getting started
+ description:
+ type:
+ - string
+ - 'null'
+ 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
+ KnowledgeBaseCategoryPatch:
+ type: object
+ properties:
+ name:
+ type: string
+ description: Name of the knowledge base category
+ description:
+ type: string
+ description: Description of the knowledge base category
+ responses:
+ 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'
+ listOfKnowledgeBaseCategories:
+ description: Array of knowledge base categories
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ parameters:
+ 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
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-knowledge-bases-api-openapi.yml b/openapi/frontapp-knowledge-bases-api-openapi.yml
new file mode 100644
index 0000000..25d4803
--- /dev/null
+++ b/openapi/frontapp-knowledge-bases-api-openapi.yml
@@ -0,0 +1,758 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Knowledge Bases API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Knowledge Bases
+paths:
+ /knowledge_bases:
+ get:
+ summary: List knowledge bases
+ operationId: list-knowledge-bases
+ description: 'List the knowledge bases of the company.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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:
+ 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.
+
+
+ Required 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:
+ 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+components:
+ responses:
+ knowledgeBaseArticle:
+ description: A knowledge base article with content
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/KnowledgeBaseArticleResponse'
+ knowledgeBaseCategory:
+ description: A knowledge base category with content
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/KnowledgeBaseCategoryResponse'
+ 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'
+ knowledgeBaseSlim:
+ description: A knowledge base
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/KnowledgeBaseSlimResponse'
+ knowledgeBase:
+ description: A knowledge base with content
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/KnowledgeBaseResponse'
+ schemas:
+ 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
+ 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
+ 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
+ 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
+ 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
+ KnowledgeBasePatch:
+ type: object
+ properties:
+ name:
+ type: string
+ description: Name of the knowledge base
+ 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
+ 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
+ - 'null'
+ 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
+ - 'null'
+ description: Category name
+ example: Getting started
+ description:
+ type:
+ - string
+ - 'null'
+ 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
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-links-api-openapi.yml b/openapi/frontapp-links-api-openapi.yml
new file mode 100644
index 0000000..b2ee753
--- /dev/null
+++ b/openapi/frontapp-links-api-openapi.yml
@@ -0,0 +1,735 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Links API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Links
+paths:
+ /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.
+
+ These links include application objects; for more details, see the [Links](https://dev.frontapp.com/reference/links) topic.
+
+
+
+ Required 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.
+
+
+ Required 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/{link_id}:
+ get:
+ summary: Get link
+ operationId: get-link
+ description: 'Fetch a link.
+
+ For more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.
+
+
+
+ Required 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.
+
+ For more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.
+
+
+
+ Required 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).
+
+ For more information on links, see the [Links](https://dev.frontapp.com/reference/links) topic.
+
+
+
+ Required 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
+components:
+ schemas:
+ 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
+ UpdateLink:
+ type: object
+ properties:
+ name:
+ type: string
+ description: Name of the link
+ 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 * ai: acting on behalf of an AI\n * api: acting on behalf of OAuth clients\n * application: acting on behalf of an Application\n * bulk_reply: acting on behalf of a Bulk Reply\n * csat: used for authoring CSAT response comments\n * integration: acting on behalf of an Integration\n * macro: acting on behalf of a Macro, author of comments and drafts\n * rule: acting on behalf of a Rule, author of comments and drafts\n * smart_csat: acting on behalf of a Smart CSAT\n"
+ enum:
+ - user
+ - visitor
+ - ai
+ - api
+ - application
+ - bulk_reply
+ - csat
+ - integration
+ - macro
+ - rule
+ - smart_csat
+ custom_fields:
+ description: Custom fields for this teammate
+ $ref: '#/components/schemas/CustomFieldParameter'
+ 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
+ RecipientResponse:
+ type: object
+ required:
+ - _links
+ - name
+ - handle
+ - role
+ properties:
+ _links:
+ type: object
+ properties:
+ related:
+ type: object
+ properties:
+ contact:
+ type:
+ - string
+ - 'null'
+ description: Link to recipient contact
+ example: https://yourCompany.api.frontapp.com/contacts/crd_2njtoem
+ name:
+ type:
+ - string
+ - 'null'
+ 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
+ ConversationResponse:
+ type: object
+ required:
+ - _links
+ - id
+ - type
+ - 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
+ type:
+ type: string
+ description: Type of the conversation
+ enum:
+ - conversation
+ - discussion
+ - task
+ example: discussion
+ 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:
+ $ref: '#/components/schemas/TeammateResponse'
+ description: Partial representation of the teammate assigned to the conversation
+ recipient:
+ $ref: '#/components/schemas/RecipientResponse'
+ description: Main recipient of the conversation
+ tags:
+ type: array
+ description: List of the tags for this conversation
+ items:
+ $ref: '#/components/schemas/TagResponse'
+ links:
+ type: array
+ description: List of the links for this conversation
+ items:
+ $ref: '#/components/schemas/LinkResponse'
+ 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'
+ description:
+ type:
+ - string
+ - 'null'
+ description: Description of the task. Only present on task conversations.
+ due_at:
+ type:
+ - number
+ - 'null'
+ description: Unix timestamp in seconds when the task is due. Only present on task conversations.
+ example: 1701292649.333
+ 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
+ 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'
+ 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
+ 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
+ - 'null'
+ description: Link to tag owner
+ example: https://yourCompany.api.frontapp.com/teammates/tea_6jydq
+ parent_tag:
+ type:
+ - string
+ - 'null'
+ description: Link to parent tag
+ example: https://yourCompany.api.frontapp.com/tags/tag_3h07ym
+ children:
+ type:
+ - string
+ - 'null'
+ 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
+ - 'null'
+ description: Description of the tag
+ example: Sitting on your biscuit, never having to risk it
+ highlight:
+ type:
+ - string
+ - 'null'
+ 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
+ responses:
+ listOfConversations:
+ description: Array of conversations
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ listOfLinks:
+ description: Array of Links
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ link:
+ description: A link
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/LinkResponse'
+ parameters:
+ 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
+ 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
+ sortByLinks:
+ name: sort_by
+ in: query
+ description: Field used to sort the links. Only supports `id`.
+ 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
+ sortByConversations:
+ name: sort_by
+ in: query
+ description: Field used to sort the conversations. Only supports `date`.
+ schema:
+ type: string
+ 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
+ sortOrder:
+ name: sort_order
+ in: query
+ description: Order by which results should be sorted
+ schema:
+ type: string
+ enum:
+ - asc
+ - desc
+ example: asc
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-message-template-folders-api-openapi.yml b/openapi/frontapp-message-template-folders-api-openapi.yml
new file mode 100644
index 0000000..3ba422c
--- /dev/null
+++ b/openapi/frontapp-message-template-folders-api-openapi.yml
@@ -0,0 +1,454 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Message Template Folders API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Message Template Folders
+paths:
+ /message_template_folders:
+ get:
+ summary: List folders
+ operationId: list-folders
+ description: 'List the message template folders.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+
+
+ Required 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
+
+
+ Required 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.
+
+
+ Required 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
+
+
+ Required 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
+ /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.
+
+
+ Required 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.
+
+
+ Required 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
+ /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).
+
+
+ Required 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).
+
+
+ Required 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
+components:
+ parameters:
+ sortOrder:
+ name: sort_order
+ in: query
+ description: Order by which results should be sorted
+ schema:
+ type: string
+ enum:
+ - asc
+ - desc
+ example: asc
+ sortByCannedAnswerFolders:
+ name: sort_by
+ in: query
+ description: Field used to sort the message template folders. Either `created_at` or `updated_at`.
+ schema:
+ type: string
+ responses:
+ listOfCannedAnswerFolders:
+ description: Array of message template folders
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ cannedAnswerFolder:
+ description: A message template folder
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/MessageTemplateFolderResponse'
+ 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
+ schemas:
+ 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.
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ 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
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-message-templates-api-openapi.yml b/openapi/frontapp-message-templates-api-openapi.yml
new file mode 100644
index 0000000..87f6404
--- /dev/null
+++ b/openapi/frontapp-message-templates-api-openapi.yml
@@ -0,0 +1,628 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Message Templates API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Message Templates
+paths:
+ /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.
+
+
+ Required 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
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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 a message template.
+
+
+ Required scope: `message_templates:write`'
+ 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:write
+ delete:
+ summary: Delete message template
+ operationId: delete-message-template
+ description: 'Delete a message template
+
+
+ Required 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
+ /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.
+
+
+ Required 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
+
+
+ Required 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
+ /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).
+
+
+ Required 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).
+
+
+ Required 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
+components:
+ schemas:
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ - 'null'
+ description: Link to resource's owner
+ example: https://yourCompany.api.frontapp.com/teams/tim_s47
+ parent_folder:
+ type:
+ - string
+ - 'null'
+ 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
+ - 'null'
+ 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.
+
+ '
+ 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
+ - 'null'
+ description: List of inboxes the template is available in. Null if there are no restrictions.
+ items:
+ type: string
+ example: null
+ 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.
+
+ '
+ 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
+ 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
+ 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.
+
+ '
+ folder_id:
+ type: string
+ description: ID of the message template folder to place this message template in
+ example: null
+ CreateSharedMessageTemplate:
+ type: object
+ description: A message template that is used for pre-written responses
+ required:
+ - name
+ - body
+ properties:
+ name:
+ type: string
+ description: Name of the message template
+ example: Out of Office
+ subject:
+ type: string
+ description: Subject of the message template.
+ 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.
+
+ '
+ 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
+ responses:
+ listOfCannedAnswerFolders:
+ description: Array of message template folders
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ cannedAnswer:
+ description: A message template
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/MessageTemplateResponse'
+ listOfCannedAnswers:
+ description: Array of message templates
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ parameters:
+ sortOrder:
+ name: sort_order
+ in: query
+ description: Order by which results should be sorted
+ schema:
+ type: string
+ enum:
+ - asc
+ - desc
+ example: asc
+ 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
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-messages-api-openapi.yml b/openapi/frontapp-messages-api-openapi.yml
new file mode 100644
index 0000000..e380e78
--- /dev/null
+++ b/openapi/frontapp-messages-api-openapi.yml
@@ -0,0 +1,1258 @@
+openapi: 3.2.0
+info:
+ title: Frontapp Messages API
+ version: 1.0.0
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ description: 'Operations tagged Messages across 2 of this provider''s published API definitions: frontapp-channel-api.yml, frontapp-core-api.yml. Each path carries the servers of the definition it was published in.'
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Messages
+paths:
+ /channels/{channel_id}/conversations/{conv_ext_id}/messages/{message_ext_id}/status:
+ put:
+ summary: Update external message status
+ operationId: update-external-message-status
+ description: 'Update the status of an outbound message by external ID. This endpoint is used by external systems (like SMS providers or custom channels)
+
+ to notify Front when a message''s delivery status has changed.
+
+
+ **Available status changes:**
+
+ - `failed`: Mark a message as failed. When marked as failed, the conversation is reopened so the team can take action.
+
+
+ **Note:** This endpoint is only available for outbound messages.
+
+ '
+ 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
+ - in: path
+ name: conv_ext_id
+ required: true
+ description: The conversation's external ID.
+ schema:
+ type: string
+ - in: path
+ name: message_ext_id
+ required: true
+ description: The message's external ID.
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - status
+ properties:
+ status:
+ type: string
+ enum:
+ - failed
+ description: The status to set for the message. Currently only 'failed' is supported.
+ reason:
+ type: string
+ description: Optional reason for the status change. This will be displayed to users and logged for debugging purposes.
+ responses:
+ '204':
+ description: No content
+ x-required-scopes:
+ - messages:write
+ servers:
+ - url: https://api2.frontapp.com
+ /channels/{channel_id}/inbound_messages:
+ post:
+ summary: Sync inbound message
+ operationId: sync-inbound-message
+ description: Import a message that was received by the channel.
+ 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/InboundMessage'
+ responses:
+ '202':
+ $ref: '#/components/responses/acceptedMessage'
+ x-required-scopes:
+ - messages:write
+ servers:
+ - url: https://api2.frontapp.com
+ /channels/{channel_id}/outbound_messages:
+ post:
+ summary: Sync outbound message
+ operationId: sync-outbound-message
+ description: Import a message that was sent from the channel.
+ 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/OutboundMessage'
+ responses:
+ '202':
+ $ref: '#/components/responses/acceptedMessage'
+ x-required-scopes:
+ - messages:write
+ servers:
+ - url: https://api2.frontapp.com
+ /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**.
+
+
+ Required 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_2'
+ x-required-scopes:
+ - messages:write
+ servers:
+ - url: https://api2.frontapp.com
+ /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).
+
+
+ Required 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_2'
+ responses:
+ '202':
+ $ref: '#/components/responses/acceptedMessage_2'
+ x-required-scopes:
+ - messages:send
+ servers:
+ - url: https://api2.frontapp.com
+ /conversations/{conversation_id}/messages:
+ post:
+ summary: Create message reply
+ operationId: create-message-reply
+ description: 'Reply to a conversation by sending a message and appending it to the conversation.
+
+
+ Required 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_2'
+ '301':
+ description: If the conversation has been merged, the response redirects you to the merged conversation.
+ x-required-scopes:
+ - messages:send
+ servers:
+ - url: https://api2.frontapp.com
+ /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.
+
+
+ Required 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_2'
+ x-required-scopes:
+ - messages:write
+ servers:
+ - url: https://api2.frontapp.com
+ /messages/{message_id}:
+ get:
+ summary: Get message
+ operationId: get-message
+ description: 'Fetch a message.
+
+
+ > ℹ️ The HTTP Header `Accept` can be used to request the message in a different format.
+
+ > 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).
+
+
+
+ Required 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
+ servers:
+ - url: https://api2.frontapp.com
+ /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.
+
+
+ Required 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.
+
+
+ Required 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
+ servers:
+ - url: https://api2.frontapp.com
+components:
+ schemas:
+ InboundMessage:
+ required:
+ - sender
+ - body
+ - metadata
+ properties:
+ sender:
+ type: object
+ description: Data of the sender
+ required:
+ - handle
+ properties:
+ 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).
+ email:
+ type: string
+ description: Email of the sender. When provided, links this contact to existing contacts with the same email to prevent duplicates across channels.
+ subject:
+ type: string
+ description: Subject of the message
+ body:
+ type: string
+ description: The body of the message in HTML or plain text format.
+ metadata:
+ type: object
+ required:
+ - external_id
+ - external_conversation_id
+ properties:
+ external_id:
+ type: string
+ maxLength: 200
+ description: External identifier of the message
+ external_conversation_id:
+ type: string
+ maxLength: 200
+ description: External identifier of the conversation. Will be used to thread messages.
+ referenced_message_external_id:
+ type: string
+ maxLength: 200
+ description: External identifier of the message that this message is replying to. Use this for explicit replies.
+ delivered_at:
+ type: integer
+ description: Time in seconds at which message was created in external system
+ 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
+ OutboundMessage:
+ required:
+ - to
+ - body
+ - metadata
+ description: Payload to receive an outbound message from an external system into Front.
+ properties:
+ sender_name:
+ type: string
+ description: Name of the sender
+ to:
+ type: array
+ description: Data of the message recipient
+ items:
+ type: object
+ required:
+ - handle
+ properties:
+ name:
+ type: string
+ description: Name of the recipient
+ handle:
+ type: string
+ description: Handle of the recipient. 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).
+ email:
+ type: string
+ description: Email of the recipient. When provided, links this contact to existing contacts with the same email to prevent duplicates across channels.
+ subject:
+ type: string
+ description: Subject of the message
+ author_id:
+ type: string
+ description: ID of the teammate on behalf of whom the message is sent
+ body:
+ type: string
+ description: The body of the message in HTML or plain text format.
+ metadata:
+ type: object
+ required:
+ - external_id
+ - external_conversation_id
+ properties:
+ external_id:
+ type: string
+ maxLength: 200
+ description: External identifier of the message
+ external_conversation_id:
+ type: string
+ maxLength: 200
+ description: External identifier of the conversation. Will be used to thread messages.
+ referenced_message_external_id:
+ type: string
+ maxLength: 200
+ description: External identifier of the message that this message is replying to. Use this for explicit replies.
+ delivered_at:
+ type: integer
+ description: Time in seconds at which message was created in external system
+ 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
+ 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
+ - 'null'
+ 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
+ OutboundMessage_2:
+ 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.
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ 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
+ 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'
+ RecipientResponse:
+ type: object
+ required:
+ - _links
+ - name
+ - handle
+ - role
+ properties:
+ _links:
+ type: object
+ properties:
+ related:
+ type: object
+ properties:
+ contact:
+ type:
+ - string
+ - 'null'
+ description: Link to recipient contact
+ example: https://yourCompany.api.frontapp.com/contacts/crd_2njtoem
+ name:
+ type:
+ - string
+ - 'null'
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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;
+ 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 * ai: acting on behalf of an AI\n * api: acting on behalf of OAuth clients\n * application: acting on behalf of an Application\n * bulk_reply: acting on behalf of a Bulk Reply\n * csat: used for authoring CSAT response comments\n * integration: acting on behalf of an Integration\n * macro: acting on behalf of a Macro, author of comments and drafts\n * rule: acting on behalf of a Rule, author of comments and drafts\n * smart_csat: acting on behalf of a Smart CSAT\n"
+ enum:
+ - user
+ - visitor
+ - ai
+ - api
+ - application
+ - bulk_reply
+ - csat
+ - integration
+ - macro
+ - rule
+ - smart_csat
+ custom_fields:
+ description: Custom fields for this teammate
+ $ref: '#/components/schemas/CustomFieldParameter'
+ responses:
+ acceptedMessage:
+ description: An accepted message
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ status:
+ type: string
+ default: accepted
+ message_uid:
+ type: string
+ description: Message unique identifier
+ acceptedMessage_2:
+ 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
+ listOfSeenReceipts:
+ description: Array of seen receipts
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ message:
+ description: A message
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/MessageResponse'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-refined-from:
+- frontapp-channel-api.yml
+- frontapp-core-api.yml
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-rules-api-openapi.yml b/openapi/frontapp-rules-api-openapi.yml
new file mode 100644
index 0000000..4b0bbd1
--- /dev/null
+++ b/openapi/frontapp-rules-api-openapi.yml
@@ -0,0 +1,200 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Rules API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Rules
+paths:
+ /company/rules:
+ get:
+ summary: List all company rules
+ operationId: list-all-company-rules
+ description: 'List the company rules.
+
+
+ Required scope: `rules:read`'
+ tags:
+ - Rules
+ responses:
+ '200':
+ $ref: '#/components/responses/listOfRules'
+ x-required-scopes:
+ - rules:read
+ /rules:
+ get:
+ summary: List rules
+ operationId: list-rules
+ description: 'List the rules of the company.
+
+
+ Required 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.
+
+
+ Required 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
+ /teammates/{teammate_id}/rules:
+ get:
+ summary: List teammate rules
+ operationId: list-teammate-rules
+ description: 'List the rules of a teammate.
+
+
+ Required 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
+ /teams/{team_id}/rules:
+ get:
+ summary: List team rules
+ operationId: list-team-rules
+ description: 'List the rules of a team (workspace).
+
+
+ Required 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
+components:
+ schemas:
+ 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
+ - 'null'
+ description: Link to rule owner
+ example: null
+ 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
+ responses:
+ rule:
+ description: A rule
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RuleResponse'
+ 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'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-shifts-api-openapi.yml b/openapi/frontapp-shifts-api-openapi.yml
new file mode 100644
index 0000000..42bc542
--- /dev/null
+++ b/openapi/frontapp-shifts-api-openapi.yml
@@ -0,0 +1,586 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Shifts API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Shifts
+paths:
+ /shifts:
+ get:
+ summary: List Shifts
+ operationId: list-shifts
+ description: 'List the shifts.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+ /teammates/{teammate_id}/shifts:
+ get:
+ summary: List Teammate Shifts
+ operationId: list-teammate-shifts
+ description: 'Lists all the shifts for the teammate.
+
+
+ Required 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
+ /teams/{team_id}/shifts:
+ get:
+ summary: List team Shifts
+ operationId: list-team-shifts
+ description: 'List the shifts for a team (workspace).
+
+
+ Required 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).
+
+
+ Required 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
+components:
+ schemas:
+ 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'
+ 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'
+ 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'
+ TeammateIds:
+ type: object
+ required:
+ - teammate_ids
+ properties:
+ teammate_ids:
+ type: array
+ items:
+ $ref: '#/components/schemas/ResourceID'
+ ResourceID:
+ type: string
+ 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'
+ 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
+ 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
+ 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 * ai: acting on behalf of an AI\n * api: acting on behalf of OAuth clients\n * application: acting on behalf of an Application\n * bulk_reply: acting on behalf of a Bulk Reply\n * csat: used for authoring CSAT response comments\n * integration: acting on behalf of an Integration\n * macro: acting on behalf of a Macro, author of comments and drafts\n * rule: acting on behalf of a Rule, author of comments and drafts\n * smart_csat: acting on behalf of a Smart CSAT\n"
+ enum:
+ - user
+ - visitor
+ - ai
+ - api
+ - application
+ - bulk_reply
+ - csat
+ - integration
+ - macro
+ - rule
+ - smart_csat
+ custom_fields:
+ description: Custom fields for this teammate
+ $ref: '#/components/schemas/CustomFieldParameter'
+ responses:
+ shift:
+ description: A shift
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ShiftResponse'
+ 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'
+ 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'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-signatures-api-openapi.yml b/openapi/frontapp-signatures-api-openapi.yml
new file mode 100644
index 0000000..51dc299
--- /dev/null
+++ b/openapi/frontapp-signatures-api-openapi.yml
@@ -0,0 +1,384 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Signatures API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Signatures
+paths:
+ /signatures/{signature_id}:
+ get:
+ summary: Get signatures
+ operationId: get-signatures
+ description: 'Get the given signature.
+
+
+ Required 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
+
+
+ Required 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
+
+
+ Required 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
+ /teammates/{teammate_id}/signatures:
+ get:
+ summary: List teammate signatures
+ operationId: list-teammate-signatures
+ description: 'List the signatures belonging to the given teammate.
+
+
+ Required 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
+
+
+ Required 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
+ /teams/{team_id}/signatures:
+ get:
+ summary: List team signatures
+ operationId: list-team-signatures
+ description: 'List the signatures belonging to the given team (workspace).
+
+
+ Required 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).
+
+
+ Required 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
+components:
+ schemas:
+ 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
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ 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
+ 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
+ responses:
+ listOfSignatures:
+ description: Array of signatures
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ signature:
+ description: A signature
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SignatureResponse'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-statuses-api-openapi.yml b/openapi/frontapp-statuses-api-openapi.yml
new file mode 100644
index 0000000..e22ffa9
--- /dev/null
+++ b/openapi/frontapp-statuses-api-openapi.yml
@@ -0,0 +1,143 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Statuses API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Statuses
+paths:
+ /company/statuses:
+ get:
+ summary: List company ticket statuses
+ operationId: list-company-ticket-statuses
+ description: 'List the ticket statuses available for your company.
+
+
+ Required 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.
+
+
+ Required 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
+components:
+ schemas:
+ 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
+ - 'null'
+ description: Category of the ticket status.
+ enum:
+ - open
+ - waiting
+ - resolved
+ example: open
+ description:
+ type:
+ - string
+ - 'null'
+ 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
+ responses:
+ 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'
+ status:
+ description: A ticket status
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/StatusResponse'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-tags-api-openapi.yml b/openapi/frontapp-tags-api-openapi.yml
new file mode 100644
index 0000000..2a9d680
--- /dev/null
+++ b/openapi/frontapp-tags-api-openapi.yml
@@ -0,0 +1,961 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Tags API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Tags
+paths:
+ /company/tags:
+ get:
+ summary: List company tags
+ operationId: list-company-tags
+ description: 'List the company tags.
+
+
+ Required 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.
+
+
+ Required 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:
+ 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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).
+
+
+
+ Required 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
+ /teammates/{teammate_id}/tags:
+ get:
+ summary: List teammate tags
+ operationId: list-teammate-tags
+ description: 'List the tags for a teammate.
+
+
+ Required 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.
+
+
+ Required 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/{team_id}/tags:
+ get:
+ summary: List team tags
+ operationId: list-team-tags
+ description: 'List the tags for a team (workspace).
+
+
+ Required 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).
+
+
+ Required 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
+components:
+ parameters:
+ sortOrder:
+ name: sort_order
+ in: query
+ description: Order by which results should be sorted
+ schema:
+ type: string
+ enum:
+ - asc
+ - desc
+ example: asc
+ 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
+ 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
+ sortByTags:
+ name: sort_by
+ in: query
+ description: Field used to sort the tags. Only supports `id`.
+ schema:
+ type: string
+ 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
+ schemas:
+ ConversationResponse:
+ type: object
+ required:
+ - _links
+ - id
+ - type
+ - 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
+ type:
+ type: string
+ description: Type of the conversation
+ enum:
+ - conversation
+ - discussion
+ - task
+ example: discussion
+ 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:
+ $ref: '#/components/schemas/TeammateResponse'
+ description: Partial representation of the teammate assigned to the conversation
+ recipient:
+ $ref: '#/components/schemas/RecipientResponse'
+ description: Main recipient of the conversation
+ tags:
+ type: array
+ description: List of the tags for this conversation
+ items:
+ $ref: '#/components/schemas/TagResponse'
+ links:
+ type: array
+ description: List of the links for this conversation
+ items:
+ $ref: '#/components/schemas/LinkResponse'
+ 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'
+ description:
+ type:
+ - string
+ - 'null'
+ description: Description of the task. Only present on task conversations.
+ due_at:
+ type:
+ - number
+ - 'null'
+ description: Unix timestamp in seconds when the task is due. Only present on task conversations.
+ example: 1701292649.333
+ 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
+ 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
+ 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'
+ RecipientResponse:
+ type: object
+ required:
+ - _links
+ - name
+ - handle
+ - role
+ properties:
+ _links:
+ type: object
+ properties:
+ related:
+ type: object
+ properties:
+ contact:
+ type:
+ - string
+ - 'null'
+ description: Link to recipient contact
+ example: https://yourCompany.api.frontapp.com/contacts/crd_2njtoem
+ name:
+ type:
+ - string
+ - 'null'
+ 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
+ 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.
+ 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
+ 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
+ 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 * ai: acting on behalf of an AI\n * api: acting on behalf of OAuth clients\n * application: acting on behalf of an Application\n * bulk_reply: acting on behalf of a Bulk Reply\n * csat: used for authoring CSAT response comments\n * integration: acting on behalf of an Integration\n * macro: acting on behalf of a Macro, author of comments and drafts\n * rule: acting on behalf of a Rule, author of comments and drafts\n * smart_csat: acting on behalf of a Smart CSAT\n"
+ enum:
+ - user
+ - visitor
+ - ai
+ - api
+ - application
+ - bulk_reply
+ - csat
+ - integration
+ - macro
+ - rule
+ - smart_csat
+ custom_fields:
+ description: Custom fields for this teammate
+ $ref: '#/components/schemas/CustomFieldParameter'
+ 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
+ - 'null'
+ description: Link to tag owner
+ example: https://yourCompany.api.frontapp.com/teammates/tea_6jydq
+ parent_tag:
+ type:
+ - string
+ - 'null'
+ description: Link to parent tag
+ example: https://yourCompany.api.frontapp.com/tags/tag_3h07ym
+ children:
+ type:
+ - string
+ - 'null'
+ 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
+ - 'null'
+ description: Description of the tag
+ example: Sitting on your biscuit, never having to risk it
+ highlight:
+ type:
+ - string
+ - 'null'
+ 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
+ responses:
+ 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'
+ tag:
+ description: A tag
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TagResponse'
+ listOfConversations:
+ description: Array of conversations
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-teammate-groups-api-openapi.yml b/openapi/frontapp-teammate-groups-api-openapi.yml
new file mode 100644
index 0000000..558b498
--- /dev/null
+++ b/openapi/frontapp-teammate-groups-api-openapi.yml
@@ -0,0 +1,794 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Teammate groups API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Teammate groups
+paths:
+ /teammate_groups:
+ get:
+ summary: List teammate groups
+ operationId: list-company-teammate-groups
+ description: 'List the teammate groups in the company.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+components:
+ schemas:
+ TeammateIds:
+ type: object
+ required:
+ - teammate_ids
+ properties:
+ teammate_ids:
+ type: array
+ items:
+ $ref: '#/components/schemas/ResourceID'
+ 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
+ - 'null'
+ 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
+ InboxIds:
+ type: object
+ required:
+ - inbox_ids
+ properties:
+ inbox_ids:
+ type: array
+ items:
+ $ref: '#/components/schemas/ResourceID'
+ TeamIds:
+ type: object
+ required:
+ - team_ids
+ properties:
+ team_ids:
+ type: array
+ items:
+ $ref: '#/components/schemas/ResourceID'
+ 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
+ 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
+ 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
+ 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'
+ ResourceID:
+ type: string
+ 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
+ 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 * ai: acting on behalf of an AI\n * api: acting on behalf of OAuth clients\n * application: acting on behalf of an Application\n * bulk_reply: acting on behalf of a Bulk Reply\n * csat: used for authoring CSAT response comments\n * integration: acting on behalf of an Integration\n * macro: acting on behalf of a Macro, author of comments and drafts\n * rule: acting on behalf of a Rule, author of comments and drafts\n * smart_csat: acting on behalf of a Smart CSAT\n"
+ enum:
+ - user
+ - visitor
+ - ai
+ - api
+ - application
+ - bulk_reply
+ - csat
+ - integration
+ - macro
+ - rule
+ - smart_csat
+ custom_fields:
+ description: Custom fields for this teammate
+ $ref: '#/components/schemas/CustomFieldParameter'
+ responses:
+ 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'
+ 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'
+ 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'
+ 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'
+ teammateGroup:
+ description: A teammate group
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TeammateGroupResponse'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-teammates-api-openapi.yml b/openapi/frontapp-teammates-api-openapi.yml
new file mode 100644
index 0000000..86cfead
--- /dev/null
+++ b/openapi/frontapp-teammates-api-openapi.yml
@@ -0,0 +1,745 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Teammates API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Teammates
+paths:
+ /teammates:
+ get:
+ summary: List teammates
+ operationId: list-teammates
+ description: 'List the teammates in the company.
+
+
+ Required scope: `teammates:read`'
+ tags:
+ - Teammates
+ responses:
+ '200':
+ $ref: '#/components/responses/listOfTeammates'
+ x-required-scopes:
+ - teammates:read
+ /teammates/{teammate_id}:
+ get:
+ summary: Get teammate
+ operationId: get-teammate
+ description: 'Fetch a teammate.
+
+
+ Required 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.
+
+
+ Required 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}/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).
+
+
+
+ Required 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.
+
+
+ Required 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
+components:
+ schemas:
+ ConversationResponse:
+ type: object
+ required:
+ - _links
+ - id
+ - type
+ - 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
+ type:
+ type: string
+ description: Type of the conversation
+ enum:
+ - conversation
+ - discussion
+ - task
+ example: discussion
+ 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:
+ $ref: '#/components/schemas/TeammateResponse'
+ description: Partial representation of the teammate assigned to the conversation
+ recipient:
+ $ref: '#/components/schemas/RecipientResponse'
+ description: Main recipient of the conversation
+ tags:
+ type: array
+ description: List of the tags for this conversation
+ items:
+ $ref: '#/components/schemas/TagResponse'
+ links:
+ type: array
+ description: List of the links for this conversation
+ items:
+ $ref: '#/components/schemas/LinkResponse'
+ 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'
+ description:
+ type:
+ - string
+ - 'null'
+ description: Description of the task. Only present on task conversations.
+ due_at:
+ type:
+ - number
+ - 'null'
+ description: Unix timestamp in seconds when the task is due. Only present on task conversations.
+ example: 1701292649.333
+ 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
+ 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
+ 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'
+ 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'
+ RecipientResponse:
+ type: object
+ required:
+ - _links
+ - name
+ - handle
+ - role
+ properties:
+ _links:
+ type: object
+ properties:
+ related:
+ type: object
+ properties:
+ contact:
+ type:
+ - string
+ - 'null'
+ description: Link to recipient contact
+ example: https://yourCompany.api.frontapp.com/contacts/crd_2njtoem
+ name:
+ type:
+ - string
+ - 'null'
+ 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
+ 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
+ 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'
+ 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 * ai: acting on behalf of an AI\n * api: acting on behalf of OAuth clients\n * application: acting on behalf of an Application\n * bulk_reply: acting on behalf of a Bulk Reply\n * csat: used for authoring CSAT response comments\n * integration: acting on behalf of an Integration\n * macro: acting on behalf of a Macro, author of comments and drafts\n * rule: acting on behalf of a Rule, author of comments and drafts\n * smart_csat: acting on behalf of a Smart CSAT\n"
+ enum:
+ - user
+ - visitor
+ - ai
+ - api
+ - application
+ - bulk_reply
+ - csat
+ - integration
+ - macro
+ - rule
+ - smart_csat
+ custom_fields:
+ description: Custom fields for this teammate
+ $ref: '#/components/schemas/CustomFieldParameter'
+ 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
+ - 'null'
+ description: Link to tag owner
+ example: https://yourCompany.api.frontapp.com/teammates/tea_6jydq
+ parent_tag:
+ type:
+ - string
+ - 'null'
+ description: Link to parent tag
+ example: https://yourCompany.api.frontapp.com/tags/tag_3h07ym
+ children:
+ type:
+ - string
+ - 'null'
+ 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
+ - 'null'
+ description: Description of the tag
+ example: Sitting on your biscuit, never having to risk it
+ highlight:
+ type:
+ - string
+ - 'null'
+ 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
+ parameters:
+ 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
+ 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
+ responses:
+ listOfConversations:
+ description: Array of conversations
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ 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'
+ 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'
+ teammate:
+ description: A teammate
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TeammateResponse'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-teams-api-openapi.yml b/openapi/frontapp-teams-api-openapi.yml
new file mode 100644
index 0000000..af7969d
--- /dev/null
+++ b/openapi/frontapp-teams-api-openapi.yml
@@ -0,0 +1,364 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Teams API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Teams
+paths:
+ /teams:
+ get:
+ summary: List teams
+ operationId: list-teams
+ description: 'List the teams (workspaces) in the company.
+
+
+ Required 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).
+
+
+ Required 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}/teammates:
+ post:
+ summary: Add teammates to team
+ operationId: add-teammates-to-team
+ description: 'Add one or more teammates to a team (workspace).
+
+
+ Required 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).
+
+
+ Required 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
+components:
+ schemas:
+ TeammateIds:
+ type: object
+ required:
+ - teammate_ids
+ properties:
+ teammate_ids:
+ type: array
+ items:
+ $ref: '#/components/schemas/ResourceID'
+ 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'
+ 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
+ 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'
+ ResourceID:
+ type: string
+ 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
+ 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 * ai: acting on behalf of an AI\n * api: acting on behalf of OAuth clients\n * application: acting on behalf of an Application\n * bulk_reply: acting on behalf of a Bulk Reply\n * csat: used for authoring CSAT response comments\n * integration: acting on behalf of an Integration\n * macro: acting on behalf of a Macro, author of comments and drafts\n * rule: acting on behalf of a Rule, author of comments and drafts\n * smart_csat: acting on behalf of a Smart CSAT\n"
+ enum:
+ - user
+ - visitor
+ - ai
+ - api
+ - application
+ - bulk_reply
+ - csat
+ - integration
+ - macro
+ - rule
+ - smart_csat
+ custom_fields:
+ description: Custom fields for this teammate
+ $ref: '#/components/schemas/CustomFieldParameter'
+ responses:
+ 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'
+ team:
+ description: A team
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TeamResponse'
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-time-off-api-openapi.yml b/openapi/frontapp-time-off-api-openapi.yml
new file mode 100644
index 0000000..17f7e85
--- /dev/null
+++ b/openapi/frontapp-time-off-api-openapi.yml
@@ -0,0 +1,375 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Time Off API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Time Off
+paths:
+ /teammates/{teammate_id}/time_offs:
+ get:
+ summary: List teammate time offs
+ operationId: list-teammate-time-offs
+ description: 'List the time offs of a teammate.
+
+
+ Required scope: `time_off:read`'
+ tags:
+ - Time Off
+ parameters:
+ - in: path
+ name: teammate_id
+ required: true
+ description: The teammate ID
+ schema:
+ type: string
+ default: tea_abc123
+ - $ref: '#/components/parameters/limit'
+ - $ref: '#/components/parameters/pageToken'
+ - $ref: '#/components/parameters/timeOffQuery'
+ responses:
+ '200':
+ $ref: '#/components/responses/listOfTimeOffs'
+ x-required-scopes:
+ - time_off:read
+ post:
+ summary: Create time off
+ operationId: create-time-off
+ description: 'Create a time off for a teammate.
+
+
+ Required scope: `time_off:write`'
+ tags:
+ - Time Off
+ 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_abc123
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateTimeOff'
+ responses:
+ '201':
+ $ref: '#/components/responses/time_off'
+ x-required-scopes:
+ - time_off:write
+ /teams/{team_id}/time_offs:
+ get:
+ summary: List team time offs
+ operationId: list-team-time-offs
+ description: 'List the time offs of all teammates in a team.
+
+
+ Required scope: `time_off:read`'
+ tags:
+ - Time Off
+ parameters:
+ - in: path
+ name: team_id
+ required: true
+ description: The team ID
+ schema:
+ type: string
+ default: tim_abc123
+ - $ref: '#/components/parameters/limit'
+ - $ref: '#/components/parameters/pageToken'
+ - $ref: '#/components/parameters/timeOffQuery'
+ responses:
+ '200':
+ $ref: '#/components/responses/listOfTimeOffs'
+ x-required-scopes:
+ - time_off:read
+ /time_offs/{time_off_id}:
+ get:
+ summary: Get time off
+ operationId: get-time-off
+ description: 'Fetch a time off.
+
+
+ Required scope: `time_off:read`'
+ tags:
+ - Time Off
+ parameters:
+ - in: path
+ name: time_off_id
+ required: true
+ description: The time off ID
+ schema:
+ type: string
+ default: vcr_abc123
+ responses:
+ '200':
+ $ref: '#/components/responses/time_off'
+ x-required-scopes:
+ - time_off:read
+ patch:
+ summary: Update time off
+ operationId: update-time-off
+ description: 'Update a time off.
+
+
+ Required scope: `time_off:write`'
+ tags:
+ - Time Off
+ parameters:
+ - in: path
+ name: time_off_id
+ required: true
+ description: The time off ID
+ schema:
+ type: string
+ default: vcr_abc123
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UpdateTimeOff'
+ responses:
+ '204':
+ description: No content
+ x-required-scopes:
+ - time_off:write
+ delete:
+ summary: Delete time off
+ operationId: delete-time-off
+ description: 'Delete a time off.
+
+
+ Required scope: `time_off:delete`'
+ tags:
+ - Time Off
+ parameters:
+ - in: path
+ name: time_off_id
+ required: true
+ description: The time off ID
+ schema:
+ type: string
+ default: vcr_abc123
+ responses:
+ '204':
+ description: No content
+ x-required-scopes:
+ - time_off:delete
+components:
+ responses:
+ time_off:
+ description: A time off
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TimeOffResponse'
+ listOfTimeOffs:
+ description: Array of time offs
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ description: Link to next [page of results](https://dev.frontapp.com/docs/pagination)
+ example: https://yourCompany.api.frontapp.com/teams/tim_abc123/time_offs?page_token=9fa92a7f385fd7be43f7153055b30e6d
+ _links:
+ type: object
+ properties:
+ self:
+ type: string
+ description: Link to resource
+ example: https://yourCompany.api.frontapp.com/teams/tim_abc123/time_offs
+ _results:
+ type: array
+ items:
+ $ref: '#/components/schemas/TimeOffResponse'
+ schemas:
+ CreateTimeOff:
+ required:
+ - name
+ - start_at
+ properties:
+ name:
+ type: string
+ description: Name of the time off
+ start_at:
+ type: number
+ description: Timestamp when the time off starts (in seconds)
+ end_at:
+ type:
+ - number
+ - 'null'
+ description: Timestamp when the time off ends (in seconds), or null if open-ended
+ auto_responder:
+ type: object
+ properties:
+ body:
+ type: string
+ description: The auto-reply message body
+ is_enabled:
+ type: boolean
+ description: Whether the auto-responder is enabled
+ is_contacts_only:
+ type: boolean
+ description: Whether the auto-responder only replies to known contacts
+ channel_ids:
+ type: array
+ description: List of channel IDs the auto-responder applies to
+ items:
+ $ref: '#/components/schemas/ResourceID'
+ UpdateTimeOff:
+ properties:
+ name:
+ type: string
+ description: Name of the time off
+ start_at:
+ type: number
+ description: Timestamp when the time off starts (in seconds)
+ end_at:
+ type:
+ - number
+ - 'null'
+ description: Timestamp when the time off ends (in seconds), or null to clear it
+ auto_responder:
+ type: object
+ properties:
+ body:
+ type: string
+ description: The auto-reply message body
+ is_enabled:
+ type: boolean
+ description: Whether the auto-responder is enabled
+ is_contacts_only:
+ type: boolean
+ description: Whether the auto-responder only replies to known contacts
+ channel_ids:
+ type: array
+ description: List of channel IDs the auto-responder applies to
+ items:
+ $ref: '#/components/schemas/ResourceID'
+ ResourceID:
+ type: string
+ TimeOffResponse:
+ type: object
+ required:
+ - _links
+ - id
+ - name
+ - start_at
+ - auto_responder
+ properties:
+ _links:
+ type: object
+ properties:
+ self:
+ type: string
+ description: Link to the time off resource
+ example: https://yourCompany.api.frontapp.com/time_offs/vcr_1bri
+ related:
+ type: object
+ properties:
+ teammate:
+ type: string
+ description: Link to the teammate this time off belongs to
+ example: https://yourCompany.api.frontapp.com/teammates/tea_1bri
+ id:
+ type: string
+ description: Unique identifier of the time off
+ example: vcr_1bri
+ name:
+ type: string
+ description: Name of the time off
+ example: Out of office
+ start_at:
+ type: number
+ description: Timestamp when the time off starts
+ example: 1606943265.298
+ end_at:
+ type:
+ - number
+ - 'null'
+ description: Timestamp when the time off ends, or null if open-ended
+ example: 1607548065.298
+ created_at:
+ type: number
+ description: Timestamp when the time off was created
+ example: 1606943265.298
+ updated_at:
+ type: number
+ description: Timestamp when the time off was last updated
+ example: 1606943265.298
+ auto_responder:
+ type: object
+ properties:
+ is_enabled:
+ type: boolean
+ description: Whether the auto-responder is enabled
+ example: true
+ channel_ids:
+ type: array
+ description: List of channel IDs the auto-responder applies to
+ items:
+ type: string
+ example:
+ - cha_1bri
+ - cha_2bri
+ is_contacts_only:
+ type: boolean
+ description: Whether the auto-responder only replies to known contacts
+ example: false
+ body:
+ type: string
+ description: The auto-reply message body
+ example: Thanks for reaching out, I will reply when I am back.
+ parameters:
+ timeOffQuery:
+ name: q
+ in: query
+ description: '[Search query object](https://dev.frontapp.com/docs/query-object-q) with the optional properties `active_from` and `active_until`, whose value should be a timestamp in seconds with up to 3 decimal places.'
+ 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
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-token-identity-api-openapi.yml b/openapi/frontapp-token-identity-api-openapi.yml
new file mode 100644
index 0000000..508d16f
--- /dev/null
+++ b/openapi/frontapp-token-identity-api-openapi.yml
@@ -0,0 +1,68 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Token Identity API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Token Identity
+paths:
+ /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'
+components:
+ responses:
+ identity:
+ description: API Token details
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IdentityResponse'
+ schemas:
+ 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.
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true
diff --git a/openapi/frontapp-views-api-openapi.yml b/openapi/frontapp-views-api-openapi.yml
new file mode 100644
index 0000000..8661d1d
--- /dev/null
+++ b/openapi/frontapp-views-api-openapi.yml
@@ -0,0 +1,386 @@
+openapi: 3.2.0
+info:
+ version: 1.0.0
+ title: Core Views API
+ contact:
+ name: Front Platform
+ url: https://community.front.com
+ x-source-url: https://dash.readme.com/api/v1/api-registry/1mdfh2oms3ldti1
+ x-documentation-url: https://dev.frontapp.com/docs/welcome
+ x-last-validated: '2026-08-10'
+ x-provenance: first-party — retrieved from the provider's own documentation host
+servers:
+- url: https://api2.frontapp.com
+security:
+- http: []
+tags:
+- name: Views
+paths:
+ /teams/{team_id}/views:
+ get:
+ summary: List team views
+ operationId: list-team-views
+ description: 'List the views of a team.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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.
+
+
+ Required 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
+components:
+ schemas:
+ 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
+ ResourceID:
+ 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
+ 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
+ - 'null'
+ 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
+ - 'null'
+ 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
+ responses:
+ listOfViews:
+ description: Array of views
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ _pagination:
+ type: object
+ properties:
+ next:
+ type:
+ - string
+ - 'null'
+ 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'
+ view:
+ description: A view
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SharedViewResponse'
+ parameters:
+ 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
+ securitySchemes:
+ http:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+x-api-id: front
+x-explorer-enabled: false
+x-proxy-enabled: true
+x-samples-enabled: true