Mirakl Offers API
The Offers API from Mirakl — 16 operation(s) for offers.
The Offers API from Mirakl — 16 operation(s) for offers.
openapi: 3.1.0
info:
description: '{% partial file="/partial-content/product/connect-channel-platform/rest/connect/openapi-description.md" /%}'
title: Mirakl Connect Channel Platform APIs Carriers Offers API
version: ''
servers:
- description: Connect Channel Platform API
url: https://miraklconnect.com/api/channel-platform
tags:
- name: Offers
paths:
/api/offers/imports:
post:
description: '<div class="extension-title">Description</div>
Returns the import identifier to track the status of the import.
<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>
<div class="recommended-call-frequency">Recommended usage: Every 5 minutes with offers only, every hour with offers and products, for each seller</div>
<div class="max-call-frequency">Maximum usage: Once per minute with offers only, once every 15 minutes with offers and products, for each seller</div>
</div>'
operationId: OF01
parameters: []
requestBody:
content:
multipart/form-data:
examples:
multipart/form-data-0:
summary: text/csv payload
value:
file: 'sku;product-id;product-id-type;description;internal-description;price-additional-info;quantity;min-quantity-alert;state;available-start-date;available-end-date;logistic-class;update-delete;discount-start-date;discount-end-date;price;discount-price;discount-ranges;price-ranges;discount-start-date[channel=FR];discount-end-date[channel=FR];price[channel=FR];discount-price[channel=FR];discount-ranges[channel=FR];prices-ranges[channel=FR];discount-start-date[channel=CA];discount-end-date[channel=CA];price[channel=CA];discount-price[channel=CA];discount-ranges[channel=CA];prices-ranges[channel=CA];leadtime-to-ship;ecotax;gift-wrap;min-quantity-ordered;producer-id[FR-DEA];eco-contribution-amount[FR-DEA];producer-id[DE-WEEE];eco-contribution-amount[DE-WEEE]
OFFER_SKU_004;MKP100000000037254;SKU;My Offer Description n∞1;My Internal description 1;My price Additional innformations;1000000;20;11;2017-02-20T10:45:53+01;2017-04-30T10:45:53+01;S;update;2017-02-22T10:45:53+01;2017-04-30T10:45:53+01;110.52;108,56;;5|109.20,10|108.736;2017-02-22T10:45:53+01;2017-03-31T10:45:53+01;105.56;102,36;;5|104.56,10|103.27;2017-02-22T10:45:53+01;2017-03-31T10:45:53+01;190.23;175,36;;5|182.58,10|181.27;15;1;true;1;FR123456_89ABCD;3.59;ProducerID1;0.99
'
import_mode: NORMAL
operator_format: true
shop: 0
with_products: true
multipart/form-data-auto:
summary: Complete example with value types (multipart/form-data)
value:
file: string
import_mode: NORMAL
operator_format: true
shop: 0
with_products: true
schema:
type: object
properties:
file:
type: string
format: binary
description: 'Import file (CSV or XML or XLSX) to upload. Use <code>multipart/form-data</code> with name <code>file</code>.<br/> Csv format:<br/><pre>"sku";"product-id";"product-id-type";"description";"internal-description";"price";"price-additional-info";"quantity";"min-quantity-alert";"state";"available-start-date";"available-end-date";"discount-price";"discount-start-date";"discount-end-date";"discount-ranges";"allow-quote-requests";"leadtime-to-ship";"min-order-quantity";"max-order-quantity";"package-quantity";"update-delete";"price-ranges";"ecotax";"gift-wrap";"min-quantity-ordered"</pre><br/><br/>If you use specific sales channels, use: <pre>"price[channel=channel code]";"discount-price[channel=channel code]";"discount-start-date[channel=channel code]";"discount-end-date[channel=channel code]";"discount-ranges[channel=channel code]";"price-ranges[channel=channel code]"</pre><br/>If you use the price per measurement unit feature, use <code>pricing-unit</code> to specify the unit corresponding to the submitted <code>price</code>.<br/><br/>If US Tax options are activated on the platform, use: <code>product-tax-code</code> to facilitate tax calculations.<br/><br/>If <i>Data collection related to circular economy regulations</i> is enabled, use:<br/><pre>"producer-id[EPR category code]"; "eco-contribution-amount[EPR category code]"</pre>EPR category code must be one of: <pre>FR-AGROPACK, FR-ASL, FR-DASRIPAT, FR-DBPS, FR-DDS, FR-DEA, FR-DEEE, FR-DISPMED, FR-DIY, FR-EMBM, FR-GF, FR-JOUETS, FR-LUB, FR-MH, FR-MNU, FR-PA, FR-PAP, FR-PCHIM, FR-PMCB, FR-PNEU, FR-TABAC, FR-TLC, FR-VEHICULE, FR-VHU, DE-BATTG, DE-PACK, DE-WEEE, ES-PACK, ES-GPACK, ES-WEEE</pre><br/>'
import_mode:
type: string
description: "Enum: `\"NORMAL\"`, `\"REPLACE\"`\n\n<details>\n <summary>See deprecated values</summary>\n\n Deprecated values: `\"PARTIAL_UPDATE\"`\n</details>\n"
operator_format:
type: boolean
default: false
description: Force the use of the operator product format
shop:
type: integer
format: int64
description: Shop Identifier
with_products:
type: boolean
default: false
description: This file also contains product information
required:
- file
- import_mode
- shop
responses:
'201':
content:
application/json:
examples:
application/json-0:
summary: Example with business values (application/json)
value:
import_id: 2035
product_import_id: 2036
application/json-auto:
summary: Complete example with value types (application/json)
value:
import_id: 0
product_import_id: 0
schema:
type: object
$ref: '#/components/schemas/OF01_Response_201'
description: Created
headers:
Location:
description: Pre-calculated URL to call to get the import status
explode: false
schema: {}
style: simple
security:
- Operator-Bearer-Token: []
- OAuth-2: []
summary: OF01 - Import a file to create, update or delete offers
tags:
- Offers
x-codeSamples:
- lang: cURL
source: "curl -i -X POST \\\n https://your-instance.mirakl.net/api/offers/imports \\\n -H 'Content-Type: multipart/form-data' \\\n -F 'file=@path/to/file' \\\n -F 'import_mode=\"\\\"NORMAL\\\"\";type=application/json' \\\n -F 'operator_format=\"true\";type=application/json' \\\n -F 'shop=\"0\";type=application/json' \\\n -F 'with_products=\"true\";type=application/json'\n"
get:
description: '<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>
<div class="recommended-call-frequency">Recommended usage: Every 5 minutes</div>
<div class="max-call-frequency">Maximum usage: Once per minute</div>
<div class="extension-title">Pagination</div>
<p>This resource supports seek pagination (<a href="#section/Seek-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: OF04
parameters:
- description: Shop identifier
explode: true
in: query
name: shop_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: Offer import status
explode: true
in: query
name: status
required: false
schema:
type: string
enum:
- WAITING_SYNCHRONIZATION_PRODUCT
- WAITING
- RUNNING
- COMPLETE
- FAILED
style: form
- description: Offer import mode
explode: true
in: query
name: mode
required: false
schema:
type: string
enum:
- NORMAL
- REPLACE
style: form
- description: List of offer import origins for filtering. This parameter can be supplied multiple times (origins=API&origins=FTP...).
explode: true
in: query
name: origins
required: false
schema:
type: array
items:
type: string
enum:
- API
- FTP
- SFTP
- HTTP
- HTTPS
- FRONT
- PENDING_OFFERS
style: form
responses:
'200':
content:
application/json:
examples:
application/json-0:
summary: Example with business values (application/json)
value:
data:
- date_created: '2021-05-11T14:50:25Z'
has_error_report: false
import_id: 2029
lines_in_error: 0
lines_in_pending: 0
lines_in_success: 8
lines_read: 8
mode: NORMAL
offer_deleted: 3
offer_inserted: 3
offer_updated: 2
origin: FRONT
shop_id: 123
status: COMPLETE
- date_created: '2021-05-11T14:50:25Z'
has_error_report: true
import_id: 2028
lines_in_error: 1
lines_in_pending: 0
lines_in_success: 9
lines_read: 10
mode: NORMAL
offer_deleted: 3
offer_inserted: 3
offer_updated: 3
origin: API
reason_status: A parsing error has occurred at line 10
shop_id: 456
status: WAITING
next_page_token: bGltaXQ9MiZhZnRlcj0yMDIxLTA1LTExJTIwMTY6NTA6MjUuNDczJnNvcnQ9ZGF0ZUNyZWF0ZWQsREVTQw==
previous_page_token: null
application/json-auto:
summary: Complete example with value types (application/json)
value:
data:
- date_created: '2023-03-28T09:34:42Z'
has_error_report: true
import_id: 0
lines_in_error: 0
lines_in_pending: 0
lines_in_success: 0
lines_read: 0
mode: NORMAL
offer_deleted: 0
offer_inserted: 0
offer_updated: 0
origin: API
reason_status: string
shop_id: 0
status: WAITING_SYNCHRONIZATION_PRODUCT
next_page_token: string
previous_page_token: string
schema:
type: object
$ref: '#/components/schemas/OF04_Response_200'
description: OK
security:
- Operator-Bearer-Token: []
- OAuth-2: []
summary: OF04 - Get information and statistics about offer imports
tags:
- Offers
/api/offers/imports/{import}:
get:
description: '<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>
<div class="recommended-call-frequency">Recommended usage: After each OF01 call, every 5 minutes</div>
<div class="max-call-frequency">Maximum usage: Once per minute</div>
</div>'
operationId: OF02
parameters:
- description: Import identifier
explode: false
in: path
name: import
required: true
schema:
type: integer
format: int64
style: simple
responses:
'200':
content:
application/json:
examples:
application/json-0:
summary: Example with business values (application/json)
value:
date_created: '2019-04-01T15:16:31Z'
has_error_report: false
import_id: 2035
lines_in_error: 0
lines_in_pending: 0
lines_in_success: 1
lines_read: 1
mode: NORMAL
offer_deleted: 0
offer_inserted: 1
offer_updated: 0
status: COMPLETE
application/json-auto:
summary: Complete example with value types (application/json)
value:
date_created: '2023-03-28T09:34:42Z'
has_error_report: true
import_id: 0
lines_in_error: 0
lines_in_pending: 0
lines_in_success: 0
lines_read: 0
mode: NORMAL
offer_deleted: 0
offer_inserted: 0
offer_updated: 0
reason_status: string
status: WAITING_SYNCHRONIZATION_PRODUCT
type: AUTO
schema:
type: object
$ref: '#/components/schemas/OF02_Response_200'
description: OK
security:
- Operator-Bearer-Token: []
- OAuth-2: []
summary: OF02 - Get information and statistics about an offer import
tags:
- Offers
/api/offers/imports/{import}/error_report:
get:
description: '<div class="extension-title">Description</div>
This API returns a CSV, XLSX or XML file, depending on the file format provided by the seller.
<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>
<div class="recommended-call-frequency">Recommended usage: After each OF02 call, every 5 minutes</div>
<div class="max-call-frequency">Maximum usage: Once per minute</div>
</div>'
operationId: OF03
parameters:
- description: Import identifier
explode: false
in: path
name: import
required: true
schema:
type: integer
format: int64
style: simple
responses:
'200':
content:
application/octet-stream:
examples:
application/octet-stream-0:
summary: Example with business values (application/octet-stream)
value: '"sku";"product-id";"product-id-type";"description";"internal-description";"price-additional-info";"quantity";"min-quantity-alert";"state";"available-start-date";"available-end-date";"logistic-class";"update-delete";"discount-start-date";"discount-end-date";"price";"discount-price";"discount-ranges";"price-ranges";"discount-start-date[channel=FR]";"discount-end-date[channel=FR]";"price[channel=FR]";"discount-price[channel=FR]";"discount-ranges[channel=FR]";"prices-ranges[channel=FR]";"discount-start-date[channel=CA]";"discount-end-date[channel=CA]";"price[channel=CA]";"discount-price[channel=CA]";"discount-ranges[channel=CA]";"prices-ranges[channel=CA]";"leadtime-to-ship";"error-line";"error-message"
"OFFER_SKU_004";"MKP100000000195360";"SKU";"My Offer Description n°1";"My Internal description 1";"My price Additional innformations";"1000000";"20";"11";"2017-02-20T10:45:53+01";"2017-04-30T10:45:53+01";"S";"update";"2017-02-22T10:45:53+01";"2017-04-30T10:45:53+01";"110.52";"108,56";"";"5|109.20,10|108.736";"2017-02-22T10:45:53+01";"2017-03-31T10:45:53+01";"105.56";"102,36";"";"5|104.56,10|103.27";"2017-02-22T10:45:53+01";"2017-03-31T10:45:53+01";"190.23";"175,36";"";"5|182.58,10|181.27";"15";"2";"The product does not exist"
'
application/octet-stream-auto:
summary: Complete example with value types (application/octet-stream)
value: string
schema:
type: string
format: binary
description: OK
security:
- Operator-Bearer-Token: []
- OAuth-2: []
summary: OF03 - Get the error report file for an offer import
tags:
- Offers
/api/offers/{offer}:
get:
description: '<div class="api-description-extension">
<div class="extension-title">Call Frequency</div>
<div class="recommended-call-frequency">Recommended usage: At each offer page display</div>
<div class="max-call-frequency">Maximum usage: At each offer page 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_price_approval.htm">If the "Price approval" option is activated, read this page</a></li><li><a href="https://help.mirakl.com/bundle/customers/page/topics/Mirakl/integration_guide/adv_pricing_inte/adv_pricing_offer_apis.htm#Aboutprioritizationrulesforpricefields">Price prioritization for Advanced Pricing</a></li></ul><div class="extension-title">Localization</div>
<p>This resource supports <code>locale</code> parameter (<a href="#section/Locale">see documentation</a>)</p><p>Localized output fields will be highlighted with an icon: <span class="flag"></span></p></div>'
operationId: OF22
parameters:
- description: Offer identifier
explode: false
in: path
name: offer
required: true
schema:
type: integer
format: int64
style: simple
- description: Filter used to pick prices on a specific channel
explode: true
in: query
name: pricing_channel_code
required: false
schema:
type: string
style: form
- description: For Customer Pricing users only. Customer identifier code the API will use to return all prices and applicable price for this organization. Ignored if value does not exist.
explode: true
in: query
name: pricing_customer_organization_id
required: false
schema:
type: string
style: form
responses:
'200':
content:
application/json:
examples:
application/json-0:
summary: Example with business values for single channel pricing users (application/json)
value:
active: true
all_prices:
- channel_code: null
discount_end_date: '2019-04-29T22:00:00Z'
discount_start_date: '2019-03-31T22:00:00Z'
price: 49
unit_discount_price: 49
unit_origin_price: 50
volume_prices:
- price: 49
quantity_threshold: 1
unit_discount_price: 49
unit_origin_price: 50
- price: 44
quantity_threshold: 50
unit_discount_price: 44
unit_origin_price: 45
- price: 39
quantity_threshold: 100
unit_discount_price: 39
unit_origin_price: 40
- channel_code: US
context:
channel_codes:
- US
discount_end_date: '2019-04-29T22:00:00Z'
discount_start_date: '2019-03-31T22:00:00Z'
price: 59
unit_discount_price: 59
unit_origin_price: 60
volume_prices:
- price: 59
quantity_threshold: 1
unit_discount_price: 59
unit_origin_price: 60
- price: 49
quantity_threshold: 50
unit_discount_price: 49
unit_origin_price: 50
- price: 44
quantity_threshold: 100
unit_discount_price: 44
unit_origin_price: 45
- channel_code: US
context:
channel_codes:
- US
customer_group_ids:
- Group2
- Group3
customer_organization_ids:
- Org1
end_date: '2023-12-31T23:59:59Z'
start_date: '2023-01-01T00:00:00Z'
discount_end_date: '2023-01-31T22:00:00Z'
discount_start_date: '2023-03-31T22:00:00Z'
price: 29
unit_discount_price: 29
unit_origin_price: 30
volume_prices:
- price: 29
quantity_threshold: 1
unit_discount_price: 29
unit_origin_price: 30
- price: 19
quantity_threshold: 20
unit_discount_price: 19
unit_origin_price: 20
- price: 14
quantity_threshold: 100
unit_discount_price: 14
unit_origin_price: 15
allow_quote_requests: false
applicable_pricing:
channel_code: US
context:
channel_codes:
- US
customer_group_ids:
- Group2
- Group3
customer_organization_ids:
- Org1
end_date: '2023-12-31T23:59:59Z'
start_date: '2023-01-01T00:00:00Z'
discount_end_date: '2023-01-31T22:00:00Z'
discount_start_date: '2023-03-31T22:00:00Z'
price: 29
unit_discount_price: 29
unit_origin_price: 30
volume_prices:
- price: 29
quantity_threshold: 1
unit_discount_price: 29
unit_origin_price: 30
- price: 19
quantity_threshold: 20
unit_discount_price: 19
unit_origin_price: 20
- price: 14
quantity_threshold: 100
unit_discount_price: 14
unit_origin_price: 15
available_end_date: '2019-09-29T22:00:00Z'
available_start_date: '2019-03-31T22:00:00Z'
category_code: '3016100'
category_label: Shoes
channels:
- FR
- US
currency_iso_code: USD
description: Offer for product MKP100000000154824
discount:
discount_price: null
end_date: '2019-04-29T22:00:00Z'
origin_price: 50
ranges:
- price: 49
quantity_threshold: 1
- price: 44
quantity_threshold: 50
- price: 39
quantity_threshold: 100
start_date: '2019-03-31T22:00:00Z'
eco_contributions:
- eco_contribution_amount: 3.59
epr_category_code: FR-DEA
producer_id: FR123456_89ABCD
- eco_contribution_amount: 0.99
epr_category_code: DE-WEEE
producer_id: ProducerID1
fulfillment:
center:
code: DEFAULT
inactivity_reasons:
- SHOP_NOT_OPEN
- ZERO_QUANTITY
leadtime_to_ship: 10
logistic_class:
code: M
label: Medium
max_order_quantity: 5
min_order_quantity: 1
min_quantity_alert: 1
min_shipping_price: 0
min_shipping_price_additional: 0
min_shipping_type: CLC
min_shipping_zone: DOM1
model: MARKETPLACE
offer_additional_fields:
- code: ecotax
type: NUMERIC
value: '20'
- code: gift-wrap
type: BOOLEAN
value: 'true'
- code: min-quantity-ordered
type: NUMERIC
value: '5'
offer_id: 2135
package_quantity: 1
price: 49
price_additional_info: Apply Discount prices
product_brand: Capture
product_description: 'Cobalt, fuchsia, leopard print: imitation suede upper. Synthetic lining, upper and sole. Almond toe court with cushioned sole. Heel height 9cm.'
product_references:
- reference: '9400016774345'
reference_type: EAN
product_sku: MKP100000000154824
product_title: Capture Coloured Court Shoe - 10
quantity: 1000000
shipping_deadline: '2019-09-01T23:59:59.999Z'
shop_grade: 4
shop_id: 2000
shop_name: ACME SHOP
shop_sku: S2002
state_code: '11'
total_price: 49
warehouses:
- code: WAREHOUSE_001
quantity: 750000
- code: WAREHOUSE_002
quantity: 250000
application/json-1:
summary: Example with business values for multi channel pricing users (application/json)
value:
active: true
all_prices:
- channel_code: null
discount_end_date: '2019-04-29T22:00:00Z'
discount_start_date: '2019-03-31T22:00:00Z'
price: 49
unit_discount_price: 49
unit_origin_price: 50
volume_prices:
- price: 49
quantity_threshold: 1
unit_discount_price: 49
unit_origin_price: 50
- price: 44
quantity_threshold: 50
unit_discount_price: 44
unit_origin_price: 45
- price: 39
quantity_threshold: 100
unit_discount_price: 39
unit_origin_price: 40
- channel_code: null
context:
channel_codes:
- US
discount_end_date: '2019-04-29T22:00:00Z'
discount_start_date: '2019-03-31T22:00:00Z'
price: 59
unit_discount_price: 59
unit_origin_price: 60
volume_prices:
- price: 59
quantity_threshold: 1
unit_discount_price: 59
unit_origin_price: 60
- price: 49
quantity_threshold: 50
unit_discount_price: 49
unit_origin_price: 50
- price: 44
quantity_threshold: 100
unit_discount_price: 44
unit_origin_price: 45
- channel_code: null
context:
channel_codes:
- US
- FR
customer_group_ids:
- Group2
- Group3
customer_organization_ids:
- Org1
end_date: '2023-12-31T23:59:59Z'
start_date: '2023-01-01T00:00:00Z'
discount_end_date: '2023-01-31T22:00:00Z'
discount_start_date: '2023-03-31T22:00:00Z'
price: 29
unit_discount_price: 29
unit_origin_price: 30
volume_prices:
- price: 29
quantity_threshold: 1
unit_discount_price: 29
unit_origin_price: 30
- price: 19
quantity_threshold: 20
unit_discount_price: 19
unit_origin_price: 20
- price: 14
quantity_threshold: 100
unit_discount_price: 14
unit_origin_price: 15
allow_quote_requests: false
applicable_pricing:
channel_code: null
context:
channel_codes:
- US
- FR
customer_group_ids:
- Group2
- Group3
customer_organization_ids:
- Org1
end_date: '2023-12-31T23:59:59Z'
start_date: '2023-01-01T00:00:00Z'
discount_end_date: '2023-01-31T22:00:00Z'
discount_start_date: '2023-03-31T22:00:00Z'
price: 29
unit_discount_price: 29
unit_origin_price: 30
volume_prices:
- price: 29
quantity_threshold: 1
unit_discount_price: 29
unit_origin_price: 30
- price: 19
quantity_threshold: 20
unit_discount_price: 19
unit_origin_price: 20
- price: 14
quantity_threshold: 100
unit_discount_price: 14
unit_origin_price: 15
available_end_date: '2019-09-29T22:00:00Z'
available_start_date: '2019-03-31T22:00:00Z'
category_code: '3016100'
category_label: Shoes
channels:
- FR
# --- truncated at 32 KB (320 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mirakl/refs/heads/main/openapi/mirakl-offers-api-openapi.yml