Front · Capability
Core API — Messages
Core API — Messages. 7 operations. Lead operation: Receive custom messages. Self-contained Naftiko capability covering one Front business surface.
What You Can Do
POST
Receivecustommessages
— Receive custom messages
/v1/channels/{channel-id}/incoming-messages
POST
Createmessage
— Create message
/v1/channels/{channel-id}/messages
POST
Createmessagereply
— Create message reply
/v1/conversations/{conversation-id}/messages
POST
Importinboxmessage
— Import message
/v1/inboxes/{inbox-id}/imported-messages
GET
Getmessage
— Get message
/v1/messages/{message-id}
GET
Getmessageseenstatus
— Get message seen status
/v1/messages/{message-id}/seen
POST
Markmessageseen
— Mark message seen
/v1/messages/{message-id}/seen
MCP Tools
receive-custom-messages
Receive custom messages
create-message
Create message
create-message-reply
Create message reply
import-message
Import message
get-message
Get message
read-only
idempotent
get-message-seen-status
Get message seen status
read-only
idempotent
mark-message-seen
Mark message seen
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Core API — Messages
description: 'Core API — Messages. 7 operations. Lead operation: Receive custom messages. Self-contained Naftiko capability
covering one Front business surface.'
tags:
- Front
- Messages
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
FRONT_API_KEY: FRONT_API_KEY
capability:
consumes:
- type: http
namespace: core-messages
baseUri: https://api2.frontapp.com
description: Core API — Messages business capability. Self-contained, no shared references.
resources:
- name: channels-channel_id-incoming_messages
path: /channels/{channel_id}/incoming_messages
operations:
- name: receivecustommessages
method: POST
description: Receive custom messages
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: channel_id
in: path
type: string
description: The channel ID. Alternatively, you can supply the channel address as a [resource alias](https://dev.frontapp.com/docs/resource-aliases-1).
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: channels-channel_id-messages
path: /channels/{channel_id}/messages
operations:
- name: createmessage
method: POST
description: Create message
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: channel_id
in: path
type: string
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).
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: conversations-conversation_id-messages
path: /conversations/{conversation_id}/messages
operations:
- name: createmessagereply
method: POST
description: Create message reply
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: conversation_id
in: path
type: string
description: The conversation ID
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: inboxes-inbox_id-imported_messages
path: /inboxes/{inbox_id}/imported_messages
operations:
- name: importinboxmessage
method: POST
description: Import message
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: inbox_id
in: path
type: string
description: The Inbox ID
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: messages-message_id
path: /messages/{message_id}
operations:
- name: getmessage
method: GET
description: Get message
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: message_id
in: path
type: string
description: The message ID
required: true
- name: messages-message_id-seen
path: /messages/{message_id}/seen
operations:
- name: getmessageseenstatus
method: GET
description: Get message seen status
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: message_id
in: path
type: string
description: The message ID
required: true
- name: markmessageseen
method: POST
description: Mark message seen
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: message_id
in: path
type: string
description: The message ID
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
authentication:
type: bearer
token: '{{env.FRONT_API_KEY}}'
exposes:
- type: rest
namespace: core-messages-rest
port: 8080
description: REST adapter for Core API — Messages. One Spectral-compliant resource per consumed operation, prefixed with
/v1.
resources:
- path: /v1/channels/{channel-id}/incoming-messages
name: channels-channel-id-incoming-messages
description: REST surface for channels-channel_id-incoming_messages.
operations:
- method: POST
name: receivecustommessages
description: Receive custom messages
call: core-messages.receivecustommessages
with:
channel_id: rest.channel_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/channels/{channel-id}/messages
name: channels-channel-id-messages
description: REST surface for channels-channel_id-messages.
operations:
- method: POST
name: createmessage
description: Create message
call: core-messages.createmessage
with:
channel_id: rest.channel_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/conversations/{conversation-id}/messages
name: conversations-conversation-id-messages
description: REST surface for conversations-conversation_id-messages.
operations:
- method: POST
name: createmessagereply
description: Create message reply
call: core-messages.createmessagereply
with:
conversation_id: rest.conversation_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/inboxes/{inbox-id}/imported-messages
name: inboxes-inbox-id-imported-messages
description: REST surface for inboxes-inbox_id-imported_messages.
operations:
- method: POST
name: importinboxmessage
description: Import message
call: core-messages.importinboxmessage
with:
inbox_id: rest.inbox_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/messages/{message-id}
name: messages-message-id
description: REST surface for messages-message_id.
operations:
- method: GET
name: getmessage
description: Get message
call: core-messages.getmessage
with:
message_id: rest.message_id
outputParameters:
- type: object
mapping: $.
- path: /v1/messages/{message-id}/seen
name: messages-message-id-seen
description: REST surface for messages-message_id-seen.
operations:
- method: GET
name: getmessageseenstatus
description: Get message seen status
call: core-messages.getmessageseenstatus
with:
message_id: rest.message_id
outputParameters:
- type: object
mapping: $.
- method: POST
name: markmessageseen
description: Mark message seen
call: core-messages.markmessageseen
with:
message_id: rest.message_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: core-messages-mcp
port: 9090
transport: http
description: MCP adapter for Core API — Messages. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: receive-custom-messages
description: Receive custom messages
hints:
readOnly: false
destructive: false
idempotent: false
call: core-messages.receivecustommessages
with:
channel_id: tools.channel_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: create-message
description: Create message
hints:
readOnly: false
destructive: false
idempotent: false
call: core-messages.createmessage
with:
channel_id: tools.channel_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: create-message-reply
description: Create message reply
hints:
readOnly: false
destructive: false
idempotent: false
call: core-messages.createmessagereply
with:
conversation_id: tools.conversation_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: import-message
description: Import message
hints:
readOnly: false
destructive: false
idempotent: false
call: core-messages.importinboxmessage
with:
inbox_id: tools.inbox_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-message
description: Get message
hints:
readOnly: true
destructive: false
idempotent: true
call: core-messages.getmessage
with:
message_id: tools.message_id
outputParameters:
- type: object
mapping: $.
- name: get-message-seen-status
description: Get message seen status
hints:
readOnly: true
destructive: false
idempotent: true
call: core-messages.getmessageseenstatus
with:
message_id: tools.message_id
outputParameters:
- type: object
mapping: $.
- name: mark-message-seen
description: Mark message seen
hints:
readOnly: false
destructive: false
idempotent: false
call: core-messages.markmessageseen
with:
message_id: tools.message_id
body: tools.body
outputParameters:
- type: object
mapping: $.