Railcar API
Create a class list
Creates a new class list (switch list) with the specified equipment moves.
Usage notes:
- Each item represents an equipment move to a target track location.
- The jobId is a user-specified label for the class list.
POST
/
ims
/
work-orders
/
class-lists
/
create
Create a class list
curl --request POST \
--url https://api-lg.arms.cedarai.com/ims/work-orders/class-lists/create \
--header 'Content-Type: application/json' \
--header 'x-arms-api-key: <api-key>' \
--header 'x-arms-assume-user: <api-key>' \
--data '
{
"carrierId": 1234,
"jobId": "SWITCH-001",
"items": [
{
"equipmentId": 100,
"location": {
"grouping": {
"resourceId": 10,
"resourceType": "Grouping"
},
"groupingIndex": 0
}
},
{
"equipmentId": 200,
"location": {
"grouping": {
"resourceId": 10,
"resourceType": "Grouping"
},
"groupingIndex": 1
}
}
]
}
'import requests
url = "https://api-lg.arms.cedarai.com/ims/work-orders/class-lists/create"
payload = {
"carrierId": 1234,
"jobId": "SWITCH-001",
"items": [
{
"equipmentId": 100,
"location": {
"grouping": {
"resourceId": 10,
"resourceType": "Grouping"
},
"groupingIndex": 0
}
},
{
"equipmentId": 200,
"location": {
"grouping": {
"resourceId": 10,
"resourceType": "Grouping"
},
"groupingIndex": 1
}
}
]
}
headers = {
"x-arms-api-key": "<api-key>",
"x-arms-assume-user": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-arms-api-key': '<api-key>',
'x-arms-assume-user': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
carrierId: 1234,
jobId: 'SWITCH-001',
items: [
{
equipmentId: 100,
location: {grouping: {resourceId: 10, resourceType: 'Grouping'}, groupingIndex: 0}
},
{
equipmentId: 200,
location: {grouping: {resourceId: 10, resourceType: 'Grouping'}, groupingIndex: 1}
}
]
})
};
fetch('https://api-lg.arms.cedarai.com/ims/work-orders/class-lists/create', 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-lg.arms.cedarai.com/ims/work-orders/class-lists/create",
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([
'carrierId' => 1234,
'jobId' => 'SWITCH-001',
'items' => [
[
'equipmentId' => 100,
'location' => [
'grouping' => [
'resourceId' => 10,
'resourceType' => 'Grouping'
],
'groupingIndex' => 0
]
],
[
'equipmentId' => 200,
'location' => [
'grouping' => [
'resourceId' => 10,
'resourceType' => 'Grouping'
],
'groupingIndex' => 1
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-arms-api-key: <api-key>",
"x-arms-assume-user: <api-key>"
],
]);
$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-lg.arms.cedarai.com/ims/work-orders/class-lists/create"
payload := strings.NewReader("{\n \"carrierId\": 1234,\n \"jobId\": \"SWITCH-001\",\n \"items\": [\n {\n \"equipmentId\": 100,\n \"location\": {\n \"grouping\": {\n \"resourceId\": 10,\n \"resourceType\": \"Grouping\"\n },\n \"groupingIndex\": 0\n }\n },\n {\n \"equipmentId\": 200,\n \"location\": {\n \"grouping\": {\n \"resourceId\": 10,\n \"resourceType\": \"Grouping\"\n },\n \"groupingIndex\": 1\n }\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-arms-api-key", "<api-key>")
req.Header.Add("x-arms-assume-user", "<api-key>")
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-lg.arms.cedarai.com/ims/work-orders/class-lists/create")
.header("x-arms-api-key", "<api-key>")
.header("x-arms-assume-user", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"carrierId\": 1234,\n \"jobId\": \"SWITCH-001\",\n \"items\": [\n {\n \"equipmentId\": 100,\n \"location\": {\n \"grouping\": {\n \"resourceId\": 10,\n \"resourceType\": \"Grouping\"\n },\n \"groupingIndex\": 0\n }\n },\n {\n \"equipmentId\": 200,\n \"location\": {\n \"grouping\": {\n \"resourceId\": 10,\n \"resourceType\": \"Grouping\"\n },\n \"groupingIndex\": 1\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-lg.arms.cedarai.com/ims/work-orders/class-lists/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-arms-api-key"] = '<api-key>'
request["x-arms-assume-user"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"carrierId\": 1234,\n \"jobId\": \"SWITCH-001\",\n \"items\": [\n {\n \"equipmentId\": 100,\n \"location\": {\n \"grouping\": {\n \"resourceId\": 10,\n \"resourceType\": \"Grouping\"\n },\n \"groupingIndex\": 0\n }\n },\n {\n \"equipmentId\": 200,\n \"location\": {\n \"grouping\": {\n \"resourceId\": 10,\n \"resourceType\": \"Grouping\"\n },\n \"groupingIndex\": 1\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"resourceId": 123,
"uuid": "<string>",
"jobId": "<string>",
"status": "ACTIVE",
"createdAt": "2023-11-07T05:31:56Z",
"cuts": [
123
],
"isBack": true,
"carrier": {
"resourceType": "Carrier",
"resourceId": 123,
"uuid": "<string>",
"carrierCode": "<string>",
"name": "<string>"
},
"createdBy": {
"resourceType": "User",
"resourceId": 123,
"uuid": "<string>",
"displayName": "<string>",
"email": "jsmith@example.com"
}
}{
"message": "<string>"
}Authorizations
Your ARMS API key
Email of a user assigned to the appropriate user group
Query Parameters
Carrier identifier; required for all endpoints
Optional user group context
Body
application/json
Response
OK
A class list (switch list) represents a work order for switching operations.
UUID that complements the legacy numeric resourceId.
User-specified label for the class list
Status of the class list
Available options:
ACTIVE, ARCHIVED When the class list was created
Cut positions in the class list
True if switching from the back of the track
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Related topics
Classify a class listList class listsList class list tasksComplete class list tasksAPI IntroductionWas this page helpful?
⌘I
Create a class list
curl --request POST \
--url https://api-lg.arms.cedarai.com/ims/work-orders/class-lists/create \
--header 'Content-Type: application/json' \
--header 'x-arms-api-key: <api-key>' \
--header 'x-arms-assume-user: <api-key>' \
--data '
{
"carrierId": 1234,
"jobId": "SWITCH-001",
"items": [
{
"equipmentId": 100,
"location": {
"grouping": {
"resourceId": 10,
"resourceType": "Grouping"
},
"groupingIndex": 0
}
},
{
"equipmentId": 200,
"location": {
"grouping": {
"resourceId": 10,
"resourceType": "Grouping"
},
"groupingIndex": 1
}
}
]
}
'import requests
url = "https://api-lg.arms.cedarai.com/ims/work-orders/class-lists/create"
payload = {
"carrierId": 1234,
"jobId": "SWITCH-001",
"items": [
{
"equipmentId": 100,
"location": {
"grouping": {
"resourceId": 10,
"resourceType": "Grouping"
},
"groupingIndex": 0
}
},
{
"equipmentId": 200,
"location": {
"grouping": {
"resourceId": 10,
"resourceType": "Grouping"
},
"groupingIndex": 1
}
}
]
}
headers = {
"x-arms-api-key": "<api-key>",
"x-arms-assume-user": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-arms-api-key': '<api-key>',
'x-arms-assume-user': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
carrierId: 1234,
jobId: 'SWITCH-001',
items: [
{
equipmentId: 100,
location: {grouping: {resourceId: 10, resourceType: 'Grouping'}, groupingIndex: 0}
},
{
equipmentId: 200,
location: {grouping: {resourceId: 10, resourceType: 'Grouping'}, groupingIndex: 1}
}
]
})
};
fetch('https://api-lg.arms.cedarai.com/ims/work-orders/class-lists/create', 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-lg.arms.cedarai.com/ims/work-orders/class-lists/create",
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([
'carrierId' => 1234,
'jobId' => 'SWITCH-001',
'items' => [
[
'equipmentId' => 100,
'location' => [
'grouping' => [
'resourceId' => 10,
'resourceType' => 'Grouping'
],
'groupingIndex' => 0
]
],
[
'equipmentId' => 200,
'location' => [
'grouping' => [
'resourceId' => 10,
'resourceType' => 'Grouping'
],
'groupingIndex' => 1
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-arms-api-key: <api-key>",
"x-arms-assume-user: <api-key>"
],
]);
$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-lg.arms.cedarai.com/ims/work-orders/class-lists/create"
payload := strings.NewReader("{\n \"carrierId\": 1234,\n \"jobId\": \"SWITCH-001\",\n \"items\": [\n {\n \"equipmentId\": 100,\n \"location\": {\n \"grouping\": {\n \"resourceId\": 10,\n \"resourceType\": \"Grouping\"\n },\n \"groupingIndex\": 0\n }\n },\n {\n \"equipmentId\": 200,\n \"location\": {\n \"grouping\": {\n \"resourceId\": 10,\n \"resourceType\": \"Grouping\"\n },\n \"groupingIndex\": 1\n }\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-arms-api-key", "<api-key>")
req.Header.Add("x-arms-assume-user", "<api-key>")
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-lg.arms.cedarai.com/ims/work-orders/class-lists/create")
.header("x-arms-api-key", "<api-key>")
.header("x-arms-assume-user", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"carrierId\": 1234,\n \"jobId\": \"SWITCH-001\",\n \"items\": [\n {\n \"equipmentId\": 100,\n \"location\": {\n \"grouping\": {\n \"resourceId\": 10,\n \"resourceType\": \"Grouping\"\n },\n \"groupingIndex\": 0\n }\n },\n {\n \"equipmentId\": 200,\n \"location\": {\n \"grouping\": {\n \"resourceId\": 10,\n \"resourceType\": \"Grouping\"\n },\n \"groupingIndex\": 1\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-lg.arms.cedarai.com/ims/work-orders/class-lists/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-arms-api-key"] = '<api-key>'
request["x-arms-assume-user"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"carrierId\": 1234,\n \"jobId\": \"SWITCH-001\",\n \"items\": [\n {\n \"equipmentId\": 100,\n \"location\": {\n \"grouping\": {\n \"resourceId\": 10,\n \"resourceType\": \"Grouping\"\n },\n \"groupingIndex\": 0\n }\n },\n {\n \"equipmentId\": 200,\n \"location\": {\n \"grouping\": {\n \"resourceId\": 10,\n \"resourceType\": \"Grouping\"\n },\n \"groupingIndex\": 1\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"resourceId": 123,
"uuid": "<string>",
"jobId": "<string>",
"status": "ACTIVE",
"createdAt": "2023-11-07T05:31:56Z",
"cuts": [
123
],
"isBack": true,
"carrier": {
"resourceType": "Carrier",
"resourceId": 123,
"uuid": "<string>",
"carrierCode": "<string>",
"name": "<string>"
},
"createdBy": {
"resourceType": "User",
"resourceId": 123,
"uuid": "<string>",
"displayName": "<string>",
"email": "jsmith@example.com"
}
}{
"message": "<string>"
}