Splio Sales data API

The Sales data API from Splio — 14 operation(s) for sales data.

Operations 18

GET /data/v1/orders List orders #
POST /data/v1/orders Create an order/cart #
DELETE /data/orders/{id} Delete an order/cart #
GET /data/v1/orders/{id} Get an order/cart #
GET /data/v2/orders/{id} Get an order/cart with its status #
PATCH /data/v3/orders/{id} Edit an order/cart #
GET /data/v1/orders/abandoned List abandoned carts #
GET /data/v2/orders List orders with their status #
GET /data/v1/products List products #
POST /data/v1/products Create a product #
DELETE /data/products/{id} Delete a product #
GET /data/v1/products/{id} Get a product #
PATCH /data/v1/products/{id} Edit a product #
GET /data/v1/stores List stores #
POST /data/v1/stores Create a store #
DELETE /data/stores/{id} Delete a store #
GET /data/v1/stores/{id} Get a store #
PATCH /data/v2/stores/{id} Edit a store #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/splio-sales-data-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

splio-sales-data-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Splio Customer Platform Sales data API
  description: API Documentation for Splio Customer Platform
  version: 1.0.0
servers:
- url: https://api.splio.com
- url: http://api.splio.com
tags:
- name: Sales data
paths:
  /data/v1/orders:
    get:
      summary: List orders
      description: Get the list of orders.
      parameters:
      - name: per_page
        in: query
        required: false
        description: Number of items displayed per page.
        schema:
          type: integer
          minimum: 1
          maximum: 1000
          default: 50
      - name: page_number
        in: query
        required: false
        description: Page number.
        schema:
          type: integer
          minimum: 1
          default: 1
      - name: fields
        in: query
        required: false
        description: Use a combination of field, operator and searched value. It will return orders that matched your search. Fields available on search in orders are 'external_id', 'shipping_amount', 'discount_amount', 'total_price', 'tax_amount', 'currency', 'sales_person', 'created_at', 'ordered_at' and custom fields numbers (0, 1, 2, ...)
        style: form
        explode: false
        schema:
          type: array
          items:
            example:
            - key: external_id
              operator: equal
              value: CGX00000945842
            properties:
              key:
                description: search fields, in contacts
                type: string
                enum:
                - external_id
                - shipping_amount
                - discount_amount
                - total_price
                - tax_amount
                - currency
                - sales_person
                - created_at
                - ordered_at
              operator:
                description: operator for search operators are limited by the type of value expected
                type: string
                enum:
                - is
                - after
                - before
                - contains
                - ends
                - equal
                - greater
                - isnot
                - lower
                - notequal
                - starts
              value:
                type: string
            type: object
      responses:
        '200':
          description: Orders retrieval is successful.
          content:
            application/json:
              examples:
                response:
                  value:
                    count_element: 2
                    current_page: 1
                    sort:
                      id: desc
                    elements:
                    - external_id: 3
                      created_at: '2017-12-26 10:09:12'
                      ordered_at: '2017-12-26 10:09:12'
                      shipping_amount: 15.24
                      discount_amount: 0
                      total_price: 1337.42
                      tax_amount: 0.5
                      currency: EUR
                      sales_person: John Doe
                      contact:
                        id: 5
                        contact_id: jdoe@email.com
                        name: Doe
                        firstname: John
                      store:
                        external_id: '5'
                        name: champs élysée
                      custom_fields:
                      - id: 0
                        name: id_mail
                        value: S2G1190284746300227
                      - id: 1
                        name: id_lien
                        value: N1190284R746383111
        '400':
          description: The request validation failed.
          x-readme: BODYBODY
          content:
            application/json:
              examples:
                response:
                  value:
                    status: 400
                    errors:
                    - error_key: field_1
                      error: wrong_value
                      error_description: The request was malformed and it is unable to be processed. Please review and try again.
        '401':
          description: Authentication failed.
        '403':
          description: Forbidden.
      tags:
      - Sales data
      security:
      - Bearer: []
      operationId: getDataV1Orders
      x-operation-id-source: derived
    post:
      summary: Create an order/cart
      description: Create an order or an abandoned cart.
      requestBody:
        content:
          application/json:
            schema:
              required:
              - external_id
              - store_external_id
              - contact_id
              properties:
                external_id:
                  example: my_order_123
                  type: string
                contact_id:
                  example: jdoe@email.com
                  type: string
                card_code:
                  example: my_card_code
                  type: string
                store_external_id:
                  example: ext_madeleine
                  type: string
                ordered_at:
                  description: When the order was purchased (local timezone).
                  example: '2018-01-12 15:00:00'
                  type: string
                  pattern: ^\d\d\d\d-(0?[1-9]|1[0-2])-(0?[1-9]|[12][0-9]|3[01]) (00|[0-9]|1[0-9]|2[0-3]):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9])$
                discount_amount:
                  example: 0.25
                  type: number
                shipping_amount:
                  example: 0.75
                  type: number
                total_price:
                  example: 1.55
                  type: number
                tax_amount:
                  example: 0.55
                  type: number
                completed:
                  description: Order is purchased or not
                  example: 'false'
                  type: boolean
                  default: true
                sales_person:
                  example: John Doe
                  type: string
                currency:
                  example: EUR
                  type: string
                products:
                  example:
                  - product_id: '10'
                    unit_price: '25'
                    quantity: 2
                    discount_amount: 0
                    tax_amount: 0
                    currency: EUR
                    total_line_amount: '50'
                  items:
                    properties:
                      product_id:
                        type: string
                      unit_price:
                        type: number
                      quantity:
                        type: integer
                      discount_amount:
                        type: number
                      tax_amount:
                        type: number
                      currency:
                        type: string
                      total_line_amount:
                        type: number
                    type: object
                  type: array
                custom_fields:
                  example:
                  - name: foo
                    value: bar
                  - name: foo2
                    value: bar2
                  items:
                    properties:
                      id:
                        type: integer
                      name:
                        type: string
                      value:
                        type: string
                    type: object
                  type: array
              type: object
        description: Order data.
        required: true
      responses:
        '201':
          description: Order creation is successful.
          content:
            application/json:
              examples:
                response:
                  value:
                    external_id: my_order12348
                    contact_id: jdoe@email.com
                    contact:
                      lastname: Hervet
                      firstname: Geoffrey
                      id: 1
                      contact_id: jdoe@email.com
                    created_at: '2018-07-15 18:45:00'
                    ordered_at: '2018-07-15 18:45:00'
                    shipping_amount: 0
                    discount_amount: 0
                    total_price: 1.55
                    tax_amount: 0.55
                    sales_person: Mark Watney
                    currency: EUR
                    products:
                    - external_id: '10'
                      name: Color Riche  - Vernis
                      description: 140 Martinez Cobal
                      brand: L'Oréal Paris
                      unit_price: 10.25
                      quantity: 2
                      discount_amount: 0
                      tax_amount: 0
                      currency: EUR
                      total_line_amount: 20.5
                    loyalty:
                      card_code: C0111191
                      id_program: 2
                    store:
                      external_id: '2'
                      name: Champs élysées
                      online: false
                      store_type: retail
                      manager: Eric Sloane
                    custom_fields:
                    - id: 0
                      name: id_mail
                      value: ''
        '400':
          description: The request validation failed.
          x-readme: BODYBODY
          content:
            application/json:
              examples:
                response:
                  value:
                    status: 400
                    errors:
                    - error_key: field_1
                      error: wrong_value
                      error_description: The request was malformed and it is unable to be processed. Please review and try again.
        '401':
          description: Authentication failed.
        '403':
          description: Forbidden.
      tags:
      - Sales data
      security:
      - Bearer: []
      operationId: postDataV1Orders
      x-operation-id-source: derived
  /data/orders/{id}:
    delete:
      summary: Delete an order/cart
      description: Delete an order or an abandoned cart.
      parameters:
      - name: id
        in: path
        required: true
        description: Order's external identifier.
        schema:
          type: string
          pattern: .+
      responses:
        '204':
          description: Order is successfully deleted.
          content:
            application/json:
              examples:
                response:
                  value: []
        '400':
          description: The request validation failed.
          x-readme: BODYBODY
          content:
            application/json:
              examples:
                response:
                  value:
                    status: 400
                    errors:
                    - error_key: field_1
                      error: wrong_value
                      error_description: The request was malformed and it is unable to be processed. Please review and try again.
        '401':
          description: Authentication failed.
        '403':
          description: Forbidden.
        '404':
          description: Order not found.
          content:
            application/json:
              examples:
                response:
                  value:
                    status: 404
                    errors:
                    - error_key: ext_id
                      error: wrong_value
                      error_description: Order not found for given identifier.
      tags:
      - Sales data
      security:
      - Bearer: []
      operationId: deleteDataOrdersById
      x-operation-id-source: derived
  /data/v1/orders/{id}:
    get:
      summary: Get an order/cart
      description: Get a order or an abandoned cart data based on its external_id.
      parameters:
      - name: id
        in: path
        required: true
        description: Order's external identifier.
        schema:
          type: string
          pattern: .+
      responses:
        '200':
          description: Order retrieval is successful.
          content:
            application/json:
              examples:
                response:
                  value:
                    external_id: my_order12348
                    contact_id: jdoe@email.com
                    contact:
                      lastname: Hervet
                      firstname: Geoffrey
                      id: 1
                      contact_id: jdoe@email.com
                    created_at: '2018-07-15 18:45:00'
                    ordered_at: '2018-07-15 18:45:00'
                    shipping_amount: 0
                    discount_amount: 0
                    total_price: 0.5
                    tax_amount: 0.2
                    sales_person: Mark Watney
                    currency: EUR
                    products:
                    - external_id: '10'
                      name: Color Riche  - Vernis
                      description: 140 Martinez Cobal
                      brand: L'Oréal Paris
                      unit_price: 10.25
                      quantity: 2
                      discount_amount: 0
                      tax_amount: 0
                      currency: EUR
                      total_line_amount: 20.5
                    loyalty:
                      card_code: C0111191
                      id_program: 2
                    store:
                      external_id: '2'
                      name: Champs élysées
                      online: false
                      store_type: retail
                      manager: Eric Sloane
                    custom_fields:
                    - id: 0
                      name: id_mail
                      value: ''
        '400':
          description: The request validation failed.
          x-readme: BODYBODY
          content:
            application/json:
              examples:
                response:
                  value:
                    status: 400
                    errors:
                    - error_key: field_1
                      error: wrong_value
                      error_description: The request was malformed and it is unable to be processed. Please review and try again.
        '401':
          description: Authentication failed.
        '403':
          description: Forbidden.
        '404':
          description: Order not found.
          content:
            application/json:
              examples:
                response:
                  value:
                    status: 404
                    errors:
                    - error_key: ext_id
                      error: wrong_value
                      error_description: Order not found for given identifier.
      tags:
      - Sales data
      security:
      - Bearer: []
      operationId: getDataV1OrdersById
      x-operation-id-source: derived
  /data/v2/orders/{id}:
    get:
      summary: Get an order/cart with its status
      description: Get a order or an abandoned cart based on its external_id, and get the status associated to the order as well.
      parameters:
      - name: id
        in: path
        required: true
        description: Order's external identifier.
        schema:
          type: string
          pattern: .+
      responses:
        '200':
          description: Order retrieval is successful.
          content:
            application/json:
              examples:
                response:
                  value:
                    external_id: my_order12348
                    contact_id: jdoe@email.com
                    contact:
                      lastname: Hervet
                      firstname: Geoffrey
                      id: 1
                      contact_id: jdoe@email.com
                    created_at: '2018-07-15 18:45:00'
                    ordered_at: '2018-07-15 18:45:00'
                    shipping_amount: 0
                    discount_amount: 0
                    total_price: 0.5
                    tax_amount: 0.2
                    sales_person: Mark Watney
                    currency: EUR
                    products:
                    - external_id: '10'
                      name: Color Riche  - Vernis
                      description: 140 Martinez Cobal
                      brand: L'Oréal Paris
                      unit_price: 10.25
                      quantity: 2
                      discount_amount: 0
                      tax_amount: 0
                      currency: EUR
                      status: paid
                      total_line_amount: 20.5
                    loyalty:
                      card_code: C0111191
                      id_program: 2
                    store:
                      external_id: '2'
                      name: Champs élysées
                      online: false
                      store_type: retail
                      manager: Eric Sloane
                    custom_fields:
                    - id: 0
                      name: id_mail
                      value: ''
                    status: paid
                    status_lastupdate: '2018-07-15 18:45:00'
        '400':
          description: The request validation failed.
          x-readme: BODYBODY
          content:
            application/json:
              examples:
                response:
                  value:
                    status: 400
                    errors:
                    - error_key: field_1
                      error: wrong_value
                      error_description: The request was malformed and it is unable to be processed. Please review and try again.
        '401':
          description: Authentication failed.
        '403':
          description: Forbidden.
        '404':
          description: Order not found.
          content:
            application/json:
              examples:
                response:
                  value:
                    status: 404
                    errors:
                    - error_key: ext_id
                      error: wrong_value
                      error_description: Order not found for given identifier.
      tags:
      - Sales data
      security:
      - Bearer: []
      operationId: getDataV2OrdersById
      x-operation-id-source: derived
  /data/v3/orders/{id}:
    patch:
      summary: Edit an order/cart
      description: Edit an entire order or an abandoned cart with its custom fields.
      parameters:
      - name: id
        in: path
        required: true
        description: Order's external identifier.
        schema:
          type: string
          pattern: .+
      requestBody:
        content:
          application/json:
            schema:
              properties:
                contact_id:
                  example: jdoe@email.com
                  type: string
                store_external_id:
                  example: ext_madeleine
                  type: string
                ordered_at:
                  description: When the order was purchased (local timezone).
                  example: '2018-01-12 15:00:00'
                  type: string
                  pattern: ^\d\d\d\d-(0?[1-9]|1[0-2])-(0?[1-9]|[12][0-9]|3[01]) (00|[0-9]|1[0-9]|2[0-3]):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9])$
                discount_amount:
                  example: 0.25
                  type: number
                shipping_amount:
                  example: 0.75
                  type: number
                total_price:
                  example: 1.55
                  type: number
                tax_amount:
                  example: 0.55
                  type: number
                sales_person:
                  example: John Doe
                  type: string
                completed:
                  description: Order is purchased or not
                  example: 'false'
                  type: boolean
                currency:
                  example: EUR
                  type: string
                products:
                  description: empty array will erase existing order lines. In order to avoid deleting data, either don't specify 'products' or set it to null
                  example:
                  - product_id: '10'
                    unit_price: '25'
                    quantity: 2
                    discount_amount: 0
                    tax_amount: 0
                    currency: EUR
                    total_line_amount: '50'
                  items:
                    properties:
                      product_id:
                        type: string
                      unit_price:
                        type: number
                      quantity:
                        type: integer
                      discount_amount:
                        type: number
                      tax_amount:
                        type: number
                      currency:
                        type: string
                      total_line_amount:
                        type: number
                    type: object
                  type: array
                custom_fields:
                  description: custom fields is patched too so you can only set some of them, other custom fields will not be changed
                  example:
                  - name: foo
                    value: bar
                  - name: foo2
                    value: bar2
                  items:
                    properties:
                      id:
                        type: integer
                      name:
                        type: string
                      value:
                        type: string
                    type: object
                  type: array
              type: object
        description: Order data.
        required: true
      responses:
        '200':
          description: Order data.
          content:
            application/json:
              examples:
                response:
                  value:
                    external_id: my_order12348
                    contact_id: jdoe@email.com
                    contact:
                      lastname: Hervet
                      firstname: Geoffrey
                      id: 1
                      contact_id: jdoe@email.com
                    created_at: '2018-07-15 18:45:00'
                    ordered_at: '2018-07-15 18:45:00'
                    shipping_amount: 0
                    discount_amount: 0
                    total_price: 1.55
                    tax_amount: 0.55
                    sales_person: Mark Watney
                    currency: EUR
                    products:
                    - external_id: '10'
                      name: Color Riche  - Vernis
                      description: 140 Martinez Cobal
                      brand: L'Oréal Paris
                      unit_price: 10.25
                      quantity: 2
                      discount_amount: 0
                      tax_amount: 0
                      currency: EUR
                      total_line_amount: 20.5
                    loyalty:
                      card_code: C0111191
                      id_program: 2
                    store:
                      external_id: '2'
                      name: Champs élysées
                      online: false
                      store_type: retail
                      manager: Eric Sloane
                    custom_fields:
                    - id: 0
                      name: id_mail
                      value: ''
        '400':
          description: The request validation failed.
          x-readme: BODYBODY
          content:
            application/json:
              examples:
                response:
                  value:
                    status: 400
                    errors:
                    - error_key: field_1
                      error: wrong_value
                      error_description: The request was malformed and it is unable to be processed. Please review and try again.
        '401':
          description: Authentication failed.
        '403':
          description: Forbidden.
        '404':
          description: Order not found.
          content:
            application/json:
              examples:
                response:
                  value:
                    status: 404
                    errors:
                    - error_key: ext_id
                      error: wrong_value
                      error_description: Order not found for given identifier.
      tags:
      - Sales data
      security:
      - Bearer: []
      operationId: patchDataV3OrdersById
      x-operation-id-source: derived
  /data/v1/orders/abandoned:
    get:
      summary: List abandoned carts
      description: Get the list of abandoned carts.
      parameters:
      - name: per_page
        in: query
        required: false
        description: Number of items displayed per page.
        schema:
          type: integer
          minimum: 1
          maximum: 1000
          default: 50
      - name: page_number
        in: query
        required: false
        description: Page number.
        schema:
          type: integer
          minimum: 1
          default: 1
      - name: fields
        in: query
        required: false
        description: Use a combination of field, operator and searched value. It will return abandoned carts that matched your search. Fields available on search in abandoned carts are 'external_id', 'shipping_amount', 'discount_amount', 'total_price', 'tax_amount', 'currency', 'sales_person', 'created_at', 'ordered_at' and custom fields numbers (0, 1, 2, ...)
        style: form
        explode: false
        schema:
          type: array
          items:
            example:
            - key: external_id
              operator: equal
              value: CGX00000945842
            properties:
              key:
                description: search fields, in contacts
                type: string
                enum:
                - external_id
                - shipping_amount
                - discount_amount
                - total_price
                - tax_amount
                - currency
                - sales_person
                - created_at
                - ordered_at
              operator:
                description: operator for search operators are limited by the type of value expected
                type: string
                enum:
                - is
                - after
                - before
                - contains
                - ends
                - equal
                - greater
                - isnot
                - lower
                - notequal
                - starts
              value:
                type: string
            type: object
      responses:
        '200':
          description: Abandoned carts retrieval is successful.
          content:
            application/json:
              examples:
                response:
                  value:
                    count_element: 2
                    current_page: 1
                    sort:
                      id: ASC
                    elements:
                    - external_id: 3
                      created_at: '2017-12-26 10:09:12'
                      ordered_at: null
                      shipping_amount: 15.24
                      discount_amount: 0
                      total_price: 1337.42
                      tax_amount: 0.42
                      currency: EUR
                      sales_person: John Doe
                      contact:
                        id: 5
                        contact_id: jdoe@email.com
                        name: Doe
                        firstname: John
                      store: null
                      custom_fields:
                      - id: 0
                        name: id_mail
                        value: S2G1190284746300227
                      - id: 1
                        name: id_lien
                        value: N1190284R746383111
        '400':
          description: The request validation failed.
          x-readme: BODYBODY
          content:
            application/json:
              examples:
                response:
                  value:
                    status: 400
                    errors:
                    - error_key: field_1
                      error: wrong_value
                      error_description: The request was malformed and it is unable to be processed. Please review and try again.
        '401':
          description: Authentication failed.
        '403':
          description: Forbidden.
      tags:
      - Sales data
      security:
      - Bearer: []
      operationId: getDataV1OrdersAbandoned
      x-operation-id-source: derived
  /data/v2/orders:
    get:
      summary: List orders with their status
      description: Get the list of orders with their status.
      parameters:
      - name: per_page
        in: query
        required: false
        description: Number of items displayed per page.
        schema:
          type: integer
          minimum: 1
          maximum: 1000
          default: 50
      - name: page_number
        in: query
        required: false
        description: Page number.
        schema:
          type: integer
          minimum: 1
          default: 1
      - name: fields
        in: query
        required: false
        description: Use a combination of field, operator and searched value. It will return orders that matched your search. Fields available on search in orders are 'external_id', 'shipping_amount', 'discount_amount', 'total_price', 'tax_amount', 'currency', 'sales_person', 'created_at', 'ordered_at' and custom fields numbers (0, 1, 2, ...)
        style: form
        explode: false
        schema:
          type: array
          items:
            example:
            - key: external_id
              operator: equal
              value: CGX00000945842
            properties:
              key:
                description: search fields, in contacts
                type: string
                enum:
                - external_id
                - shipping_amount
                - discount_amount
                - total_price
                - tax_amount
                - currency
                - sales_person
                - created_at
                - ordered_at
              operator:
                description: operator for search operators are limited by the type of value expected
                type: string
                enum:
                - is
                - after
                - before
                - contains
                - ends
                - equal
                - greater
                - isnot
                - lower
                - notequal
                - starts
              value:
                type: string
            type: object
      responses:
        '200':
          description: Orders retrieval is successful.
          content:
            application/json:
              examples:
                response:
                  value:
                    count_element: 2
                    current_page: 1
                    sort:
                      id: desc
                    elements:
                    - external_id: 3
                      created_at: '2017-12-26 10:09:12'
                      ordered_at: '2017-12-26 10:09:12'
                      shipping_amount: 15.24
                      discount_amount: 0
                      total_price: 1337.42
                      tax_amount: 0.5
                      currency: EUR
                      sales_person: John Doe
                      contact:
                        id: 5
                        contact_id: jdoe@email.com
                        name: Doe
                        firstname: John
                      store:
                        external_id: '5'
                        name: champs élysée
                      custom_fields:
                      - id: 0
                        name: id_mail
                        value: S2G1190284746300227
                      - id: 1
                        name: id_lien
                        value: N1190284R746383111
                      status: paid
                      status_lastupdate: '2018-07-15 18:45:00'
        '400':
          description: The request validation failed.
          x-readme: BO

# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/splio/refs/heads/main/openapi/splio-sales-data-api-openapi.yml