Chattez instantanément avec nous sur WhatsApp à :

Une introduction à SeekMake

SeekMake se consacre à autonomiser les entreprises avec des technologies de pointe et des services personnalisés. Que ce soit pour prototyper un nouveau produit ou pour passer à l'échelle de la production, SeekMake offre une suite complète d'outils et de ressources pour répondre aux besoins de fabrication.

Que peut faire l'API SeekMake ?

L'API de devis instantané SeekMake permet aux utilisateurs de rationaliser leur processus de devis :

  • Tarification en temps réel: Récupérez des informations de prix instantanées pour un large éventail de services de fabrication, y compris l'impression 3D, l'usinage CNC, le moulage par injection, et plus encore.
  • Sélection des matériaux: Accédez à une base de données complète de matériaux pour chaque service de fabrication, permettant aux utilisateurs de spécifier le matériau préféré pour leur projet.
  • Estimation de la quantité: Calculez les prix en fonction de la quantité d'unités à fabriquer, permettant aux utilisateurs d'ajuster les quantités et de voir les mises à jour des prix en temps réel.
  • Personnalisation des dimensions: Fournissez les dimensions de la pièce à fabriquer, permettant aux utilisateurs de spécifier la taille de leur projet et de recevoir des informations de prix précises.
  • Flexibilité d'intégration: Intégrez l'API de devis instantané SeekMake dans une variété de plateformes, y compris les marketplaces, les sites e-commerce, les applications personnalisées, et plus encore.
  • Scalabilité: Gérez un volume élevé de requêtes avec aisance, assurant des performances fluides même pendant les périodes de forte affluence.

Démarrage

Notre documentation API bien structurée offre des conseils clairs et concis sur la façon d'intégrer et d'utiliser chacune de nos API. Vous y trouverez tout ce dont vous avez besoin pour commencer à développer sur SeekMake.

  • Créer un compte fabricant : Pour accéder à nos API et les utiliser, vous aurez besoin d'un compte fabricant SeekMake. Inscrivez-vous. ici.
  • Clé et jeton du plugin: Une fois que vous aurez votre compte fabricant, vous pourrez obtenir votre clé API unique, votre jeton et votre ID à partir d'ici.

Restez informé

Nous améliorons continuellement nos API et ajoutons de nouvelles fonctionnalités. Restez informé grâce à notre blog développeur et notre newsletter. Recevez les dernières mises à jour, astuces et meilleures pratiques directement dans votre boîte de réception.

Authentification des requêtes

L'API SeekMake utilise des clés API pour authentifier les requêtes. Vous pouvez consulter et gérer vos clés API dans le portail développeur. Vous devez être connecté avec un compte fabricant pour accéder à vos clés.

Nous utilisons deux clés : la première est le jeton d'autorisation (Authorization Bearer) et la seconde est le jeton d'authentification X-Auth-Token. Ces clés doivent être envoyées en tant qu'en-têtes dans votre requête HTTP.

Vos clés API confèrent de nombreux privilèges, assurez-vous de les conserver en toute sécurité. Ne partagez pas vos clés API secrètes dans des zones accessibles au public. Utilisez également l'URL de base de développement pendant le développement.

En-têtes

Authorization Bearer
***********************************
X-Auth-Token Auth-Token
*********************************

Remarque : Veuillez renseigner le jeton d'autorisation (bearer) et le jeton d'authentification générés dans le portail développeur pour toutes vos requêtes à l'API SeekMake.

Résumé de l'utilisation de l'API

  • Configuration des en-têtes API
  • Charger les publications/produits de SeekMake : Cette étape consiste à récupérer des publications ou des produits de la base de données de SeekMake en utilisant :
  • GET/api/v2/ms-post/post/user-posts/{userId}

  • Les afficher aux clients sur votre plateforme : Une fois que vous avez récupéré les publications ou les produits de SeekMake, vous devrez les afficher sur votre plateforme (site web, application, etc.) pour que les clients puissent les consulter et potentiellement les acheter.
  • Après l'achat/paiement du produit par le client, créez une demande/commande : Lorsqu'un client effectue un achat ou paie un produit
  • POST/api/v2/ms-machine-owner/demand/products

  • Afficher à l'utilisateur le statut de la commande spécifique : Pour tenir les utilisateurs informés de l'état de leur commande.
  • GET/api/v2/ms-machine-owner/demand/{id}

  • Obtenir la liste des commandes pour un utilisateur spécifique : Alternativement, vous pouvez récupérer une liste des commandes associées à un utilisateur spécifique.
  • POST/api/v2/ms-machine-owner/demand/list

Produits / Articles

Ce point d'accès est destiné à la récupération de produits. Vous pouvez l'utiliser comme moyen programmatique pour visualiser tous les produits associés à votre entreprise.

Obtenir les publications

Requête

const posts = await fetch(
"/api/v2/ms-post/post/user-posts/{userId}",
{ method: "GET" }
);

Exemple de réponse

{
"posts": [
{
"_id": "123",
"user": "user123",
"materials": [],
"type": "PRODUCT",
"price": {
"priceMachine": "10",
"priceConception": 0,
"priceExtra": 0
},
"service": "3D_PRINTING",
"models": [],
"gallery": [
{
"type": "image",
"url": "https://files.seekmake.com/file.jpeg",
"_id": "65c38b086f2c0dc513809040"
},
{
"type": "image",
"url": "https://files.seekmake.com/file2.jpeg",
"_id": "65c38b086f2c0dc513809041"
}
]
}
]
}

GET /api/v2/ms-post/post/user-posts/{userId}


Paramètres

userId
Ceci spécifie l'identifiant du fabricant.
Requis
currentPage
Ceci spécifie la page actuelle pour afficher le produit.
Facultatif
pageSize
Ceci spécifie le nombre de produits affichés dans la réponse.
Facultatif, par défaut 5
category
Pour rechercher un produit par catégorie.
Facultatif, Impression 3D, Usinage CNC, Tôlerie, Facultatif, Électronique, Architecture, Mécanique, Automobile, Autres
free
Ceci spécifie l'état du produit. Il est soit vrai, soit faux.
Facultatif, Impression 3D, Usinage CNC, Tôlerie
service
Impression 3D, Usinage CNC et Tôlerie, vues et mentions J'aime.
Facultatif, Impression 3D, Usinage CNC, Tôlerie
type
Ceci recherche par type.,Ce champ doit toujours être un PRODUIT
Facultatif, Publication, Histoire, Produit
tags
Recherche un produit basé sur les étiquettes.
formats
Recherche un produit basé sur le format.
sortBy
Recherche un produit basé sur sa date de création, ses vues et ses likes.
Facultatif, Créé (croissant), Créé (décroissant), Vues (décroissant), Likes (décroissant)

Créer une publication

Étant donné que les produits seront gérés directement depuis le tableau de bord SeekMake, vous n'avez pas besoin d'utiliser ce point de terminaison. Il est inclus au cas où la décision de gérer les produits depuis le tableau de bord SeekMake changerait.

ÉTAPE 1 : Créer une publication

Requête

Const posts await fetch(
"/api/v2/ms-post/post/{userId}",
{method: "POST"}
)

Charge utile

{
"price": {
"priceMachine": "10",
"priceConception": 0,
"priceExtra": 0
},
"materials": [
{
"title": "Resin",
"type": "3D_PRINTING",
"price": 10,
"currency": "EUR"
}
],
"type": "PRODUCT",
"service": "3D_PRINTING"
}

Exemple de réponse

{
"_id": "123456",
"price": {
"priceMachine": "10",
"priceConception": 0,
"priceExtra": 0
},
"materials": [
{
"title": "Resin",
"type": "3D_PRINTING",
"price": 10,
"currency": "EUR"
}
],
"type": "PRODUCT",
"service": "3D_PRINTING",
"createdAt": "07/02/2024",
"updatedAt": "07/02/2024"
}

Paramètres

userId
Ceci spécifie l'identifiant du fabricant.
Requis

Champs de la requête

priceMachine
Spécifie le coût des frais de machine.
priceConception
Spécifie les frais de conception du produit.
priceExtra
Ceci spécifie le coût des matières premières.
materials.title
Spécifie le nom du matériau.
materials.type
Spécifie le type de matériau.
materials.price
Spécifie le prix du matériau.
materials.currency
Spécifie la devise du matériau. Il peut s'agir d'EUR, USD, TND...
type
Ceci recherche par type.,Ce champ doit toujours être un PRODUIT
service
Impression 3D, Usinage CNC et Tôlerie, vues et mentions J'aime.

ÉTAPE 2 : Télécharger le modèle

Requête

Const posts = await fetch(
"/api/v2/ms-post/post/upload",
{method: "POST"}
)

Charge utile

{
"files": []
}

Exemple de réponse

[
{
"url": "sample url",
"originalName": "name"
}
]

Champs requis

files
Ceci spécifie les fichiers qui doivent être téléversés

ÉTAPE 3 : Ajouter le modèle au produit

Requête

Const posts = await fetch(
"/api/v2/ms-post/post/upload",
{method: "POST"}
)

Charge utile

{
"objects3D": {
"price": 0,
"free": true,
"originalname": "name",
"files": [
{
"originalname": "name",
"url": "http://www.files.com"
}
]
}
}

Exemple de réponse

{
"_id": "postId",
"models": {
"price": 0,
"free": true,
"originalname": "name",
"files": [
{
"originalname": "name",
"url": "http://www.files.com"
}
]
},
"createdAt": "07/02/2024",
"updatedAT": "08/02/2024"
}

Paramètres

postId
Ceci spécifie l'identifiant du produit.

Champs de la requête

price
Ceci spécifie le prix du produit.
free
Ceci spécifie l'état du produit. Il est soit vrai, soit faux.
originalName
Ceci spécifie le nom du fichier produit.
files.url
Ceci spécifie l'URL du modèle de produit.
files.originalName
Ceci spécifie le nom du modèle de produit.

Mettre à jour la publication

Pour mettre à jour des publications ou des produits, envoyez une requête PUT au point de terminaison fourni. Assurez-vous que toutes les mises à jour respectent les règles requises, car les modifications invalides entraîneront des erreurs. Pour plus de commodité et de fiabilité, il est recommandé de gérer les mises à jour via le tableau de bord SeekMake, sauf indication contraire.

Requête

Const posts = await fetch(
"/api/v2/ms-post/post/upload",
{method: "PUT"}
)

Charge utile

{
"service": "test"
}

Exemple de réponse

{
"_id": "123456",
"service": "test",
"price": {
"priceMachine": "10",
"priceConception": 0,
"priceExtra": 0
},
"materials": [
{
"title": "Resin",
"type": "3D_PRINTING",
"price": 10,
"currency": "EUR"
}
],
"type": "PRODUCT",
"models": {
"price": 0,
"free": true,
"originalname": "name",
"files": [
{
"originalname": "name",
"url": "http://www.files.com"
}
]
},
"createdAt": "07/02/2024",
"updatedAt": "08/02/2024"
}

Paramètres

productId
Ceci spécifie l'identifiant du produit qui a été vendu.
Requis

Supprimer la publication

La suppression de publications ou de produits suit les mêmes conditions que leur création. Les produits étant généralement gérés via le tableau de bord SeekMake, les suppressions devraient également s'y effectuer. Cependant, ce point de terminaison est également une option disponible pour vous, soit par choix, soit en cas de changement d'accord.

Requête

Const posts = await fetch(
"/api/v2/ms-post/post/upload",
{method: "DELETE"}
)

Exemple de réponse → Renvoie la publication/le produit supprimé(e)

{
"_id": "123456",
"price": {
"priceMachine": "10",
"priceConception": 0,
"priceExtra": 0
},
"materials": [
{
"title": "Resin",
"type": "3D_PRINTING",
"price": 10,
"currency": "EUR"
}
],
"type": "PRODUCT",
"models": {
"price": 0,
"free": true,
"originalname": "name",
"files": [
{
"originalname": "name",
"url": "http://www.files.com"
}
]
},
"service": "test",
"createdAt": "07/02/2024",
"updatedAt": "08/02/2024"
}

Paramètres

productId
Ceci spécifie l'identifiant du produit qui a été vendu.
Requis

Demandes / Commandes

Créer des demandes / commandes

Ce point de terminaison vous permet d'adapter le niveau de détail des données de demande que vous fournissez. Vous pouvez choisir d'inclure uniquement des informations partielles, telles qu'un identifiant client au lieu des détails complets du client, ou d'omettre des éléments spécifiques tels que les adresses de facturation ou d'expédition si elles ne sont pas requises. Alternativement, vous pouvez choisir d'inclure toutes les informations disponibles, similaire à l'approche utilisée dans SeekMake.

POST /api/v2/ms-machine-owner/demand/create-demands

Requête

Const posts = await fetch(
"/api/v2/ms-machine-owner/demand/create-demands",
{method: "POST"}
)

Charge utile

[
{
"quoteModel": [
{
"viewerType": "3D",
"discount": 50,
"quantity": 1,
"color": "Gray",
"colorHex": "#B8B8B8",
"priceCalculatorTool": "default",
"scale": 100,
"fileLink": "https://example.file.com/seekmake/example-file.stl",
"fileName": "example-file.stl",
"modelType": "stl",
"service": "CNC_MACHINING",
"technology": "",
"material": "6448eb512acb4edcd7a67f95",
"machine": "670d8b9b174ff458374f630a",
"priceMachine": "396.08",
"priceConception": 0,
"priceExtra": 0,
"price_min": 396.0809428479,
"priceWithMargin": 396.0809428479,
"pricePerPiece": 396.0809428479,
"currency": "EUR",
"startupCost": 0,
"priceEngine": 396.0809428479,
"discountAmount": 198.04
}
],
"minEstimatedPrice": 396.0809428479,
"maxEstimatedPrice": null,
"email": "client@example.com",
"country": "Germany",
"address": "example place in Germany",
"phone": "+49 123456789",
"zip": "11111",
"typeDelivery": "pickup directly",
"firstName": "client",
"lastName": "example",
"city": "Nordrhein-Westfalen",
"region": "example",
"isCompany": false,
"taxType": "VAT",
"shippingAddressDetails": {
"country": "Germany",
"city": "Nordrhein-Westfalen",
"region": "example",
"zip": "11111",
"address": "example place in Germany"
},
"billingAddressDetails": {
"country": "Germany",
"city": "Nordrhein-Westfalen",
"region": "example",
"zip": "11111",
"address": "example place in Germany"
},
"client": null,
"machineOwner": "66fa696f4f51a3f661b93cfd",
"business": "66fa696f4f51a3f661b93cfd",
"technique": "CNC_MACHINING",
"shippingMethod": {
"regionTo": "LOCAL",
"price": 0,
"currency": "EUR",
"daysToDeliver": 0
},
"currency": "EUR",
"remark": [
"unit : mm"
],
"type": "normal",
"status": "quote sent",
"fixedPrice": 0,
"priceDelivery": 0,
"fabricatedDate": "23/10/2025",
"priceMin": 0,
"priceMinPart": 0,
"draftId": "68f9f61de727a66f0d0afd47",
"referral": "seekmake"
}
]

Exemple de réponse

[
{
"_id": "68f9f7cee727a66f0d0b309d",
"client": "68f9f774e727a66f0d0b06f2",
"machineOwner": "66fa696f4f51a3f661b93cfd",
"business": "66fa696f4f51a3f661b93cfd",
"technique": "CNC_MACHINING",
"remark": [
"unit : mm"
],
"tracking": [
{
"status": "quote sent",
"date": 1761212366053
}
],
"paymentStatus": "PENDING_PAYMENT",
"quoteModel": [
{
"viewerType": "3D",
"discount": 50,
"quantity": 1,
"color": "Gray",
"colorHex": "#B8B8B8",
"priceCalculatorTool": "default",
"scale": 100,
"fileLink": "https://example.file.com/seekmake/example-file.stl",
"fileName": "example-file.stl",
"modelType": "stl",
"service": "CNC_MACHINING",
"material": "6448eb512acb4edcd7a67f95",
"machine": "670d8b9b174ff458374f630a",
"priceMachine": "396.08",
"priceConception": 0,
"priceExtra": 0,
"price_min": 396.0809428479,
"priceWithMargin": 396.0809428479,
"pricePerPiece": 396.0809428479,
"currency": "EUR",
"startupCost": 0,
"priceEngine": 396.0809428479,
"discountAmount": 198.04
}
],
"draftId": "68f9f61de727a66f0d0afd47",
"email": "client@example.com",
"phone": "+49 123456789",
"address": "example place in Germany",
"country": "Germany",
"city": "Nordrhein-Westfalen",
"region": "example",
"zip": "11111",
"firstName": "client",
"lastName": "example",
"isCompany": false,
"taxType": "VAT",
"referral": "seekmake",
"type": "normal",
"typeDelivery": "pickup directly",
"status": "quote sent",
"priceToClient": "238.11",
"priceToMachnieOwner": "238.11",
"priceTotal": 198.04,
"taxPaid": 40.07,
"platformFee": 0,
"minEstimatedPrice": 396.0809428479,
"maxEstimatedPrice": null,
"currency": "EUR",
"priceDelivery": 0,
"priceMin": 0,
"priceMinPart": 0,
"priceSurcharge": 0,
"fixedPrice": 0,
"stripeExtraFees": 0,
"fabricatedDate": "23/10/2025",
"shippingMethod": {
"regionTo": "LOCAL",
"price": 0,
"currency": "EUR",
"daysToDeliver": 0
},
"billingAddressDetails": {
"country": "Germany",
"city": "Nordrhein-Westfalen",
"region": "example",
"zip": "11111",
"address": "example place in Germany"
},
"shippingAddressDetails": {
"country": "Germany",
"city": "Nordrhein-Westfalen",
"region": "example",
"zip": "11111",
"address": "example place in Germany"
},
"orderNumber": 1,
"createdAt": "2025-10-23T09:39:26.057Z",
"updatedAt": "2025-10-23T09:39:26.057Z"
}
]

Créer des demandes / commandes par ID produit

Ceci sert à créer une commande en utilisant un ID de produit/publication existant. Pour créer une nouvelle commande sur votre compte SeekMake après réception des paiements des clients, la charge utile attendue est celle indiquée ci-dessous. Il est important de fournir les champs fixes avec les valeurs exactes spécifiées.

NOTE: Veuillez enregistrer l'ID de la demande créée, car il sera nécessaire pour récupérer les demandes ultérieurement.

POST /api/v2/ms-machine-owner/demand/products

Requête

Const posts = await fetch(
"/api/v2/ms-machine-owner/demand/products?
long=en",
{method: "POST"}
)

Charge utile

[
{
"productId": "id",
"referral": "t7d",
"material": "Resin",
"resolution": "",
"filling": 0,
"quantity": 0,
"color": "White",
"thickness": 0,
"tolerance": "",
"shippingMethod": {
"method": "",
"currency": "EUR",
"type": "",
"price": 0
},
"shippingAddress": {
"address": "Nebul",
"vat": "",
"firstName": "Adel",
"lastName": "Ayari",
"email": "adel@ayari.com",
"phone": "+1234567",
"city": "Ariana",
"country": "Tunisia",
"zip": "8064"
}
}
]

Exemple de réponse

[
{
"_id": "65c36e67d8ed59997b6fc3f2",
"referral": "t7d",
"material": "Resin",
"resolution": "",
"filling": 0,
"quantity": 1,
"color": "White",
"thickness": 0,
"tolerance": "",
"shippingMethod": {
"method": "",
"currency": "EUR",
"type": "",
"price": 0
},
"shippingAddress": {
"address": "Nebul",
"vat": "",
"firstName": "Adel",
"lastName": "Ayari",
"email": "adel@ayari.com",
"phone": "+1234567",
"city": "Ariana",
"country": "Tunisia",
"zip": "8064"
}
}
]

Paramètres

lang fr

Champs de la requête

productId
Ceci spécifie l'identifiant du produit qui a été vendu.
referral
Ceci est une valeur fixe.
resolution
Ceci spécifie la qualité, ou le niveau de détail, du modèle 3D (facultatif).
filling
Ceci spécifie la structure et la forme du matériau à l'intérieur du modèle 3D.
quantity
Ceci spécifie la quantité de produit à produire.
color
Ceci spécifie la couleur du produit.
thickness
Ceci spécifie l'épaisseur de l'opération de découpe laser.
tolerance
Ceci spécifie le niveau de précision requis pour l'usinage CNC.
shippingMethod
Ceci spécifie la méthode d'expédition du produit, incluant la méthode, la devise, le type et le prix (prix de livraison du produit).
clientInfo
Ceci spécifie les informations du client.

Obtenir la liste des demandes / commandes

Une fois les commandes créées et en production, les fabricants peuvent changer. Il est essentiel de conserver les ID de chaque commande passée par l'utilisateur et d'utiliser ces ID pour récupérer les informations de commande ou de demande. Ce point de terminaison est conçu pour accepter une liste d'ID de commande ou de demande et renvoyer leurs détails.

Requête

Const posts = await fetch("/api/v2/ms-machine- owner/demand/list",
{method: "POST"}
)

Charge utile

{
"demands": [
"demand_id",
"demand_id"
]
}

Exemple de réponse

[
{
"_id": "63e356401c91cd5376e10ead",
"remark": [],
"thickness": null,
"tolerance": null,
"quantity": 1,
"typeDelivery": "home delivery",
"priceDelivery": 0,
"client": {},
"machineOwner": {},
"technique": "3D_PRINTING",
"file": "",
"email": "",
"phone": "",
"country": "",
"city": "",
"zip": "",
"status": "cancelled",
"priceToClient": "",
"priceMachine": "",
"priceConception": 0,
"priceExtra": 0,
"priceToMachnieOwner": "string",
"settings": {
"notification": {
"user": true,
"machineOwner": true
}
}
},
{},
{},
{}
]

POST /api/v2/ms-machine-owner/demand/list

Obtenir la demande / commande

Ce point de terminaison récupère des informations pour une commande ou une demande spécifique, qui peut être en cours, en attente de paiement, terminée ou en expédition. Il y a également une forte probabilité que le fabricant de la commande change avant le début de la production. Il est donc recommandé d'utiliser le point de terminaison 'Obtenir la liste des demandes' à la place.

Requête

Const posts = await fetch
("/api/v2/ms-machine-owner/demand/:id",
{method: "GET"}
)

Exemple de réponse

{
"_id": "63e356401c91cd5376e10ead",
"remark": [],
"thickness": null,
"tolerance": null,
"quantity": 1,
"typeDelivery": "home delivery",
"priceDelivery": 0,
"client": {},
"machineOwner": {},
"technique": "3D_PRINTING",
"file": "",
"email": "",
"phone": "",
"country": "",
"city": "",
"zip": "",
"status": "cancelled",
"priceToClient": "",
"priceMachine": "",
"priceConception": 0,
"priceExtra": 0,
"priceToMachnieOwner": "string",
"settings": {
"notification": {
"user": true,
"machineOwner": true
}
}
}

GET /api/v2/ms-machine-owner/demand/:id



Paramètres

id
Requis




Champs de la requête

_id
Ceci spécifie l'identifiant de la demande.
remark
Ceci spécifie un commentaire pour la demande.
thickness
Ceci spécifie l'épaisseur du produit.
tolerance
Ceci spécifie le niveau de tolérance.
quantity
Ceci spécifie la quantité de produit à produire.
typeDelivery
Ceci spécifie le type de livraison du produit. Il s'agit soit d'une livraison à domicile, soit d'un retrait direct.
_priceDelivery
Ceci spécifie le prix payé pour une livraison.
user
Ceci spécifie les informations de l'utilisateur.
technique
Ceci spécifie la technique choisie pour le produit. Il s'agit soit d'impression 3D, d'usinage CNC, soit de tôlerie.
File
Ceci spécifie l'URL du fichier.
Email
phone
country
zip
city
Ceci spécifie les informations du client.
status
Ceci spécifie le statut du produit.
priceToClient
Ceci spécifie le prix total du produit, y compris les frais de SeekMake.
priceMachine
Ceci spécifie les frais payés en fonction du temps passé par la machine pour produire l'article.
priceConception
Ceci spécifie les frais de conception.
priceExtra
Ceci spécifie le coût des matières premières.
priceToMachineOwner
Ceci spécifie le prix total du produit sans les frais de SeekMake.
settings
Ceci spécifie si l'utilisateur ou le propriétaire de la machine souhaite recevoir une notification/un e-mail de SeekMake.

Statuts de la demande

Annulé
Ceci indique que la demande est annulée.
En cours d'expédition
Ceci spécifie que la livraison de la demande a commencé.
Vérifié Spécial
Ceci indique que la demande est en attente et en cours de révision.
Devis envoyé
Ceci indique que la demande est envoyée au fabricant.
Offre acceptée
Ceci indique que la demande est en production.
Terminé
Ceci indique que la demande est prête à être expédiée.
Livré
Ceci spécifie que la demande est livrée.

Mettre à jour la demande / commande

Ce point de terminaison vous permet de mettre à jour les informations d'une commande ou d'une demande spécifique. Les commandes peuvent être à différents stades, tels qu'en cours, en attente de paiement, terminées ou en expédition. Les mises à jour pouvant affecter plusieurs aspects d'une commande, y compris son fabricant, il est donc important de noter qu'il existe certaines restrictions quant au type de mise à jour que vous pouvez effectuer, et le point de terminaison peut générer des erreurs si vous tentez une mise à jour illégale.

Requête

Const posts await fetch(
"/api/v2/ms-machine-owner/demand/{id}",
{method: "PUT"}
)

Charge utile

{
"material": "Resin",
"resolution": "",
"filling": 0,
"quantity": 0,
"color": "White",
"thickness": 0,
"tolerance": "",
"shippingAddress": {
"address": "Nebul",
"vat": "",
"firstName": "Adel",
"lastName": "Ayari",
"email": "adel@ayari.com",
"phone": "+1234567",
"city": "Ariana",
"country": "Tunisia",
"zip": "8064"
}
}

Exemple de réponse

{
"_id": "123456",
"material": "Resin",
"resolution": "",
"filling": 0,
"quantity": 0,
"color": "White",
"thickness": 0,
"tolerance": "",
"shippingAddress": {
"address": "Nebul",
"vat": "",
"firstName": "Adel",
"lastName": "Ayari",
"email": "adel@ayari.com",
"phone": "+1234567",
"city": "Ariana",
"country": "Tunisia",
"zip": "8064"
}
}

PUT /api/v2/ms-machine-owner/demand/ { id }



Paramètres

demandId
Requis

Supprimer la demande / commande

Étant donné que la plupart des demandes créées sont déjà payées de votre côté, évitez de supprimer les demandes, sauf s'il s'agit d'une erreur ou si la commande a été annulée avant le début de la production.

Requête

Const posts await fetch(
"/api/v2/ms-machine-owner/demand/{id}",
{method: "DELETE"}
)

Exemple de réponse

{
"_id": "63e356401c91cd5376e10ead",
"remark": [],
"thickness": null,
"tolerance": null,
"quantity": 1,
"typeDelivery": "home delivery",
"priceDelivery": 0,
"client": {},
"machineOwner": {},
"technique": "3D_PRINTING",
"file": "",
"email": "",
"phone": "",
"country": "",
"city": "",
"zip": "",
"status": "cancelled",
"priceToClient": "",
"priceMachine": "",
"priceConception": 0,
"priceExtra": 0,
"priceToMachnieOwner": "string",
"settings": {
"notification": {
"user": true,
"machineOwner": true
}
}
}

Paramètres

demandId
* Requis

Sécurité

Assurer la sécurité de notre API est une priorité absolue. Nous mettons en œuvre des mesures de sécurité robustes pour protéger vos données et maintenir l'intégrité de nos systèmes. Vous trouverez ci-dessous les aspects clés de la sécurité de notre API.

Authentification et autorisation
  • Authentification: L'accès à notre API nécessite une authentification à l'aide de clés d'API, de jetons OAuth ou d'autres méthodes sécurisées. Cela garantit que seuls les utilisateurs et applications autorisés peuvent accéder à nos points de terminaison API.
  • Autorisation: Nous appliquons des mécanismes de contrôle d'accès à granularité fine pour restreindre l'accès à des points de terminaison API et des données spécifiques en fonction des rôles, des autorisations et des portées des utilisateurs.
Chiffrement
  • Toutes les données transmises vers et depuis notre API sont chiffrées à l'aide de protocoles cryptographiques standard de l'industrie tels que TLS (Transport Layer Security) pour prévenir l'écoute clandestine et l'accès non autorisé.
Journalisation et surveillance
  • Nous maintenons des journaux complets des activités de l'API, y compris les données de requête et de réponse, les événements d'authentification et les messages d'erreur. Ces journaux sont régulièrement surveillés pour détecter toute activité suspecte et assurer la conformité avec les politiques de sécurité.
Conformité et audit
  • Nos pratiques de sécurité d'API sont conformes aux normes et réglementations de l'industrie, telles que le RGPD (Règlement Général sur la Protection des Données) et le PCI DSS (Norme de sécurité des données de l'industrie des cartes de paiement). Nous effectuons des audits et des évaluations de sécurité périodiques pour garantir la conformité et le respect des meilleures pratiques.
Gestion des vulnérabilités
  • Nous effectuons des évaluations de sécurité régulières et des analyses de vulnérabilités pour identifier et corriger les vulnérabilités de sécurité potentielles dans notre infrastructure API et notre base de code.

Signalement des problèmes de sécurité

Si vous découvrez des vulnérabilités de sécurité ou suspectez un accès non autorisé à notre API, veuillez les signaler immédiatement à notre équipe de sécurité dédiée. Nous prenons tous les rapports au sérieux et nous nous efforçons de traiter et de résoudre rapidement toute préoccupation de sécurité.

Estimation de prix

Ce point de terminaison fournira le prix d'un modèle, compte tenu des paramètres nécessaires dans votre devise spécifiée. Vous devrez également transmettre la charge utile du modèle pour lequel vous avez l'intention d'obtenir une estimation de prix. Veuillez vous référer à la section Champs de requête de cette requête à votre droite pour les champs requis. Vos utilisations restantes pour ce point de terminaison aujourd'hui sont : 0

Requête

Const price = await fetch(
"/api/v2/ms-machine-learning/machine-learing/modelPriceEstimation/:businessId?currency=USD",
{ method: "POST"}
)

Charge utile

[
{
"model": {
"priceCalculatorTool": "custom",
"viewerType": "3D",
"discount": 0,
"bulkPricing": [],
"quantity": 1,
"postProduction": [],
"machineCanPrint": false,
"color": "Gray",
"colorHex": "#B8B8B8",
"colorNameKey": "COLOR.GRAY",
"scale": 100,
"coordinates": {
"x_index": 100,
"y_index": 86.6,
"z_index": 45.3
},
"volume": "19961.54",
"dfmData": {
"anomalies": [],
"coloredSvg": "",
"scaledFile": ""
},
"tolerance": "",
"fileLink": "https://somefilelink.com/path/to/example-file.stl",
"fileName": "example-file.stl",
"modelType": "stl",
"isSupported": true,
"position": 0,
"modelSizes": {
"width": 0,
"height": 0,
"depth": 0,
"scale": 100
},
"service": "3D_PRINTING",
"technology": "FDM",
"material": {
"machine": "678a62210b233haa5c54451bd",
"_id": "6448essmme2acb4edcd7a67f68",
"service": "3D_PRINTING",
"materials": "ABS M30",
"price": 3000,
"currency": "USD",
"technology": "FDM",
"descriptions": "Machine type : fdm makina,\n\t\t\t\t\t\t\t\t\t\t Machine size : 22x22x22 mm",
"colors": [],
"description": "ABS M30 is a high impact resistant and tough material: it has a glass transition temperature of about 105°C.",
"MatrialPhotoUrl": "",
"surfaceMachine": "22x22x22",
"unitMachine": "mm",
"density": {
"value": 1.03,
"unit": "g/cm3"
},
"startupCost": {
"price": null,
"currency": "TND"
},
"unit": "kg",
"factor": "2.1"
},
"selectedOptions": [
{
"refer": "infill",
"name": "0%",
"type": "price_multiplier",
"priceMultiplier": 1,
"fixedPrice": {
"price": 0,
"currency": "TND"
},
"percentage": 1,
"isDeffault": true,
"created": "2024-12-26T17:00:27.264Z",
"finishId": null,
"machineId": null,
"materialId": null
},
{
"refer": "precision",
"name": "0.4mm",
"type": "price_multiplier",
"priceMultiplier": 1,
"fixedPrice": {
"price": 0,
"currency": "TND"
},
"percentage": 0.4,
"isDeffault": true,
"created": "2024-12-26T17:00:27.264Z",
"finishId": null,
"machineId": null,
"materialId": null
},
{
"refer": "lead_time",
"name": "Standard",
"type": "price_multiplier",
"priceMultiplier": 1,
"fixedPrice": {
"price": 10,
"currency": "TND"
},
"percentage": 3,
"isDeffault": true,
"created": "2025-01-17T13:15:46.356Z",
"finishId": null,
"machineId": null,
"materialId": ""
}
],
"slicingData": {
"width": 100,
"height": 86.6,
"depth": 45.3,
"density": 1.03,
"filament_length": 4696.8,
"hours": 5.218666666666667,
"volume": "19961.54",
"weight": "20560.38",
"minimum_bounding_box": 392320.5,
"convex_hull": 106740.38,
"total_print_area": 22198.33,
"number_of_layers": 87
},
"machine": {
"_id": "678a62210b233haa5c54451bd",
"machineOwner": "678a62210b233haa5c54451bd",
"business": "678a62210b233haa5c54451bd",
"typeMachine": "3D_PRINTING",
"currency": "TND",
"status": false,
"surfaceMachine": "22x22x22",
"marginMachine": 0,
"materials": [
{
"price": 2,
"currency": "TND",
"name": "ABS M30",
"keyFeatures": "High resistance,Toughness,suitable for 3d printing,durable and stronger layer bonding",
"description": "ABS M30 is a high impact resistant and tough material: it has a glass transition temperature of about 105°C.",
"MatrialPhotoUrl": "",
"factor": "2.1",
"colors": [],
"density": {
"value": 1.03,
"unit": "g/cm3"
},
"unit": "kg",
"startupCost": {
"price": null,
"currency": "TND"
},
"_id": "678a62210b233haa5c54451bd"
}
],
"mark": "fdm makina",
"technology": "FDM",
"unit": "mm",
"createdAt": "2025-01-17T13:58:57.265Z",
"updatedAt": "2025-01-17T13:58:57.265Z",
"__v": 0,
"order": ""
},
"note": "",
"price_min": 444.0411207724,
"pricePerPiece": 444.0411207724,
"startupCost": 0,
"priceWithMargin": 0.04112077240000001,
"equationResult": 0.04112077240000001,
"postProductionIncluded": true,
"startupCostIncluded": false,
"leadTimeIncluded": true,
"quantityIncluded": false,
"marginIncluded": false,
"currency": "TND",
"priceMachine": "",
"priceConception": 0,
"priceExtra": 0
}
}
]

Exemple de réponse

[
{
"message": "Successfully calculated model price",
"data": {
"price": 16.249375300100002
}
}
]

POST /api/v2/ms-machine-learning/machine-learing/modelPriceEstimation/:businessId?currency=USD

Paramètres

currency
Requis

Le paramètre de requête de devise est requis. Les options disponibles pour la devise sont : 'EUR', 'USD', 'CNY', 'GBP', 'TND', 'ZAR', 'GHS', 'NGN', 'XAF', 'KES', 'KWD', 'MAD', 'AED', 'EGP', 'DZD', 'CAD', 'AUD', 'INR', 'MXN', 'CZK', 'SGD', 'MYR'.

Champs de la requête

slicingData
Requis
Cet objet contient des métriques détaillées sur le modèle 3D après découpage, qui sont essentielles pour estimer le processus d'impression:
  • width (number): Largeur du modèle en millimètres.
  • height (number): Hauteur du modèle en millimètres.
  • depth (number): Profondeur du modèle en millimètres.
  • density (number): Densité du matériau en g/cm³.
  • filament_length (number): Longueur de filament requise pour imprimer le modèle en millimètres.
  • hours (number): Temps d'impression total estimé en heures.
  • volume (string): Volume du modèle en millimètres cubes.
  • weight (string): Poids du modèle en grammes.
  • minimum_bounding_box (number): Volume de la plus petite boîte englobante pouvant contenir le modèle en millimètres cubes.
  • convex_hull (number): Volume de l'enveloppe convexe entourant le modèle en millimètres cubes.
  • total_print_area (number): Surface totale du modèle à imprimer en millimètres carrés.
  • number_of_layers (number): Nombre total de couches nécessaires pour imprimer le modèle.
selectedOptions
Requis
Ce tableau liste les options supplémentaires choisies pour le processus d'impression 3D. Chaque option impacte le coût ou la qualité de l'impression.:
  • refer (string): Identifiant de l'option, par exemple, 'infill'.
  • name (string): Nom d'affichage de l'option.
  • type (string): Type d'option, par exemple, 'price_multiplier'.
  • priceMultiplier (number): Multiplicateur affectant le calcul du prix.
  • fixedPrice (object):
    • price (number): Valeur du prix.
    • currency (string): Code de devise, par exemple, «TND».
  • percentage (number): Pourcentage d'effet supplémentaire de l'option.
  • isDefault (boolean): Indique si cette option est la valeur par défaut.
  • created (string): Horodatage de la création de l'option.
  • finishId, machineId, materialId (string | null): Références aux ressources associées ou null si non applicable.
material
Requis
Décrit les propriétés des matériaux et les détails associés pour le processus d'impression 3D.:
  • machine (string): Identifiant de la machine utilisée, par exemple, «678a62210b2a09a5c54451bd».
  • _id (string): Identifiant unique du matériau.
  • service (string): Type de service, par exemple, «3D_PRINTING».
  • materials (string): Nom du matériau, par exemple, «ABS M30».
  • price (number): Prix par unité de matériau.
  • currency (string): Code de devise, par exemple, «TND».
  • technology (string): Technologie d'impression compatible avec le matériau.
  • descriptions (string): Description détaillée du matériau et des spécifications de la machine.
  • colors (array): Couleurs disponibles pour le matériau. Vide si aucune couleur n'est spécifiée.
  • description (string): Caractéristiques et propriétés du matériau, par exemple, «ABS M30 est un matériau résistant aux chocs et robuste».
  • materialPhotoUrl (string): URL de la photo du matériau (actuellement vide).
  • surfaceMachine (string): Dimensions de la surface d'impression de la machine, par exemple, «22x22x22».
  • unitMachine (string): Unité de mesure pour les dimensions de la machine, par exemple, «mm».
  • density (object):
    • value (number): Densité du matériau, par exemple, 1.03.
    • unit (string): Unité de densité, par exemple, «g/cm³».
  • startupCost (object):
    • price (number | null): Valeur du coût de démarrage.
    • currency (string): Code de devise.
  • unit (string): Unité de mesure des matériaux, par exemple, «kg».
  • factor (string): Facteur de conversion ou d'échelle, par exemple, «2.1».
postProduction
Requis
Ce tableau répertorie toutes les étapes ou options de post-production appliquées au modèle imprimé. Aucune étape de post-production n'est incluse par défaut, le tableau peut donc être vide.
service
Requis
Définit le type de service effectué. Valeurs possibles : 3D_PRINTING, CNC_MACHINING, SHEET_METAL
technology
Requis
Spécifie la technologie d'impression utilisée pour le modèle. Valeurs possibles : SLA, FDM, SLS, CNC, DEFAULT
viewerType
Requis
Indique le type de visionneuse de modèle disponible pour le fichier. Valeurs possibles : 3D, 2D
quantity
Requis
Le nombre d'exemplaires du modèle à imprimer.

Accès au fichier

Ce point de terminaison renvoie une URL sécurisée contenant un jeton temporaire. Le lien accorde l'accès au fichier pendant 30 minutes, et seuls les utilisateurs possédant cette URL exacte peuvent l'ouvrir. Après 30 minutes, il expire automatiquement.

Requête

const response = await fetch(
"/api/v2/ms-machine-owner/demand/access-storage?fileLink=YOUR_FILE_LINK",
{
method: "GET",
}
)

Exemple de réponse

[
{
"url": "https://example.blob.core.windows.net/seekmake/example-file.stl?sv=2023-01-03&st=2025-10-23T09%3A30%3A00Z&se=2025-10-23T10%3A00%3A00Z&sr=b&sp=r&sig=SAMPLE_SIGNATURE",
"token": "sv=2023-01-03&st=2025-10-23T09%3A30%3A00Z&se=2025-10-23T10%3A00%3A00Z&sr=b&sp=r&sig=SAMPLE_SIGNATURE"
}
]

Webhooks

Pour activer les notifications en temps réel et les flux de travail pilotés par les événements, vous pouvez demander l'accès à notre fonctionnalité de webhooks. Les webhooks fournissent un mécanisme pour recevoir des requêtes HTTP POST contenant des données d'événement lorsque des événements spécifiques se produisent dans notre système.

Créer un nouvel abonnement webhook

Ce point de terminaison vous permet de créer une intégration webhook pour recevoir des notifications d'événements.

Requête

const webhook = await fetch(
"/api/v2/integrations_ms/webhooks",
{method: "POST"}
)

Charge utile

{
"businessId": "4665759##744333va",
"url": "https://6r6v676gxprh449.app.dev/webhook",
"secret": "$jowhsow2##",
"events": [
"order_placed"
]
}

Exemple de réponse

{
"message": "Webhook Created Successfully",
"data": [
{
"_id": "67g10f145f5314c086ab7cc8",
"url": "https://6r6v676gxprh449.app.dev/webhook",
"events": [
"order_placed"
],
"secret": "$jowhsow2##",
"useSecret": false
}
]
}

Champs de la requête

businessId
Votre ID Fabricant
url
L'URL à laquelle les notifications d'événement seront envoyées.
secret
Une clé secrète pour une communication sécurisée. Elle sera envoyée dans les en-têtes avec la clé `seekmake-signature`.
events
La liste des événements que vous souhaitez recevoir sur cette URL. Les événements applicables sont : order_placed, quote_request_received, product_purchased, quote_request_updated, order_updated
useSecret
(Facultatif) Indique s'il faut utiliser le secret dans l'événement envoyé. Par défaut à `false` si absent.

Tester l'abonnement webhook

Vous trouverez ci-dessous un exemple simple de la façon dont vous pouvez utiliser le webhook pour recevoir des événements de SeekMake en temps réel, sous forme de requêtes HTTP.

Exemple de code


const express = require("express");
const bodyParser = require("body-parser");

const app = express();
const PORT = 4000;

// Middleware to parse JSON
app.use(bodyParser.json());

// Webhook endpoint
app.post("/webhook", (req, res) => {
const event = req.body;

// Log incoming headers and event
console.log("Received headers: ", req.headers);
console.log("Received event:", event);

// Simulate processing the event
if (event.type === "order_placed") {
console.log("Processing order:", event.data);
}

// Send a response back to the sender
res.status(200).send({ message: "Event received successfully" });
});

// Start the server
app.listen(PORT, () => {
console.log(`Webhook listener running at http://localhost:${PORT}`);
});

Obtenir les webhooks par ID fabricant

Ce point de terminaison récupère les webhooks pour votre entreprise en utilisant votre ID Fabricant.

Requête

const webhook = await fetch(
"/api/v2/integrations_ms/webhooks/{businessId}",
{method: "GET"}
)

Exemple de réponse

{
"message": "Webhooks Retrieved Successfully",
"data": [
{
"_id": "67g10f145f5314c086ab7cc8",
"url": "https://6r6v676gxprh449.app.dev/webhook",
"events": [
"order_placed"
],
"secret": "$jowhsow2##",
"useSecret": false
}
]
}

Champs de la requête

businessId
Votre ID Fabricant

Mettre à jour un abonnement webhook spécifique par ID fabricant et ID webhook

Ce point de terminaison vous permet de mettre à jour une intégration Webhook spécifique pour votre entreprise. Vous devez simplement passer votre ID fabricant et votre ID webhook en tant que paramètres de requête, puis passer la mise à jour que vous avez l'intention d'apporter à ce webhook en tant que corps de requête.

Requête

const webhook = await fetch(
"/api/v2/integrations_ms/webhooks/:businessId/:webhookId",
{method: "POST"}
)

Charge utile

{
"events": [
"order_placed",
"quote_request_recieved"
]
}

Exemple de réponse

{
"message": "Webhooks Updated Successfully",
"data": [
{
"_id": "4665759##744333va",
"url": "https://6r6v676gxprh449.app.dev/webhook",
"events": [
"order_placed",
"quote_request_recieved"
],
"secret": "$jowhsow2##",
"useSecret": false
}
]
}

Champs de la requête

url
L'URL à laquelle les notifications d'événement seront envoyées.
secret
Une clé secrète pour une communication sécurisée. Elle sera envoyée dans les en-têtes avec la clé `seekmake-signature`.
events
La liste des événements que vous souhaitez recevoir sur cette URL. Les événements applicables sont : order_placed, quote_request_received, product_purchased, quote_request_updated, order_updated
useSecret
(Facultatif) Indique s'il faut utiliser le secret dans l'événement envoyé. Par défaut à `false` si absent.
We have detected an issue
This might limit your use of SeekMake. To resolve it, you can:
  • Click "Clear Cache" (Note: This will log you out)
  • Contact Us for further assistance