Headless integrate with our API

Use our powerful REST API for full flexibility - headless and easy to use.
curl --request GET \  --url 'https://api.35up.io/v1/recommendations?baseProduct.title=iPhone%2013&seller=test&session=test'

{
 "recommendations": [
   {
     "vendor": {
       "name": "caseable",
       "logo": {
         "square": "https://static.35up.io/vendors/caseable/logo/square.png",
         "landscape": "https://static.35up.io/vendors/caseable/logo/landscape.png"
       },
       "legalName": "caseable GmbH",
       "id": "caseable"
     },
     "specs": {
       "type": "physical"
     },
     "sku": "35UP004C5BLF70407C9",
     "price": {
       "value": 16.99,
       "formatted": "€ 16,99",
       "currency": "EUR"
     },
     "name": "Silikon Handyhülle schwarz",
     "images": {
       "thumbnail": "https://static.35up.io/products/caseable/2023/07/20/3482928d-0103-47d6-833f-9492599f25a4.png?session=test"
     },
     "descriptions": {
       "short": "Passend für: Apple iPhone 13 Das strapazierfähige Silikon macht diese Handyhülle zum flexiblen Schutz für dein Smartphone. Die Hülle umschließt dein Gerät für einen guten Sitz maximalen Stoßschutz und kann einfach Auf- und Abgezogen werden.",
       "long": "Passend für: Apple iPhone 13 Das strapazierfähige Silikon macht diese Handyhülle zum flexiblen Schutz für dein Smartphone. Die Hülle umschließt dein Gerät für einen guten Sitz maximalen Stoßschutz und kann einfach Auf- und Abgezogen werden."
     },
     "delivery": {
       "timeMin": 1,
       "timeMax": 7
     },
     "categories": [],
     "availability": true
   }
 ]
}

Recommendations

Get fitting recommendations wherever you like - in the checkout, the basket, the product detail page or any email.

Fulfilment

Integrate 35up fully in your system along the whole value chain - from the order to return processes.

Full Control

Control everything through the 35up admin and get pre-formatted data - no need to filter products or set prices yourself.

AI matching

No need to manually match fitting products and no need for a matching DB - 35up recognises your products automatically.

Let's get started

The most relevant endpoints are described below. To get the full picture, go to our API reference.
curl --request GET \  --url 'https://api.35up.io/v1/recommendations?baseProduct.title=iPhone%2013&seller=test&session=test'

Request

The "Get Recommendations" endpoint, a powerful tool that enables shops to retrieve product recommendations based on the specified "baseProduct.title."

  • partner: This parameter allows us to identify the partner or client accessing the API. By including the partner's unique identifier, we can ensure secure and personalized interactions with our platform.
  • session: The "session" parameter helps in tracking and managing user sessions, ensuring a seamless experience during interactions with the API. It is used to maintain context and preserve user-specific information.
  • limit: With the "limit" parameter, you can specify the maximum number of product recommendations to be returned in the API response. This allows you to control the volume of recommendations retrieved to suit your application's needs.
  • lang: The "lang" parameter lets you define the preferred language for the API response. By passing the appropriate language code (e.g., "de" for German), you can ensure that the recommendations are presented in the desired language.
  • country: This parameter helps in tailoring the product recommendations to specific geographical regions. By providing the relevant country code (e.g., "de" for Germany), the API will return recommendations that are more relevant to users in that particular country.
  • baseProduct.title: The "baseProduct.title" is a crucial parameter that specifies the product for which you want to receive recommendations. It is automatically recognized and does not need any matching.

By utilizing these parameters effectively, your shop can leverage the "Get Recommendations" endpoint to offer personalized and relevant product suggestions to your users, enhancing their overall shopping experience on your platform and increasing sales.

Response

As a response, a list of formatted products that fit is providing, already taking all admin settings in consideration. The response can be display without the need for further backend filtering.

  • recommendations: This is an array containing the list of recommended products based on the input "baseProduct.title." Each item in the array represents a recommended product with its associated details.
  • sku: The SKU (Stock Keeping Unit) is a unique identifier for the recommended product. It helps in distinguishing the product from others and is used to place an order.
  • vendor: This object provides information about the vendor of the recommended product. It includes fields like "id," "name," "legalName," and "logo," which contains URLs to the vendor's square and landscape logos.
  • name: The name of the recommended product, that can directly be displayed to the end customer.
  • images: This object contains URLs to the product's thumbnail image, making it convenient for displaying product visuals on the frontend.
  • descriptions: Here, "short" and "long" fields provide concise and detailed descriptions of the recommended product, respectively.
  • price: This object includes the price details of the recommended product. It consists of "value" (numerical price), "currency" (the currency in which the price is represented, in this case, "EUR" for Euro), and "formatted" (formatted price for display, e.g., "€ 17,99").
  • specs: Specifies the type of the product, e.g. if it is "physical" or an "insurance".
  • delivery: This object provides information about the estimated delivery time for the recommended product. It includes "timeMin" (minimum delivery time) and "timeMax" (maximum delivery time) in days.
  • categories: This field represents the product categories to which the recommended product belongs.

By parsing this JSON response, shops can extract and display these product details, allowing users to explore and purchase the recommended products seamlessly.

curl --request POST \
 --url https://api.35up.io/v1/orders \
 --header 'Authorization: Basic base64(user:pw)' \
 --header 'content-type: application/json' \
 --data '{
 "session":"",
 "status":"approved",
 "reference": "OnboardingOrderReference1",
  "customer":{
     "firstName":"TestUser Firstname",
     "lastName":"TestUser Lastname",
     "email":"contact@35up.com",
     "phone":"+1123123123"
  },
  "shippingAddress":{
     "firstName":"ShippingUser Firstname",
     "lastName":"ShippingUser Lastname",
     "email":"shipping@35up.com",
     "street":"Adalbertstrasse",
     "streetNumber":"8",
     "company":"35up GmbH",
     "extra":"Hinterhaus",
     "postcode":"10999",
     "city":"Berlin",
     "country":"DE"
  },
  "items":[
     {
       "sku":"35UP004PANZF0000105",
       "qty" : 1
     }
  ]
}'

Request

The "Post Orders" endpoint pushes your shop order to 35up.

Headers
  • Authorization: The API request is using Basic authentication with a base64 encoded token "sellerId:password". Note that this token has been truncated for security purposes, and in a real request, it would contain the appropriate credentials for authentication.
  • content-type: The content type specified as "application/json" indicates that the data being sent in the request body is in JSON format.
Request Body

The data being sent in the request body is a JSON object with the following fields:

  • session: Represents a session identifier, which might be used to maintain continuity or context during the order process.
  • status: Indicates the status of the order. It can be set to "approved" to directly approve the order while creating it.
  • reference: The shops reference ID to identify and connect the order more easy with the other shop orders.
  • customer: This object contains details of the customer placing the order. It includes the customer's "firstName," "lastName," "email," and "phone" number.
  • shippingAddress: Provides the shipping address details for delivering the order. It includes fields such as "firstName," "lastName," "email," "street," "streetNumber," "company," "extra" (additional address details like apartment number or building name), "postcode," "city," and "country."
  • items: An array of objects representing the items in the order. Each item contains the "sku" (Stock Keeping Unit) and "qty" (quantity) of the product being ordered.

By sending this POST request to the specified endpoint, with the appropriate authentication token, content type, and request body, the API will process the order with the provided information, creating an approved order associated with the customer and the shipping address specified in the request.

Response

  1. createdAt: This field indicates the timestamp when the order was created. The value represents a Unix timestamp, which is the number of seconds elapsed since January 1, 1970 (UTC). It is used to record the exact time when the order was initially created.
  2. id: The "id" field is a unique identifier assigned to the order by the system. It is a string of characters that uniquely identifies this specific order.
  3. status: This field represents the status of the order, can be "approved", "pending" or "cancelled". The "approved" status indicates that the order has been processed and accepted successfully.
  4. updatedAt: Similar to the "createdAt" field, "updatedAt" provides a Unix timestamp indicating when the order's status or information was last updated. This timestamp is useful for tracking the latest changes made to the order.

Upon making a successful POST request to the API endpoint with the required order details, the response returns this JSON object with the aforementioned fields. The response provides crucial information such as the order ID, creation and update timestamps, and the current status of the order ("approved"). This data can be used for record-keeping, order tracking, and synchronization with the backend systems of the shop or business.

curl --request POST \
 --url https://api.35up.io/v1/returns/ \
 --header 'Authorization: Basic base64(user:pw)' \
 --header 'Content-Type: application/json' \
 --data '{
 "orderId": "2c66b9100d2141eeaa7cfce73df8de36",
 "items": [
   {
     "sku": "35UP004C5BLF0000037",
     "qty": 1
   }
 ]
}'

Request

Headers
  • Authorization: The API request is using Basic authentication with a base64 encoded token "sellerId:password". Note that this token has been truncated for security purposes, and in a real request, it would contain the appropriate credentials for authentication.
  • Content-Type: The "Content-Type" header specifies that the data being sent in the request body is in JSON format. The value "application/json" indicates JSON content type.
Request Body

The data being sent in the request body is a JSON object with the following fields:

  • orderId: The "orderId" field contains the unique identifier of the original order for which the return is being requested.
  • items: This field is an array of objects representing the items to be returned. Each item in the array includes the "sku" (Stock Keeping Unit) of the product being returned and the "qty" (quantity) of that specific item to be returned.

By sending this POST request to the specified endpoint, with the appropriate authentication token, content type, and request body, the API will process the return request and initiate the return process for the specified product(s) associated with the provided order ID. The API response will contain information related to the return, which could include a return confirmation ID, timestamps, or other relevant details.

Response

  • createdAt: This field indicates the timestamp when the return was created. The value is a Unix timestamp, which represents the number of seconds elapsed since January 1, 1970 (UTC). It denotes the exact time when the return request was generated.
  • id: The "id" field is a unique identifier assigned to the return by the system. It is a string of characters that uniquely identifies this specific return request.
  • items: This array contains objects representing the items being returned. Each object includes an "id" (a unique identifier for the returned item), "qty" (quantity) representing the number of units being returned, and "sku" (Stock Keeping Unit) of the returned product.
  • orderId: The "orderId" field contains the unique identifier of the original order associated with the return. It links the return request to the specific order that the customer is returning items from.
  • sellerId: This field indicates the ID of the seller who is handling the return process. It helps in identifying the responsible party for managing the return.
  • status: The "status" field represents the current status of the return request. In this example, the status is "created," indicating that the return request has been generated and is awaiting further processing.
  • updatedAt: Similar to the "createdAt" field, "updatedAt" provides a Unix timestamp, indicating the last time the return request's status or information was updated.
  • urls: This object contains URLs related to the return process. It includes a "returnSheet" URL, which points to a PDF document providing return details and instructions.
  • vendorId: The "vendorId" field represents the unique identifier of the vendor or seller from whom the customer purchased the product being returned.

Upon making a return request through the API, the response will contain this JSON object with the relevant information about the return. The provided data in the response will help the shop or business manage the return process, keep track of return details, and communicate return information to the customer.