curl --request POST \
--url https://api.autoprintfarm.com/public/v1/jobs/{id}/resume \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"confirm_over_limit": true
}
'import requests
url = "https://api.autoprintfarm.com/public/v1/jobs/{id}/resume"
payload = { "confirm_over_limit": True }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({confirm_over_limit: true})
};
fetch('https://api.autoprintfarm.com/public/v1/jobs/{id}/resume', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.autoprintfarm.com/public/v1/jobs/{id}/resume",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'confirm_over_limit' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.autoprintfarm.com/public/v1/jobs/{id}/resume"
payload := strings.NewReader("{\n \"confirm_over_limit\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.autoprintfarm.com/public/v1/jobs/{id}/resume")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"confirm_over_limit\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.autoprintfarm.com/public/v1/jobs/{id}/resume")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"confirm_over_limit\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "<string>",
"status": "<string>",
"printer_id": "<string>",
"product_id": "<string>",
"product_sku_id": "<string>",
"product_name": "<string>",
"file_name": "<string>",
"number_of_units": 123,
"color": "<string>",
"filament_type": "<string>",
"material_type": "<string>",
"progress_percentage": 123,
"estimated_print_time_minutes": 123,
"actual_print_time_minutes": 123,
"failure_reason": "<string>",
"time_submitted": "<string>",
"time_started": "<string>",
"time_completed": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"origin": "app",
"printer_file_name": "<string>",
"filament_needed_grams": 123,
"printer_name": "<string>",
"printer_model": "<string>",
"sku_name": "<string>"
},
"timedOut": true,
"queued": true
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"details": "<unknown>"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"details": "<unknown>"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"details": "<unknown>"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"details": "<unknown>"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"details": "<unknown>"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"details": "<unknown>"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"details": "<unknown>"
}
}Resume a paused job
Side effect — physical motion. Sends resume to the printer via the hub and waits for ACK. State transitions paused → printing atomically; reverts on hub command failure. If the command was sent but the hub’s acknowledgement was lost, the job keeps its new state and the response carries timedOut: true — check the printer. A resumed print may reheat, so it counts against the heating budget at its peak draw until it is seen printing. In smart mode, a resume that could take the farm over its power limit is rejected with 409 RESUME_OVER_LIMIT unless the body sets confirm_over_limit: true. The body is optional.
curl --request POST \
--url https://api.autoprintfarm.com/public/v1/jobs/{id}/resume \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"confirm_over_limit": true
}
'import requests
url = "https://api.autoprintfarm.com/public/v1/jobs/{id}/resume"
payload = { "confirm_over_limit": True }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({confirm_over_limit: true})
};
fetch('https://api.autoprintfarm.com/public/v1/jobs/{id}/resume', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.autoprintfarm.com/public/v1/jobs/{id}/resume",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'confirm_over_limit' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.autoprintfarm.com/public/v1/jobs/{id}/resume"
payload := strings.NewReader("{\n \"confirm_over_limit\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.autoprintfarm.com/public/v1/jobs/{id}/resume")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"confirm_over_limit\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.autoprintfarm.com/public/v1/jobs/{id}/resume")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"confirm_over_limit\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "<string>",
"status": "<string>",
"printer_id": "<string>",
"product_id": "<string>",
"product_sku_id": "<string>",
"product_name": "<string>",
"file_name": "<string>",
"number_of_units": 123,
"color": "<string>",
"filament_type": "<string>",
"material_type": "<string>",
"progress_percentage": 123,
"estimated_print_time_minutes": 123,
"actual_print_time_minutes": 123,
"failure_reason": "<string>",
"time_submitted": "<string>",
"time_started": "<string>",
"time_completed": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"origin": "app",
"printer_file_name": "<string>",
"filament_needed_grams": 123,
"printer_name": "<string>",
"printer_model": "<string>",
"sku_name": "<string>"
},
"timedOut": true,
"queued": true
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"details": "<unknown>"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"details": "<unknown>"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"details": "<unknown>"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"details": "<unknown>"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"details": "<unknown>"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"details": "<unknown>"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"details": "<unknown>"
}
}Authorizations
API keys are minted in the AutoPrintFarm web app under Settings → API Keys. Send as Authorization: Bearer apf_live_.... Keys are shown exactly once at creation and can be revoked at any time.
Path Parameters
Body
Response
Resumed
true Show child attributes
Show child attributes
True when the command was sent to the hub but its acknowledgement never came back. The job keeps its new state and the command may still take effect — check the printer; live telemetry reconciles the job.
Was this page helpful?