Mirakl Messages API
The Messages API from Mirakl — 9 operation(s) for messages.
The Messages API from Mirakl — 9 operation(s) for messages.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/mirakl-messages-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Mirakl Messages API
version: ''
description: 'Operations tagged Messages across 6 of this provider''s published API definitions: mirakl-mmp-front-openapi.yaml, mirakl-mmp-operator-openapi.json, mirakl-mmp-seller-openapi.json, mirakl-mms-front-openapi.yaml, mirakl-mms-operator-openapi.json, mirakl-mms-seller-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- description: URL to be replaced by your Mirakl instance URL
url: https://your-instance.mirakl.net
tags:
- name: Messages
paths:
/api/messages:
get:
deprecated: true
description: '<div class="extension-title">Deprecated endpoint</div>
This API is going to be removed in a future update, please use M10 and M11 instead
<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>
<div class="recommended-call-frequency">Recommended usage: Synchronous only - at each message list display</div>
<div class="max-call-frequency">Maximum usage: Synchronous only - at each message list display</div>
<div class="extension-title">Pagination</div>
<p>This resource supports offset pagination (<a href="#section/Offset-pagination-and-sort">see documentation</a>)</p>
<div class="extension-title">Sort fields</div>
<code>sort</code> field can have the following values:<ul><li><b>dateCreated</b> (Default) - Sort by creation date (desc by default)</li></ul>
</div>'
operationId: M01
parameters:
- description: 'Returns only messages concerned by one type of user (i.e. only customers'' messages).<ul><li><code>ALL</code>: Returns all messages from all users (parameter <code>received</code> will be ignored)</li><li><code>CUSTOMER</code>: Returns all messages from or to a customer (parameter <code>received</code> concerns the customer)</li><li><code>SHOP</code>: Returns all messages from or to a shop (parameter <code>received</code> concerns the shop)</li><li><code>OPERATOR</code>: Returns all messages from or to an operator (parameter <code>received</code> concerns the operator)</li></ul>'
explode: true
in: query
name: user_type
required: false
schema:
type: string
default: CUSTOMER
enum:
- OPERATOR
- SHOP
- CUSTOMER
- ALL
style: form
- description: Returns messages concerned by this <code>customer_id</code>
explode: true
in: query
name: customer_id
required: false
schema:
type: string
style: form
- description: Returns messages concerned by this <code>shop_id</code>
explode: true
in: query
name: shop_id
required: false
schema:
type: integer
format: int64
style: form
- description: 'Do not use when <code>user_type</code> is <code>ALL</code>.<ul><li> If <code>TRUE</code>: returns only messages received from <code>user_type</code>.</li><li> If <code>FALSE</code>: returns only messages sent to <code>user_type</code>.</li><li> If <code>ALL</code> and <code>user_type</code> is <code>OPERATOR</code>, returns all messages, even direct messages between customer and shop.</li></ul>'
explode: true
in: query
name: received
required: false
schema:
type: string
default: 'TRUE'
enum:
- 'TRUE'
- 'FALSE'
- ALL
style: form
- description: Order identifier
explode: true
in: query
name: order_id
required: false
schema:
type: string
style: form
- description: Offer identifier
explode: true
in: query
name: offer_id
required: false
schema:
type: integer
format: int64
style: form
- description: Start creation date for filtering
explode: true
in: query
name: start_date
required: false
schema:
type: string
format: date-time
style: form
- description: End creation date for filtering
explode: true
in: query
name: end_date
required: false
schema:
type: string
format: date-time
style: form
- description: Control the pagination usage
explode: true
in: query
name: paginate
required: false
schema:
type: boolean
default: true
style: form
responses:
'200':
content:
application/json:
examples:
application/json-0:
summary: Example with business values (application/json)
value:
messages:
- body: Hi you will receive your item very soon
commercial_id: Classic_Order_0006
date_created: '2019-04-01T12:46:48Z'
documents:
- date_uploaded: '2019-04-01T12:46:47Z'
file_name: response1.csv
file_size: 1224
id: 2026
type: CUSTOMER_INVOICE
from_id: '2000'
from_name: ACME SHOP
from_type: SHOP
id: 2029
order_id: Classic_Order_0006-A
subject: Item not received
to_customer_id: Customer-001
to_customer_name: ESSABRI Rafik
total_count: 1
application/json-auto:
summary: Complete example with value types (application/json)
value:
messages:
- archived: true
body: string
commercial_id: string
date_created: '2023-03-28T09:34:42Z'
documents:
- date_uploaded: '2023-03-28T09:34:42Z'
file_name: string
file_size: 0
id: 0
type: string
from_id: string
from_name: string
from_type: OPERATOR
id: 0
offer_id: 0
order_id: string
read: true
subject: string
to_customer_archived: true
to_customer_id: string
to_customer_name: string
to_operator: true
to_operator_archived: true
to_shop_archived: true
to_shop_id: 0
to_shop_name: string
visible: true
total_count: 0
schema:
type: object
$ref: '#/components/schemas/M01_Response_200'
description: OK
security:
- Front-Bearer-Token: []
- OAuth-2: []
summary: M01 - List messages linked to orders and offers
tags:
- Messages
x-badges:
- color: noIntegrationBadge
name: ⚠️ No Integration Allowed ⚠️
position: after
servers:
- description: URL to be replaced by your Mirakl instance URL
url: https://your-instance.mirakl.net
/api/inbox/threads/{thread_id}:
get:
description: '<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>
<div class="recommended-call-frequency">Recommended usage: Synchronous only - At each page that includes a message thread display</div>
<div class="max-call-frequency">Maximum usage: Synchronous only - At each page that includes a message thread display</div>
<div class="extension-title">Read More</div>
<ul><li><a href="https://help.mirakl.com/bundle/customers/page/topics/Mirakl/integrating_mirakl/integrate_messages.htm">More context (Products Marketplace)</a></li><li><a href="https://help.mirakl.com/bundle/customers/page/topics/Mirakl/service_features/integrating_services/sending_service_messages.htm">More context (Services Marketplace)</a></li></ul></div>'
operationId: M10
parameters:
- description: The identifier of the thread to retrieve.
explode: false
in: path
name: thread_id
required: true
schema:
type: string
style: simple
- description: Customer id associated to the thread. If specified the response will contain only messages visible by the customer. This param should be typically filled when calling this API during a customer account integration. Not specifying this parameter will return all messages of the thread. Useful when you want to synchronize all messaging data with your IT system.
explode: true
in: query
name: customer_id
required: false
schema:
type: string
style: form
responses:
'200':
content:
application/json:
examples:
application/json-0:
summary: Example with business values (application/json)
value:
authorized_participants:
- display_name: Shop display name
id: Shop id
type: SHOP
- display_name: Customer display name
id: Customer id
type: CUSTOMER
current_participants:
- display_name: Shop display name
id: Shop id
type: SHOP
- display_name: Customer display name
id: Customer id
type: CUSTOMER
customer_organization:
display_name: Customer organization
id: customer-org-id
date_created: '2018-10-02T08:36:36.479Z'
date_updated: '2018-10-03T09:40:17.241Z'
entities:
- id: Entity id
label: Entity label
type: Entity type
id: 702c3e56-dcca-41e2-b6bd-72ba3fa809be
messages:
- body: Hello, I have recently order a service and I have a few questions ...
date_created: '2018-10-02T08:36:36.479Z'
from:
display_name: Customer display name
type: CUSTOMER_USER
id: df4a3163-a44b-4c5f-8380-faebfa43ca68
to:
- display_name: Shop display name
id: Shop id
type: SHOP
- attachments:
- id: fce1742e-8160-45ed-b88a-100023d9d97b
name: Brochure du service
size: 200
- id: 983fd83f-0b39-4bdf-9932-bd774ab66ce4
name: Tarif
size: 10
body: Dear customer, ...
date_created: '2018-10-03T09:40:17.241Z'
from:
display_name: Shop user display name
organization_details:
display_name: Shop display name
id: Shop id
type: SHOP
type: SHOP_USER
id: d752f26f-03eb-499c-8f4d-828fa9640055
to:
- display_name: Customer display name
id: Customer id
type: CUSTOMER
metadata:
last_message_date: '2018-10-03T09:40:17.241Z'
last_sender:
display_name: Shop user display name
organization_details:
display_name: Shop display name
id: Shop id
type: SHOP
type: SHOP_USER
shop_reply_needed_since: null
total_count: 2
no_store_reply_needed: []
topic:
type: FREE_TEXT
value: Questions about my order
application/json-auto:
summary: Complete example with value types (application/json)
value:
authorized_participants:
- display_name: string
id: string
type: OPERATOR
current_participants:
- display_name: string
id: string
type: OPERATOR
customer_organization:
display_name: string
id: string
date_created: '2023-03-28T09:34:42Z'
date_updated: '2023-03-28T09:34:42Z'
entities:
- id: string
label: string
type: string
id: string
messages:
- attachments:
- id: string
name: string
size: 0
body: string
date_created: '2023-03-28T09:34:42Z'
from:
display_name: string
organization_details:
display_name: string
id: string
type: OPERATOR
type: OPERATOR_USER
id: string
to:
- display_name: string
id: string
type: OPERATOR
metadata:
last_message_date: '2023-03-28T09:34:42Z'
last_sender:
display_name: string
organization_details:
display_name: string
id: string
type: OPERATOR
type: OPERATOR_USER
shop_reply_needed_since: '2023-03-28T09:34:42Z'
total_count: 0
no_store_reply_needed:
- date: '2023-03-28T09:34:42Z'
user_type: OPERATOR
topic:
type: FREE_TEXT
value: string
schema:
type: object
$ref: '#/components/schemas/M10_Response_200'
description: OK
security:
- Front-Bearer-Token: []
- OAuth-2: []
summary: M10 - Retrieve a thread
tags:
- Messages
servers:
- description: URL to be replaced by your Mirakl instance URL
url: https://your-instance.mirakl.net
/api/inbox/threads:
get:
description: '<div class="extension-title">Description</div>
You may want to retrieve the threads linked to a specific entity, using both <code>entity_type</code> and <code>entity_id</code>.
<br>For example, to retrieve threads for an order, use <code>entity_type=MMP_ORDER&entity_id=my-order-1</code>.
<br>
Available values for <code>entity_type</code> are:
<ul>
<li><code>MMP_ORDER</code>: for threads on product orders</li>
<li><code>MMP_OFFER</code>: for threads on offers</li>
<li><code>MPS_ORDER</code>: for threads on service orders</li>
<li><code>MPS_SERVICE</code>: for threads on services</li>
<li><code>SELLER_OPERATOR</code>: for threads between sellers and operator</li>
</ul>
This resource uses seek pagination. The default value for parameter <code>limit</code> is 50.
<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>
<div class="recommended-call-frequency">Recommended usage: Synchronous only - At each page that includes an inbox display</div>
<div class="max-call-frequency">Maximum usage: Synchronous only - At each page that includes an inbox display</div>
<div class="extension-title">Read More</div>
<ul><li><a href="https://help.mirakl.com/bundle/customers/page/topics/Mirakl/integrating_mirakl/integrate_messages.htm">More context (Products Marketplace)</a></li><li><a href="https://help.mirakl.com/bundle/customers/page/topics/Mirakl/service_features/integrating_services/sending_service_messages.htm">More context (Services Marketplace)</a></li></ul><div class="extension-title">Pagination</div>
<p>This resource supports seek pagination (<a href="#section/Seek-pagination-and-sort">see documentation</a>)</p>
</div>'
operationId: M11
parameters:
- description: 'Customer id to include in result (default: include all).<br/>It is strongly recommended to use the query param <code>customer_id</code> because the nominal use case is to filter all conversations per customer.<br/>If you do need to retrieve messages involving several customers, you can omit this query parameter.'
explode: true
in: query
name: customer_id
required: false
schema:
type: string
style: form
- description: 'Customer organization id to include in result (default: include all).'
explode: true
in: query
name: customer_organization_id
required: false
schema:
type: string
style: form
- description: 'Entity type to include in result (default: include all).<br/> Available values: MMP_ORDER, MMP_OFFER, MPS_ORDER, MPS_SERVICE, SELLER_OPERATOR'
explode: true
in: query
name: entity_type
required: false
schema:
type: string
style: form
- description: 'Comma separated list of Entity id to include in result (default: include all).<br/> The entity_type must be specified to use this filter, otherwise an error 400 will be returned.<br/> Example of an entity_id query: entity_id=order1-A,order20-A,order13-A&entity_type=MMP_ORDER'
explode: true
in: query
name: entity_id
required: false
schema:
type: array
items:
type: string
style: form
- description: Retrieve threads modified at or after this date.
explode: true
in: query
name: updated_since
required: false
schema:
type: string
format: date-time
style: form
- description: True to include message details. Limited to the last 100 messages received on each thread.
explode: true
in: query
name: with_messages
required: false
schema:
type: boolean
default: false
style: form
- description: 'List of the channel codes to filter with, using a comma (,) as a separator.
<br/> If specified, only order messages linked to the given channels will be returned (Whatever the value of <code>entity_type</code>).
<br/> Otherwise, messages will be returned regardless of their channels.
'
explode: true
in: query
name: channel_codes
required: false
schema:
type: array
items:
type: string
uniqueItems: true
style: form
responses:
'200':
content:
application/json:
examples:
application/json-0:
summary: Example with business values (application/json)
value:
data:
- authorized_participants:
- display_name: Shop display name
id: Shop id
type: SHOP
- display_name: Customer display name
id: Customer id
type: CUSTOMER
current_participants:
- display_name: Shop display name
id: Shop id
type: SHOP
- display_name: Customer display name
id: Customer id
type: CUSTOMER
customer_organization:
display_name: Customer organization
id: customer-org-id
date_created: '2016-09-03T13:37:00Z'
date_updated: '2018-09-03T13:37:00Z'
entities:
- id: Entity id
label: Entity label
type: Entity type
id: 702c3e56-dcca-41e2-b6bd-72ba3fa809be
metadata:
last_message_date: '2018-09-03T13:37:00Z'
last_sender:
display_name: Shop user display name
organization_details:
display_name: Shop display name
id: Shop id
type: SHOP
type: SHOP_USER
shop_reply_needed_since: null
total_count: 2
no_store_reply_needed: []
topic:
type: FREE_TEXT
value: Topic value
next_page_token: bGltaXQ9NTAmYWZ0ZXI9MjA3NjYwNTAtZDc5Yy00YzUyLWEwODctZWI5YjY1MjFkNzA5JnNvcnQ9ZGF0ZSxERVNDJmN1c3RvbWVyX2lkPUN1c3RvbWVyJTIwaWQ=.kuBm9NWrcM8GwgVxBrTpvQnYKmeLnott4D3EeM8Mf9Y=
application/json-auto:
summary: Complete example with value types (application/json)
value:
data:
- authorized_participants:
- display_name: string
id: string
type: OPERATOR
current_participants:
- display_name: string
id: string
type: OPERATOR
customer_organization:
display_name: string
id: string
date_created: '2023-03-28T09:34:42Z'
date_updated: '2023-03-28T09:34:42Z'
entities:
- id: string
label: string
type: string
id: string
messages:
- attachments:
- id: string
name: string
size: 0
body: string
date_created: '2023-03-28T09:34:42Z'
from:
display_name: string
organization_details:
display_name: string
id: string
type: OPERATOR
type: OPERATOR_USER
id: string
to:
- display_name: string
id: string
type: OPERATOR
metadata:
last_message_date: '2023-03-28T09:34:42Z'
last_sender:
display_name: string
organization_details:
display_name: string
id: string
type: OPERATOR
type: OPERATOR_USER
shop_reply_needed_since: '2023-03-28T09:34:42Z'
total_count: 0
no_store_reply_needed:
- date: '2023-03-28T09:34:42Z'
user_type: OPERATOR
topic:
type: FREE_TEXT
value: string
next_page_token: string
previous_page_token: string
schema:
type: object
$ref: '#/components/schemas/M11_Response_200'
description: OK
security:
- Front-Bearer-Token: []
- OAuth-2: []
summary: M11 - List all threads
tags:
- Messages
post:
description: '<div class="extension-title">Description</div>
Create a thread with a seller and send a first message
<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>
<div class="recommended-call-frequency">Recommended usage: Synchronous only - At each thread</div>
<div class="max-call-frequency">Maximum usage: Synchronous only - At each thread answer</div>
<div class="extension-title">Read More</div>
<ul><li><a href="https://help.mirakl.com/bundle/customers/page/topics/Mirakl/integrating_mirakl/integrate_messages.htm">More context (Products Marketplace)</a></li><li><a href="https://help.mirakl.com/bundle/customers/page/topics/Mirakl/service_features/integrating_services/sending_service_messages.htm">More context (Services Marketplace)</a></li></ul></div>'
operationId: M14
parameters: []
requestBody:
content:
multipart/form-data:
examples:
multipart/form-data-auto:
summary: Complete example with value types (multipart/form-data)
value:
files:
- string
thread_input:
body: string
entity:
id: string
type: string
topic:
type: FREE_TEXT
value: string
schema:
type: object
properties:
files:
type: array
description: List of attachments for the message<br/>Maximum 1000 across all threads of the same entity.<br/>For example, for a given seller, you can not have more than 1000 attachments across all its threads.
items:
type: string
format: binary
thread_input:
$ref: '#/components/schemas/M14_Request_MultipartFormData_ThreadInput'
description: Message and thread data
required:
- thread_input
responses:
'201':
content:
application/json:
examples:
application/json-0:
summary: Example with business values (application/json)
value:
message_id: 873f1cb5-a7a2-4e07-8e0e-12eb64e93ece
thread_id: 702c3e56-dcca-41e2-b6bd-72ba3fa809be
application/json-auto:
summary: Complete example with value types (application/json)
value:
message_id: string
thread_id: string
schema:
type: object
$ref: '#/components/schemas/M14_Response_201'
description: Created
security:
- Operator-Bearer-Token: []
- OAuth-2: []
summary: M14 - Create a thread with a seller
tags:
- Messages
x-codeSamples:
- lang: cURL
source: "curl -i -X POST \\\n https://your-instance.mirakl.net/api/inbox/threads \\\n -H 'Content-Type: multipart/form-data' \\\n -F 'files=@path/to/file' \\\n -F 'thread_input=\"{\\\"body\\\":\\\"string\\\",\\\"entity\\\":{\\\"id\\\":\\\"string\\\",\\\"type\\\":\\\"string\\\"},\\\"topic\\\":{\\\"type\\\":\\\"FREE_TEXT\\\",\\\"value\\\":\\\"string\\\"}}\";type=application/json'\n"
servers:
- description: URL to be replaced by your Mirakl instance URL
url: https://your-instance.mirakl.net
/api/inbox/threads/{thread_id}/message:
post:
description: '<div class="extension-title">Description</div>
Maximum of 1000 messages on a thread
<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>
<div class="recommended-call-frequency">Recommended usage: Synchronous only - At each thread answer</div>
<div class="max-call-frequency">Maximum usage: Synchronous only - At each thread answer</div>
<div class="extension-title">Read More</div>
<ul><li><a href="https://help.mirakl.com/bundle/customers/page/topics/Mirakl/integrating_mirakl/integrate_messages.htm">More context (Products Marketplace)</a></li><li><a href="https://help.mirakl.com/bundle/customers/page/topics/Mirakl/service_features/integrating_services/sending_service_messages.htm">More context (Services Marketplace)</a></li></ul></div>'
operationId: M12
parameters:
- description: The ID of the thread to reply to.
explode: false
in: path
name: thread_id
required: true
schema:
type: string
style: simple
requestBody:
content:
multipart/form-data:
examples:
multipart/form-data-auto:
summary: Complete example with value types (multipart/form-data)
value:
files:
- string
message_input:
body: string
to:
- id: string
type: OPERATOR
topic:
type: FREE_TEXT
value: string
schema:
type: object
properties:
files:
type: array
description: List of attachments for the message<br/>Maximum 50 across all threads of the same entity.<br/>For example, for a given order, you can not have more than 50 attachments across all its threads.
items:
type: string
format: binary
message_input:
$ref: '#/components/schemas/M12_Request_MultipartFormData_MessageInput'
description: The message data
required:
- message_input
responses:
'201':
content:
application/json:
examples:
application/json-0:
summary: Example with business values (application/json)
value:
message_id: 873f1cb5-a7a2-4e07-8e0e-12eb64e93ece
thread_id: 702c3e56-dcca-41e2-b6bd-72ba3fa809be
application/json-auto:
summary: Complete example with value types (application/json)
value:
message_id: string
thread_id: string
schema:
type: object
$ref: '#/components/schemas/M12_Response_201'
description: Created
security:
- Front-Bearer-Token: []
- OAuth-2: []
summary: M12 - Reply to a thread
tags:
- Messages
x-codeSamples:
- lang: cURL
source: "curl -i -X POST \\\n https://your-instance.mirakl.net/api/inbox/threads/{thread_id}/message \\\n -H 'Content-Type: multipart/form-data' \\\n -F 'files=@path/to/file' \\\n -F 'message_input=\"{\\\"body\\\":\\\"string\\\",\\\"to\\\":[{\\\"id\\\":\\\"string\\\",\\\"type\\\":\\\"OPERATOR\\\"}],\\\"topic\\\":{\\\"type\\\":\\\"FREE_TEXT\\\",\\\"value\\\":\\\"string\\\"}}\";type=application/json'\n"
servers:
- description: URL to be replaced by your Mirakl instance URL
url: https://your-instance.mirakl.net
/api/inbox/threads/{attachment_id}/download:
get:
description: '<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>
# --- truncated at 32 KB (87 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mirakl/refs/heads/main/openapi/mirakl-messages-api-openapi.yml