Центр помощи

Документация по API

Для работы с нашим API Вам понадобится <api token>. Есть два типа токенов API: закрытый ключ и открытый ключ загрузки. Закрытый ключ обеспечивает полный доступ к API и не должен разглашаться пользователям, иначе у них появится возможность получать конфиденциальные данные о загрузках 3D-моделей другими пользователями. Открытый ключ загрузки ограничен для загрузки только новых моделей. Наш API поддерживает следующие форматы файлов для 3D-печати: STL, PLY и 3MF. Нужна помощь? Обратитесь в службу технической поддержки.

 

Получить API токены


Документация Treatstock API для Postman

Загрузить



Чтобы загрузить файл 3D-модели, Вы должны сделать следующие запросы:

POST https://www.treatstock.com/api/v2/printable-packs/?private-key=<api-key>

с параметрами поста

files - файлы 3d модели (stl)
location[country] - (не обязательно) - укажите iso-код страны https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2. Если Вы хотите получить цену за печать, Вы должны установить один из следующих параметров местоположения: страна или ip.
location[ip] - (необязательно) - укажите ip клиента.

Примеры запросов

POST Запрос на загрузку файла

Пример CURL:

curl -F "files[]=@robots.stl" -F location[ip]=83.69.106.68  https://www.treatstock.com/api/v2/printable-packs?private-key=<api-token>


или

curl -F "files[]=@robots.stl" -F location[ip]=83.69.106.68 -F description="Some model description" https://www.treatstock.com/api/v2/printable-packs?private-key=<api-

или

curl -F "files[]=@robots.stl" -F location[country]=US  https://www.treatstock.com/api/v2/printable-packs?private-key=<api-token>

или

curl -F "files-urls[]=https://mysite.com/my-model.stl" -F location[country]=US  https://www.treatstock.com/api/v2/printable-packs?private-key=<api-token>

Результат для POST-запроса в формате JSON:

{
    "success": true,
    "id": 223672,
    "redir": "https://www.treatstock.com/catalog/model3d/preload-printable-pack?packPublicToken=e6c2f63-60815dd-2f91e10",
    "widgetUrl": "https://www.treatstock.com/api/v2/printable-pack-widget/?apiPrintablePackToken=e6c2f63-60815dd-2f91e10",
    "widgetHtml": "<!-- ApiWidget: e6c2f63-60815dd-2f91e10 --><link href='https://www.treatstock.com/css/embed-user.css' rel='stylesheet' /><iframe class='ts-embed-userwidget' width='100%' height='650px' src='https://www.treatstock.com/api/v2/printable-pack-widget/?apiPrintablePackToken=e6c2f63-60815dd-2f91e10' frameborder='0'></iframe>",
    "parts": {
        "MP:1815136": {
            "uid": "MP:1815136",
            "name": "test.stl",
            "qty": 1,
            "hash": "7e02f089e3e508459c967de27c10d45c" 
        }
    }
}

id - создаётся распечатываемый идентификатор пакета

redir - ссылка для доступа к созданной 3D модели (ключ используется для личного доступа). Обратите внимание, что эта 3D-модель будет действительна только в течение 24 часов

widgetUrl - может использоваться для отмены вставки в iframe с пользовательскими настройками

widgetHtml - пожалуйста, вставьте этот код на страницу html, чтобы отобразить виджет Treatstock

Результат для запроса POST с примером ошибки:

 

{
    "success": false, 
    "errors": {
        "file": [
            "No file" 
        ], 
   }
}

Edit

Получить минимальную цену для загруженных файлов 3D-моделей

curl https://www.treatstock.com/api/v2/printable-packs/<id>?private-key=<api-token>

где <id> - это идентификатор из ответа на загрузку

Пример результата:

{
    "id": 223674,
    "model3d_id": 2965969,
    "created_at": "2019-07-29 10:33:03",
    "affiliate_price": "0.0000",
    "affiliate_currency": "USD",
    "calculated_min_cost": {
        "materialGroup": "PLA",
        "color": "White",
        "cost": 5.74
    },
    "success": true,
    "scaleUnit": "mm",
    "largestPartSize": {
        "length": 32.567,
        "width": 65.245,
        "height": 65.246,
        "measure": "mm" 
    },
    "parts": {
        "MP:1815145": {
            "uid": "MP:1815145",
            "name": "test.stl",
            "qty": 1,
            "hash": "7e02f089e3e508459c967de27c10d45c",
            "size": {
                "length": 32.567,
                "width": 65.245,
                "height": 65.246,
                "measure": "mm" 
            },
            "originalSize": {
                "length": 32.567,
                "width": 65.245,
                "height": 65.246,
                "measure": "mm" 
            },
            "weight": 27.5,
            "texture": {
                "color": "White",
                "materialGroup": "PLA" 
            }
        }
    }
}

Расчётная стоимость - это минимальная цена для материала PLA и белого цвета.

Edit

Установите коэффициенты масштабирования или количество для пакета для печати по API

Установите единицу измерения в дюймах:
 

curl -X PUT -d scaleUnit=in https://www.treatstock.com/api/v2/printable-packs/<id>?private-key=<api-token>

 

или в см:

curl -X PUT -d scaleUnit=cm https://www.treatstock.com/api/v2/printable-packs/<id>?private-key=<api-token>

 

или в мм:

curl -X PUT -d scaleUnit=mm https://www.treatstock.com/api/v2/printable-packs/<id>?private-key=<api-token>

 

изменить количество:

curl -X PUT -d qty["MP:1815155"]=7 https://www.treatstock.com/api/v2/printable-packs/<id>?private-key=<api-token>

 

где <id> - это идентификатор из ответа на загрузку

Пример результата:

{
  "success": true,
}
Edit

Получите цены на разные материалы.

Если вы укажете расположение печати, Вы сможете получать цены на разные материалы.

Пример CURL:

curl  "https://www.treatstock.com/api/v2/printable-pack-costs/?printablePackId=<id>&private-key=e48b318e6dfa95718ef7f79e82af9de2" 

или

curl  "https://www.treatstock.com/api/v2/printable-pack-costs/?printablePackId=<id>&private-key=e48b318e6dfa95718ef7f79e82af9de2&location[ip]=83.69.106.68" 

или

curl  "https://www.treatstock.com/api/v2/printable-pack-costs/?printablePackId=<id>&private-key=e48b318e6dfa95718ef7f79e82af9de2&location[country]=US" 

или

curl  "https://www.treatstock.com/api/v2/printable-pack-costs/?printablePackId=<id>&private-key=e48b318e6dfa95718ef7f79e82af9de2&location[country]=US&&printerMaterialGroup=Pla&printerColor=Black" 

Пример результата:

[
  {
    "printablePackId": 30,
    "materialGroup": "Plastic2",
    "printer": "US PS: Ditto-pro",
    "color": "Blue",
    "price": 4,
    "url":"https://www.treatstock.com/model3d/preload-printable-pack?packPublicToken=0...e&printerMaterialGroupId=6&printerColorId=90" 
  },
  {
    "printablePackId": 30,
    "materialGroup": "Plastic2",
    "printer": "US 6: MakerBot Replicator",
    "color": "White",
    "price": 2.53,
    "url":"https://www.treatstock.com/model3d/preload-printable-pack?packPublicToken=0...e&printerMaterialGroupId=7&printerColorId=91" 
  }
]

 

Если вы получите {"reason": "not_calculated_yet", "success": false}, попробуйте еще раз.

Edit

Сделать заказ

Чтобы разместить заказ, вам необходимо получить providerId из запроса API "printable-pack-costs".
POST запрос

POST https://www.treatstock.com/api/v2/place-order/create?private-key=746189ff56c6b27

с параметрами POST:

{
    "printablePackId": "223682",
    "providerId": "1371",
    "comment": "Please print it as fast as possible.",
    "location": {
        "email": "test@company.com",
        "company": "Big company" 
    },
    "shippingAddress": {
        "country": "US",
        "zip": "20003",
        "city": "WASHINGTON",
        "state": "DC",
        "street": "727 C ST SE",
        "firstName": "Bill",
        "lastName": "Jobs" 
    },
    "modelTextureInfo": {
        "isOneMaterialForKit": "1",
        "modelTexture": {
            "color": "Green",
            "materialGroup": "PLA" 
        }
    }
}

 

Ответ:

{
    "orderId": 26448,
    "total": 132.02,
    "url": "https://www.treatstock.com/workbench/order/view/26448" 
}

 

Edit

Возможные ошибки:

Ответ на недействительный адрес доставки:

{
    "errors": {
        "deliveryform-street": "This address is not supported by Treatstock Delivery Service. Please select another address. Reason:  Address not found." 
    }
}

 

Ответ в случае, если система предложит свой (утверждённый) вариант адреса вместо заданного:

{
    "validatedAddress": {
        "id": 58214,
        "contact_name": "User name",
        "country": "US",
        "state": "DC",
        "city": "WASHINGTON",
        "street": "10 4TH ST SE",
        "street2": null,
        "zip": "20003",
        "comment": null,
        "phone": null,
        "email": "test@test.com",
        "company": null
    }
}

 

Ответ в случае, если служба 3D-печати не может распечатать:

{
    "success": false,
    "message": "Specified provider cannot print with given details" 
}

 

Ответ, информирующий о недействительном запросе к API:

{
    "success": false,
    "message": "Please specify printablePackId." 
}

 

Edit

Получите возможные группы материалов для принтера и цвета.

Если Вам нужен полный список возможных групп материалов и цветов, Вы можете использовать этот запрос..

Пример CURL:

 

curl  "https://www.treatstock.com/api/v2/material-group-colors/?private-key=e48b318e6dfa95718ef7f79e82af9de2" 

Пример результата:

[
  {
    "code": "Metals and Alloys",
    "description": "Aluminum, stainless steel, titanium, nickel and cobalt chromium are the available materials which are industrial grade metals that are laser sintered from metal powder.",
    "colors": [
      {
        "code": "Silver",
        "rgb": "230,232,230" 
      },
      {
        "code": "Gray",
        "rgb": "190,190,190" 
      }
    ]
  }
]

 

Edit

Ограничения

Ограничения для одного ключа api.

7 подключений одновременно для GET 
15 подключений одновременно для POST
30 подключений одновременно для PUT

Один тип подключения независимо от других типов..

Edit

Примеры PHP 

Вы можете использовать оболочку api для нашего api:: https://github.com/Treatstock/apiv2/

 

Нужна помощь? Обратитесь в службу технической поддержки

Помогла ли вам эта информация?
|