Listar plantillas
Las plantillas de carga de tu organización (artículos guardados), de la más reciente a la más antigua.
Indica una en un artículo con template_id. Gratis: no se cobran créditos.
Autenticación
Parámetros de consulta
limitintegerTamaño de página.
201–100cursorstringnext_cursor de la página anterior.
qstringSolo las plantillas cuya etiqueta contiene este texto.
created_bystringSolo lo que creó este miembro: me (quien creó la clave) o un ID de miembro (usr_…).
Ejemplo de solicitud
curl -X GET "https://runner.cargoduo.com/v1/templates?created_by=me" \
-H "Authorization: Bearer $CARGODUO_API_KEY"const res = await fetch("https://runner.cargoduo.com/v1/templates?created_by=me", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.CARGODUO_API_KEY}`,
},
});
const data = await res.json();
console.log(res.status, data);import os
import requests
response = requests.get(
"https://runner.cargoduo.com/v1/templates",
headers={"Authorization": f"Bearer {os.environ['CARGODUO_API_KEY']}"},
params={
"created_by": "me",
},
)
print(response.status_code, response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://runner.cargoduo.com/v1/templates?created_by=me", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("CARGODUO_API_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
out, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(out))
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://runner.cargoduo.com/v1/templates?created_by=me"))
.header("Authorization", "Bearer " + System.getenv("CARGODUO_API_KEY"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode() + " " + response.body());
}
}using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("CARGODUO_API_KEY"));
var request = new HttpRequestMessage(HttpMethod.Get, "https://runner.cargoduo.com/v1/templates?created_by=me");
var response = await client.SendAsync(request);
Console.WriteLine($"{(int)response.StatusCode} {await response.Content.ReadAsStringAsync()}");<?php
$ch = curl_init('https://runner.cargoduo.com/v1/templates?created_by=me');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('CARGODUO_API_KEY'),
],
]);
$response = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), ' ', $response, PHP_EOL;require "net/http"
require "uri"
uri = URI("https://runner.cargoduo.com/v1/templates?created_by=me")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer #{ENV.fetch("CARGODUO_API_KEY")}"
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(request)
end
puts response.code, response.bodyEjemplo de respuesta
{
"data": [
{
"id": "tpl_43",
"object": "template",
"label": "Carton A",
"shape": "box",
"length": 60,
"width": 40,
"height": 40,
"radius": 0,
"weight": 12,
"stackable": true,
"max_stack_weight": 0,
"rotation": "upright",
"hazardous": false,
"priority": 0,
"color": "#f59e0b",
"nesting_height": 0,
"created_by": {
"id": "usr_7",
"name": "Elif Kaya"
},
"updated_by": {
"id": "usr_7",
"name": "Elif Kaya"
},
"created_at": "2026-09-28T14:05:52Z",
"updated_at": "2026-09-28T14:05:52Z"
},
{
"id": "tpl_42",
"object": "template",
"label": "Euro pallet",
"shape": "box",
"length": 120,
"width": 80,
"height": 140,
"radius": 0,
"weight": 450,
"stackable": false,
"max_stack_weight": 0,
"rotation": "all",
"hazardous": false,
"priority": 0,
"color": "#3b82f6",
"nesting_height": 0,
"created_by": {
"id": "usr_7",
"name": "Elif Kaya"
},
"updated_by": {
"id": "usr_7",
"name": "Elif Kaya"
},
"created_at": "2026-09-28T14:05:52Z",
"updated_at": "2026-09-28T14:05:52Z"
}
],
"next_cursor": ""
}Respuestas
200OKUna página de plantillas.
NombreTipoObligatorioDescripcióndataTemplate[]Template[]NoDel más reciente al más antiguo.
idstringstringNoID de la plantilla (tpl_…).
objectstringstringNotemplatelabelstringstringNoEtiqueta visible.
shapestringstringNoForma del artículo.
cylinderydrumusanradius+heighten lugar delength+width;palletydrumsiempre se mantienen en vertical.boxcylinderpalletbagdrumlengthnumber · cmnumber · cmNoLargo. Obligatorio salvo que
shapeseacylinderodrum.widthnumber · cmnumber · cmNoAncho. Obligatorio salvo que
shapeseacylinderodrum.heightnumber · cmnumber · cmNoAlto (el lado vertical cuando el artículo está colocado tal como se definió).
radiusnumber · cmnumber · cmNoRadio. Obligatorio cuando
shapeescylinderodrum.weightnumber · kgnumber · kgNoPeso de UNA unidad.
stackablebooleanbooleanNoSe pueden colocar otros artículos encima.
max_stack_weightnumber · kgnumber · kgNoPeso máximo que puede soportar una unidad. 0 = ilimitado.
rotationstringstringNoall= cualquiera de las seis orientaciones;upright= solo puede girar sobre el eje vertical (este lado arriba);fixed= nunca se gira.alluprightfixedhazardousbooleanbooleanNoMercancía peligrosa: se mantiene cerca del suelo y separada de otros artículos peligrosos.
priorityintegerintegerNoPrioridad de carga. Mayor = se carga antes y se mantiene cuando falta espacio. 0 = ninguna.
colorstringstringNoColor de visualización en formato #rrggbb (solo visor y PDF).
nesting_heightnumber · cmnumber · cmNoSolapamiento telescópico cuando se apilan unidades idénticas (cajas o cubos encajables).
created_byUserRef | nullUserRef | nullNoEl miembro que lo creó (en las llamadas a la API: el miembro que creó la clave).
nullsi se desconoce.idstringstringNoID del miembro (usr_…). Filtra las listas con ?created_by=.
namestringstringNoupdated_byUserRef | nullUserRef | nullNoEl último miembro que lo modificó.
idstringstringNoID del miembro (usr_…). Filtra las listas con ?created_by=.
namestringstringNocreated_atstringstringNoRFC 3339.
updated_atstringstringNoRFC 3339.
next_cursorstringstringNoPásalo como ?cursor= para obtener la página siguiente; vacío en la última página.
401Unauthorized
unauthorizedkey_revokedkey_expiredunauthorizedClave de API ausente, mal formada o desconocida.key_revokedLa clave se ha revocado.key_expiredLa clave ha superado su fecha de caducidad.
Todos los códigos de errorNombreTipoObligatorioDescripciónerrorErrorBodyobligatorioErrorBodySícodestringobligatoriostringSíCódigo legible por máquina (snake_case). Basa tu lógica en este campo, nunca en
message.messagestringobligatoriostringSíExplicación en inglés.
request_idstringobligatoriostringSíIgual que la cabecera X-Request-Id. Indícalo al contactar con el soporte.
detailsErrorDetail[]ErrorDetail[]NoProblemas por campo (
validation_failed).pathstringstringNoRuta JSON del campo erróneo, p. ej., items[3].length.
codestringstringNorequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringNoExplicación en inglés.
403Forbidden
ip_not_allowedsubscription_inactiveaccount_inactivescope_missingip_not_allowedLa IP de origen no está en la lista de IP permitidas de la clave.subscription_inactiveLa organización no tiene ninguna suscripción activa que incluya la API.account_inactiveLa organización está suspendida o no tiene ningún propietario con la cuenta activa.scope_missingA la clave le falta un permiso que requiere este endpoint.
Todos los códigos de errorNombreTipoObligatorioDescripciónerrorErrorBodyobligatorioErrorBodySícodestringobligatoriostringSíCódigo legible por máquina (snake_case). Basa tu lógica en este campo, nunca en
message.messagestringobligatoriostringSíExplicación en inglés.
request_idstringobligatoriostringSíIgual que la cabecera X-Request-Id. Indícalo al contactar con el soporte.
detailsErrorDetail[]ErrorDetail[]NoProblemas por campo (
validation_failed).pathstringstringNoRuta JSON del campo erróneo, p. ej., items[3].length.
codestringstringNorequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringNoExplicación en inglés.
422Unprocessable entity
validation_failedvalidation_failedLa solicitud es JSON bien formado, pero describe un trabajo no válido. details[] enumera todos los problemas.
Todos los códigos de errorNombreTipoObligatorioDescripciónerrorErrorBodyobligatorioErrorBodySícodestringobligatoriostringSíCódigo legible por máquina (snake_case). Basa tu lógica en este campo, nunca en
message.messagestringobligatoriostringSíExplicación en inglés.
request_idstringobligatoriostringSíIgual que la cabecera X-Request-Id. Indícalo al contactar con el soporte.
detailsErrorDetail[]ErrorDetail[]NoProblemas por campo (
validation_failed).pathstringstringNoRuta JSON del campo erróneo, p. ej., items[3].length.
codestringstringNorequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringNoExplicación en inglés.
429Too many requests
rate_limitedrate_limitedDemasiadas solicitudes en el minuto, la hora o el día en curso (por clave o por organización), o más de 60 autenticaciones fallidas por minuto desde tu dirección IP.
Todos los códigos de errorNombreTipoObligatorioDescripciónerrorErrorBodyobligatorioErrorBodySícodestringobligatoriostringSíCódigo legible por máquina (snake_case). Basa tu lógica en este campo, nunca en
message.messagestringobligatoriostringSíExplicación en inglés.
request_idstringobligatoriostringSíIgual que la cabecera X-Request-Id. Indícalo al contactar con el soporte.
detailsErrorDetail[]ErrorDetail[]NoProblemas por campo (
validation_failed).pathstringstringNoRuta JSON del campo erróneo, p. ej., items[3].length.
codestringstringNorequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringNoExplicación en inglés.
500Internal server error
internal_errorinternal_errorAlgo ha fallado por nuestra parte.
Todos los códigos de errorNombreTipoObligatorioDescripciónerrorErrorBodyobligatorioErrorBodySícodestringobligatoriostringSíCódigo legible por máquina (snake_case). Basa tu lógica en este campo, nunca en
message.messagestringobligatoriostringSíExplicación en inglés.
request_idstringobligatoriostringSíIgual que la cabecera X-Request-Id. Indícalo al contactar con el soporte.
detailsErrorDetail[]ErrorDetail[]NoProblemas por campo (
validation_failed).pathstringstringNoRuta JSON del campo erróneo, p. ej., items[3].length.
codestringstringNorequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringNoExplicación en inglés.
503Service unavailable
api_disabledapi_disabledLa API está desactivada temporalmente (mantenimiento) o deshabilitada para la organización.
Todos los códigos de errorNombreTipoObligatorioDescripciónerrorErrorBodyobligatorioErrorBodySícodestringobligatoriostringSíCódigo legible por máquina (snake_case). Basa tu lógica en este campo, nunca en
message.messagestringobligatoriostringSíExplicación en inglés.
request_idstringobligatoriostringSíIgual que la cabecera X-Request-Id. Indícalo al contactar con el soporte.
detailsErrorDetail[]ErrorDetail[]NoProblemas por campo (
validation_failed).pathstringstringNoRuta JSON del campo erróneo, p. ej., items[3].length.
codestringstringNorequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringNoExplicación en inglés.