# SyteLine IDO REST Request Generator

> Source: https://netray.co/tools/syteline-ido-rest-request-generator
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

Fill in host, configuration, IDO, properties and filter to get ready-to-use REST calls for loading, updating and invoking methods on SyteLine IDOs.

## Category

developer

## Erp

Infor SyteLine

## Audience

- SyteLine developer
- Integration engineer
- ERP administrator

## Tool

**Kind:** template

**Output:** code

**Language:** http

**Fields:**

#### Base URL (up to IDORequestService)

**Key:** base_url

**Type:** text

**Default:** https://syteline.example.com/IDORequestService

#### Configuration name

**Key:** config

**Type:** text

**Default:** PROD_Config

#### User name

**Key:** user

**Type:** text

**Default:** apiuser

#### IDO name

**Key:** ido

**Type:** text

**Default:** SLItems

#### Properties (comma separated)

**Key:** props

**Type:** text

**Default:** Item,Description,UM,UnitCost

#### Filter

**Key:** filter

**Type:** text

**Default:** Item LIKE 'PN-%'

#### Order by

**Key:** orderby

**Type:** text

**Default:** Item

#### Row cap

**Key:** rowcap

**Type:** number

**Default:** 100

#### Method name for invoke

**Key:** method

**Type:** text

**Default:** ItemGetCostSp

#### Item value for update example

**Key:** item_value

**Type:** text

**Default:** PN-48213

**Blocks:**

#### 1. Request a token

**Body:** GET {{base_url}}/ido/token/{{config}}/{{user}}/<password>
Accept: application/json

# Response contains a Token value. Send it in the Authorization header of every later call.

#### 2. Load collection

**Body:** GET {{base_url}}/ido/load/{{ido}}?properties={{props}}&filter={{filter}}&orderBy={{orderby}}&rowcap={{rowcap}}
Authorization: <token>
Accept: application/json

# URL encode spaces, quotes and percent signs in the filter before sending, for example Item%20LIKE%20%27PN-%25%27

#### 3. Update one record

**Body:** POST {{base_url}}/ido/update/{{ido}}?refresh=true
Authorization: <token>
Content-Type: application/json

{
  "Changes": [
    {
      "Action": 2,
      "ItemId": "<_ItemId value returned by the load call>",
      "Properties": [
        { "Name": "Description", "Value": "Updated description for {{item_value}}", "Modified": true, "IsNull": false }
      ]
    }
  ]
}

# Action values: 1 insert, 2 update, 4 delete.

#### 4. Invoke a method

**Body:** POST {{base_url}}/ido/invoke/{{ido}}?method={{method}}
Authorization: <token>
Content-Type: application/json

[ "{{item_value}}" ]

# The body is a JSON array of the method parameters in the order the method declares them.

**Notes:** Verify the URL shape, token flow and available IDO names for your version. Cloud tenants usually sit behind Infor ION API and use OAuth2 bearer tokens instead of the token endpoint shown in step 1. Never put real passwords in saved files. Test updates in a non-production configuration first.

## Content

**Intro:** Every SyteLine form reads and writes data through IDOs, and the IDO REST service lets any script or integration tool use the same objects. The syntax is easy to get wrong, especially filters, URL encoding and the update body. This generator builds the calls from a few fields.

**Sections:**

#### How to use the generator

**Body:** Enter your base URL, configuration, IDO and the properties you want, then copy each block into Postman, curl or your integration code. The load call returns rows plus an _ItemId value for each record. That value identifies the row and is what the update call needs, so always load first and update second. Keep the row cap small while you test, because an IDO load with no cap can return a very large result and load the application server.

**Bullets:**

- Property names are IDO property names, not database column names.
- Filters use SQL-like expressions on IDO properties.
- Start with a row cap of 10 to 100.

#### Reading the update body

**Body:** An update request is a Changes array. Each change names an Action, the ItemId of the target row and the properties that changed. Mark each changed property as Modified and set IsNull to false, or the server ignores it. Writing through an IDO runs the same validations and event handlers as the forms, which is the reason to prefer IDOs over direct SQL writes: business rules, triggers and audit information stay intact. Multiple changes in one request execute together.

#### Common mistakes

**Body:** Most failed calls come from a few causes. Using database column names such as item_mst columns instead of IDO property names returns an error about unknown properties. Forgetting to URL encode a filter breaks on spaces and percent signs. Calling an IDO without permission for that user in the configuration returns an authorization failure that looks like a bad URL. Finally, cloud and on-premise versions authenticate differently, so copy the token step only after you confirm which flow your tenant uses.

**Bullets:**

- Use a dedicated integration user with minimal permissions.
- Page large loads with rowcap and filters, not one huge call.
- Log the request and response while testing, never the password.

**Cta:** Netray builds SyteLine integrations and agents on top of IDOs with human approval on any write. If you would rather ask questions of SyteLine than hand-write requests, we can show you how.

**Faq:**

#### What is an IDO in SyteLine?

**Answer:** An IDO, or Intelligent Data Object, is the business object layer between SyteLine forms and the database. It exposes properties and methods, applies validation and runs event handlers. REST calls, forms and the Excel add-in all use IDOs rather than touching tables directly.

#### Why does my IDO REST call return an unknown property error?

**Answer:** Almost always because a database column name was used instead of the IDO property name. Check the IDO definition in the IDO development tools or load one record with no property list to see the available names, then use those exactly in the properties and filter values.

#### Can I write directly to SyteLine tables instead?

**Answer:** You can, but it bypasses validation, event handlers and audit behavior, and can corrupt related data or void support. Using IDO update or an application method keeps business rules in force. Reserve direct SQL for reads and reporting.

#### Does this work for CloudSuite Industrial?

**Answer:** The IDO model is the same, but cloud tenants typically authenticate through Infor ION API with OAuth2 and a tenant specific URL. Use the load, update and invoke patterns from this page, and replace the token step with the authentication flow your tenant requires.

## Search terms

syteline ido rest api, idorequestservice ido load, syteline rest api example, csi ido rest url, syteline ido update json, infor csi rest filter, syteline ido invoke method, syteline rest token

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
