Overview

RPM’s JSON APIs use stable Uids to identify individual fields and table rows across many object types (forms, locations, custom records, etc.).  Use Uids to:

  • Filter which fields you retrieve via FilterUid parameters

  • Reference specific field or row values in updates

  • Correlate data across nested objects like sets or table rows


What is a Uid?

  • A Uid is an opaque string of the form <TemplateID>_<FieldID>.

  • It remains constant for the life of the template or record definition.

  • Always serialized as a string in JSON payloads.


Where Uids Appear

Any API response that returns field data will include Uid within each field entry.  Common locations:

  1. Top-level Fields arrays (e.g. forms, accounts, customers):

    "Fields":
    [  
    {
        "Field": <string>,
        "Uid": <string>,
        "Value": <string>
      }
     ]


  2. Reference-type fields (include an extra ID property):

    {  
    "Field": <string>,
      "Uid": <string>,
      "Value": <string>,
      "ID": <int>
     }


  3. Nested Table fields under Rows arrays (any object with table‐style fields):

    "Rows":
     [  
    {
        "RowID": <int>,
        "TemplateDefinedRowID": <int>,
        "IsDefinition": <bool>,
        "IsLabelRow": <bool>,
        "IsShown": <bool>,
        "Order": <int>,
        "Fields": 
     [  
    {
            "Uid": <string>,
            "Value": <string>,
            "IsUnread": <bool>
          }    
    ]
      }
     ]



Using Uids in API Requests

Many endpoints accept a FilterUid parameter to limit the returned fields to a single Uid (or comma‐delimited list):

{  
"ObjectID": <int>,
"FilterUid": <string>
 }


Response will include only matching entries:

"Fields":
[ 
 {
    "Field": <string>,
    "Uid": <string>,
    "Value": <string>
  } 
]



Updating Specific Fields

When sending updates (e.g. edits or adds), reference the Uid to target exactly that field. Generic payload structure:

{
"Object":
[  
{
    "Field": <string>,
    "Uid": <string>,
    "Value": <string>
  } 
]
}


For reference fields that require their internal numeric ID, include ID as well:

{

  "Object": 
[    
{      
"Field": <string>,
"Uid": <string>,
"Value": <string>,
"ID": <int>    
}  
] 
}