API Reference

Authentise’s Slicing Service was built to enable tool-path generation in the cloud.

There are a few concepts involved with the Slicing Service. Its designed to be used in tandem with the Model Warehouse. The Slicing Service boasts two resources of its own: configs, and slices. A slice resource takes a config, and a model resource.

POST /config/curated/

Create a new config resource with our curated list of parameters. Our engineers broke out these settings, as they make the most obvious changes in a config.

Request JSON Object:
 
  • engine (string) – Required. the slicing engine you want to use. Current options include slic3r and makerbot.
  • description (string) – Optional. The name of the config. This can be any string and should be meaningful to the user.
  • parameters (object) – Optional. A list of curated options that most users stick to, some more advanced than others.
  • parameters.material (string) – ABS or PLA.
  • parameters.print_quality (string) – fine (0.1mm), low (0.3mm), or standard (0.2mm).
  • parameters.filament_diameter (float) – The filament diameter that works with your machine in millimeters.
  • parameters.nozzle_diameter (float) – The nozzle diameter that works with your machine in millimeters.
  • parameters.infill_density (float) – Sets the inside density of a print.
  • parameters.infill_speed (float) – Sets the speed of the printer when its printing the infill.
  • parameters.extruder_temperature (float) – Sets the temperature of the print nozzle.
  • parameters.bed_temperature (float) – Sets the temperature of the heated bed.
  • parameters.perimeters (int) – Sets the number of perimeters of a print.
  • parameters.perimeter_speed (float) – Sets the speed of the printer when its printing the perimeters.
  • parameters.support (bool) – Turns on, or off the support feature.
  • parameters.raft (bool) – turns on, or off the raft feature.

Example request

{
    "description": "makerbot high-resolution",
    "engine": "makerbot",
    "parameters": {"material": "ABS",
               "print_quality": "fine",
               "filament_diameter": 1.75,
               "nozzle_diameter": 0.4
               "infill_density": 33.0,
               "infill_speed": 90.0,
               "extruder_temperature": 240.0,
               "bed_temperature": 110.0,
               "perimeters": 2,
               "perimeter_speed": 40.0,
               "support": false,
               "raft": false
    }
}
Response Headers:
 
  • Location – The URI of the model where information about the config can be requested. Ex: /config/<uuid>/
POST /config/raw/

Create a new config resource using the raw contents of a pre-existing config file.

Request JSON Object:
 
  • engine (string) – Required. the slicing engine you want to use. Current options include slic3r and makerbot.
  • content (string) – Required. the contents of a config file as a string.
  • description (string) – Optional. The name of the config. This can be any string and should be meaningful to the user.

Example request

{
    "description": "makerbot high-resolution",
    "engine": "makerbot",
    "content": {"avoid_crossing_perimeters = 0\nbed_size = 200,200\nbed_temperature = 0\nbottom_solid_layers = 3\nbridge_acceleration = 0\n....."
    }
}
Response Headers:
 
  • Location – The URI of the model where information about the config can be requested. Ex: /config/<uuid>/
GET /config/<uuid>/

Get information about a config. Each parameter that was populated in /config/curated/ will be populated, otherwise those properties will be null.

Response JSON Object:
 
  • description (string) – The user defined description of the configuration.
  • engine (string) – The name of the engine this config corresponds to.
  • content (string) – The url of a link at which the config can be downloaded.
  • parameters (object) – A list of curated options that most users stick to, some more advanced than others.
  • parameters.material (string) – ABS or PLA.
  • parameters.print_quality (string) – fine (0.1mm), low (0.3mm), or standard (0.2mm).
  • parameters.filament_diameter (float) – The filament diameter that works with your machine in millimeters.
  • parameters.nozzle_diameter (float) – The nozzle diameter that works with your machine in millimeters.
  • parameters.infill_density (float) – Sets the inside density of a print.
  • parameters.infill_speed (float) – Sets the speed of the printer when its printing the infill.
  • parameters.extruder_temperature (float) – Sets the temperature of the print nozzle.
  • parameters.bed_temperature (float) – Sets the temperature of the heated bed.
  • parameters.perimeters (int) – Sets the number of perimeters of a print.
  • parameters.perimeter_speed (float) – Sets the speed of the printer when its printing the perimeters.
  • parameters.support (bool) – Turns on, or off the support feature.
  • parameters.raft (bool) – turns on, or off the raft feature.
POST /constraint/

Create a new config constraint resource with the curated list of parameters.

Request JSON Object:
 
  • name (string) – Required. the config constraint name that you want to use.
  • description (string) – Optional. The description of the config constraint. This can be any string and should be meaningful to the user.
  • parameters (object) – Required. A list of curated options that will be applied to a slicing config.
Response JSON Object:
 
  • parameters.material (object) – _in, equals, min, max, not-equals-to.
  • parameters.print_quality (object) – _in, equals, min, max, not-equals-to.
  • parameters.filament_diameter (object) – _in, equals, min, max, not-equals-to.
  • parameters.nozzle_diameter (object) – _in, equals, min, max, not-equals-to.
  • parameters.infill_density (object) – _in, equals, min, max, not-equals-to.
  • parameters.infill_speed (object) – _in, equals, min, max, not-equals-to.
  • parameters.extruder_temperature (object) – _in, equals, min, max, not-equals-to.
  • parameters.bed_temperature (object) – _in, equals, min, max, not-equals-to.
  • parameters.perimeters (object) – _in, equals, min, max, not-equals-to.
  • parameters.perimeter_speed (object) – _in, equals, min, max, not-equals-to.
  • parameters.support (object) – _in, equals, min, max, not-equals-to.
  • parameters.raft (object) – _in, equals, min, max, not-equals-to.

Example request

{
    "name": "High Quality",
    "description": "Slicing config constraint that ensures high quality prints",
    "parameters": {
        "material": {
            "_in" ["ABS", "PLA"]
        },
        "print_quality": {
            "equals": "fine"
        },
        "extruder_temperature": {
            "not-equals-to": 240.0
        },
        "filament_diameter": {
            "min": 1.75
        },
        "nozzle_diameter": {
            "max": 0.4
        },
        "infill_density": {
            "less-than": 33.0
        },
        "infill_speed": {
            "greater-than": 90.0
        }
    }
}
Response Headers:
 
  • Location – The URI of the constraint config where information about the constraint config can be requested. Ex: /constraint/<uuid>/
GET /constraint/<uuid>/

Get information about a config constraint.

Request JSON Object:
 
  • name (string) – The config constraint name that you want to use.
  • description (string) – The description of the config constraint. This can be any string and should be meaningful to the user.
  • parameters (object) – A list of curated options that will be applied to a slicing config.
PUT /constraint/<uuid>/

Update a config constraint.

Request JSON Object:
 
  • name (string) – The config constraint name that you want to use.
  • description (string) – The description of the config constraint. This can be any string and should be meaningful to the user.
DELETE /constraint/<uuid>/

Delete a config constraint.

POST /constraint-model/

Associate a config constraint with a model

Request JSON Object:
 
  • constraint (string) – Required. The uri of constraint config to associate with.
  • model_uri (string) – Required. The model uri to associate the constraint config with.

Example request

{
    "constraint": "https://quickslice.authentise.com/constraint/319f9c7f-f955-434e-b382-4c7f32ce131a/",
    "model_uri": "httos://hoth.authentise.com/model/ed6820b4-e16f-4127-8eae-8195896ed0e5/"
}
Response Headers:
 
  • Location – The URI of the constraint model where information about the constraint model can be requested. Ex: /constraint-model/<uuid>/
GET /constraint-model/<uuid>/

Get information about a constraint model.

Request JSON Object:
 
  • constraint (string) – The uri of constraint config.
  • model_uri (string) – The model uri.
DELETE /constraint/<uuid>/

Delete a constraint model

POST /slice/

Create a new slice job. A slice job is rather basic; given a model resource and a config resource (assuming neither of them are in error), will simply kick off a slice job.

If the optional callback parameters are included, we will notify you when the status changes Ex: processing, processed, and/or error.

If the slicing config conflicts with a constraint applied to the model then the slicing will not proceed and the response will return status code 409 with details about the issue.

Request JSON Object:
 
  • model (string) – Required. The location of the model resource you want to slice.
  • config (string) – Required. The location of the config resource you want to slice the model with.
  • callback (obj) – Optional. The URL to call when this slice job changes states.
  • callback.url (string) – Optional. The URL to request for the callback
  • callback.method (string) – Optional. The method to use for the request, one of GET, POST or PUT.

Example request

{
    "model": "https://models.dev-auth.com/model/abc-123/",
    "config": "https://slice.dev-auth.com/config/def-456/",
    "callback": {"url": "mysite.com/callback", "method": "POST"}
}
Response Headers:
 
  • Location – The URI of the model where information about the slice operation can be requested. Ex: /slice/ghi-789/
GET /slice/<uuid>/

Get information about a slice.

Response JSON Object:
 
  • status (string) – The current status of the slice. Can be one of queued, processing, processed, or error.
  • config (string) – The url of the config resource that was used to create this slice job
  • content (string) – The url of a link at which the finished slice can be downloaded, if the slice has finished, and was successful.
  • slice_time (int) – render time, in seconds. This property will only be populated if the slice has finished, and was successful.
  • estimates (object) – Object that provides useful estimates about a print
  • estimates.build_time_seconds (float) – Estimated build time. Only available when slicing with CatalystEx.
  • estimates.support_volume_cc (float) – Support volume in cubic centimeters. Only available when slicing with CatalystEx.
  • estimates.build_volume_cc (float) – Build volume in cubic centimeters. Only available when slicing with CatalystEx.
POST /gcode/

Create a new gcode.

Request JSON Object:
 
  • name (string) – Optional. The gcode name

Example request

{
    "name": "3mm Cube gcode"
}
Response Headers:
 
  • Location – The URI of the gcode where information about the gcode can be requested. Ex: /gcode/ghi-299/
  • X-Upload-Location – The URI to upload the gcode contents to.
GET /gcode/<uuid>/

Get information about a gcode.

Response JSON Object:
 
  • name (string) – The name of the gcode.
  • status – The current status of the gcode. Can be one of not-uploaded, processing, processed, or error.
  • content (string) – The URL of a link at which the gcode can be downloaded, if the gcode has been processed, and was successfully validated.