In this article, get an in depth description of Idencia's available API calls
Applicable Subscription Levels:
STARTER | PRO | PRO+ | ENTERPRISE
Overview
There are 5 basic tasks that can be performed via GET, POST and PUT calls to the Idencia Public API.
In this article, topics include:
Create a New Custom Item Type (within an existing Job)
Update an Item's Custom Property
Update a Custom Item Type (within a Job)
Also included at the end of this article is a downloadable file of Executable API Descriptions in the form of a JSON Postman App Collection.
Configuration
Contact your customer liaison for instructions on configuring your site with an API key.
Get a List of Items
This call returns items that match the specified parameters.
Endpoint (URL) |
/api/Items | |
Content-Type |
application/json | |
Method |
GET | |
Authorization |
N/A | |
URL Parameters |
||
Name |
Notes | Data Type |
---|---|---|
modifiedAfter | limits items returned to items with a modified date after the given date |
UTC DateTime Format: yyyy-MM-ddThh:mm:ss |
modifiedBefore | limits items returned to items with a modified date before the given date |
UTC DateTime Format: yyyy-MM-ddThh:mm:ss |
createdAfter | limits items returned to items with a create date after the given date |
UTC DateTime Format: yyyy-MM-ddThh:mm:ss |
createdBefore | limits items returned to items with a create date before the given date |
UTC DateTime Format: yyyy-MM-ddThh:mm:ss |
jobNumber | limits items returned to items within the given Job Number | Varchar(50) |
itemTypeNumber | limits items returned to items with the given Item Type Number | Varchar(100) |
serialNumber | limits items returned to just the item with the given Serial Number | Varchar(50) |
itemGroupNumber | limits items returned to just items with the given Item Group Number | Varchar(50) |
processName | limits items returned to just items with the given Process attached | Varchar(100) |
itemStatus | limits items returned to just items with the given Item Status | Varchar(100) |
Example:
https://<server name>.idencia.net/api/items?modifiedafter=<date and time>&jobNumber=<number>
- Where <server name> is the sub-domain name for the Idencia website
- Where <date and time> is a date/time formatted as "yyyy-MM-ddThh:mm:ss". The date and time should be converted to UTC time zone.
- Where <number> is the Job Number to which the items should belong
For the example call above, the API will return an XML tree of all Items in the specified Job that have been modified since the specified date and time.
Response:
The format of the XML response will contain the following:
<ArrayOfItemType> - the top level of the returned list of items.
- <ItemType> - Under this tag is all of the information about the Item Type of this Item.
- <Id> - The internal unique identifier for the item type. This is a 16 byte GUID.
- <Number> - The item type's Number field.
- <Name> - The item type's Name field
- <ModifiedOnServerUtc> - The UTC date/time stamp the item type was last modified on the server.
- <CustomProperties> - Under this tag are all of the Item Type Custom Properties that have values.
- <CustomProperty> - (multiple) - Under this tag will be Name and Value pairs for each Item Type Custom property that has a value
- <Name> - The name of the Custom Property
- <Value> - The value of the Custom Property
- <CustomProperty> - (multiple) - Under this tag will be Name and Value pairs for each Item Type Custom property that has a value
-
- <Items> - Under this tag will be listed each item within the Item Type
- <Item> (multiple) - a single item in the list of items that match the request parameters
- <Id> - The internal unique identifier for the item. This is a 16 byte GUID.
- <IsDeleted> - A flag to indicate if the item has been deleted. 'true' if deleted, or 'false' if not deleted.
- <ModifiedOnServerUtc> - The UTC date/time stamp the item was last modified on the server.
- <CreatedById> - The unique identifier of the user who created the item.
- <CreatedBy> - The first and last name of the user who created the item.
- <CreatedOnUtc> - The UTC date/time stamp the item was created.
- <CurrentPhase> - The name of the most recent Process Phase
- <CustomProperties> - Under this tag are all of the Item Custom Properties that have values
- <CustomProperty> - Under this tag will be Name and Value pairs for each Item Custom property that has a value
- <Name> - The name of the Custom Property
- <Value> - The value of the Custom Property
- <CustomProperty> - Under this tag will be Name and Value pairs for each Item Custom property that has a value
- <HasFailedSteps> - A flag to indicate if the Item has Pass/Fail steps in the current process marked as Failed. 'true' if there are failed steps, 'false' if there are no failed steps.
- <IsProcessComplete> - A flag to indicate if the Item is currently running a process or not. 'true' if no process is running, or 'false' if a process is running.
- <SerialNumber> - The serial number assigned to the Item.
- <ItemStatus> - The status of the Item
- <CreatedOnSourceServerUtc> - The date/time the Item was created
- <Item> (multiple) - a single item in the list of items that match the request parameters
- <Items> - Under this tag will be listed each item within the Item Type
-
-
-
- <Process> (multiple) - Under this tag is all of the information about a process. If more than one process has been run on an item, this tag is used for each process.
- <Name> - The name of the Process.
- <Phases> (multiple) - Under this tag are all of the Process Phases
- <Phase> (multiple) - Under this tag are the Phase properties
- <Name> - The name of the Phase
- <Steps> - Under this tag are all of the steps in the Phase
- <Step> (multiple) - This tag indicates a step within this phase of the process.
- <Name> - The name of the step.
- <StepType> - The type of step.
- <ModifiedOnServerUtc> - The UTC date/time stamp the step was last modified on the server.
- <ModifiedById> - The unique identifier of the user who recorded the step.
- <ModifiedBy> - The first and last name of the user who recorded the step.
- <StepResult> - The recorded value of the step.
If Step Type is "Pass, Fail", result can be "Pass" or "Fail" or "N/A".
If Step type is "Set *Custom Property Name*", result is the value of the custom property - <ModifiedOnUtc> - The UTC date/time the step was recorded on the device.
- <Step> (multiple) - This tag indicates a step within this phase of the process.
- <Phase> (multiple) - Under this tag are the Phase properties
- <Process> (multiple) - Under this tag is all of the information about a process. If more than one process has been run on an item, this tag is used for each process.
-
-
In addition to the parameters listed above, there are two additional parameters that can be set in Azure that will affect the data returned by the API.
Item Grouping: The value of this parameter must be an Item Custom Property name. If this setting is defined, the XML tree that is returned will include an <ItemGrouping> node for each different value of the custom property defined for the Item Grouping. For example, if you have an Item Custom Property called "Inspection Date" and would like items in the XML tree to be grouped by Inspection Date, this setting can provide that grouping.
Get a List of Jobs
This call retrieves Jobs that match the specified parameters
Endpoint (URL) |
/api/Jobs | |
Content-Type |
application/json | |
Method |
GET | |
Authorization |
API Key | |
Body Parameters | ||
---|---|---|
Name |
Notes | Data Type |
key | Provided during API configuration | |
Name | limits jobs returned to jobs with the given name |
Varchar(100) |
CompletedStatus | limits jobs returned to jobs with the given status | True or False |
CompletionDate | limits jobs returned to jobs completed on the given date | Date/Time |
CustomerName | limits jobs returned to jobs with the given name | Varchar(100) |
Number | limits jobs returned to jobs with the given number | Varchar(50) |
Example:
URL:
https://<server name>.idencia.net/api/jobs
- Where <server name> is the sub-domain name for the Idencia website
Example Body:
For the example call above, the API will return an array of properties associated with the specified Job number.
The format of the returned JSON response will include the following:
- "Name" - The name of the Job
- "Number" - The number of the Job
- "CreatedOnUtc" - The date/time the Job was created
- "IsItemsLimited" - Are the items limited to the number required? (True/False)
- "CompletedStatus" - Is the Job complete? (True/False)
- "CompletionDate" - The date/time the Job was completed (if complete)
- "CustomerName" - The name of the Job's customer
- "ProcessName" - The name of the Job's default process
- "CustomProperties" - An array of custom property names and values
- "CustomPropertyName" - The name of the custom property followed by the value
Create a New Item Type
This call will create a new Item Type (not job specific)
Endpoint (URL) |
/api/ItemType | |
Content-Type |
application/json | |
Method |
POST | |
Authorization |
API Key | |
Body Parameters |
||
Name |
Notes | Data Type |
---|---|---|
key | Provided during API configuration | |
number | the unique Number for the new Item Type | Varchar(100) |
name | the name of the new Item Type | Varchar(100) |
process |
the name of the Default Process to run when a new Item of this type is scanned for the first time (this can be an empty string, "", for no default Process) |
Varchar(100) |
productsegment |
the NCDOT product segment of the Item Type |
Valid Values: Precast |
properties |
the list of custom property name and value pairs that should be added to the Item Type |
|
In this example an Item Type with the Number "Span A - 93-7 1/2" and Name "39x36 Box Beams" will be created. A large list of Custom Properties will be set for this Item Type.
{
"Name":"39x36 Box Beams",
"Number":"Span A - 93-7 1/2",
"Process":"",
"Properties": [
{
"Name":"Material",
"Value":"Prestressed Concrete Box Beams, 39in"},
{
"Name":"Material Type",
"Value":"Prestressed Concrete Members - E"},
{
"Name":"Material ID",
"Value":"60534"},
{
"Name":"Material Type ID",
"Value":"125"},
{
"Name":"Producer",
"Value":"Eastern Vault Company - Princeton, WV"},
{
"Name":"Producer ID",
"Value":"PS24"},
{
"Name":"Unit Type",
"Value":"LF"},
{
"Name":"Unit Value",
"Value":"93.625"},
{
"Name":"Bridge Number",
"Value":"850034"},
{
"Name":"Station",
"Value":"14"},
{
"Name":"Station Fraction",
"Value":"43"},
{
"Name":"Location",
"Value":"NC 104"},
{
"Name":"County",
"Value":"084"},
{
"Name":"NCDOT Contract Number",
"Value":"C203509"},
]
}
Result Codes | |
200 | OK |
400 | this is returned if the request is bad due to various reasons including:
|
401 | If authorization key is invalid or not exists |
404 | An item with a particular number does not exist |
409 | A property can not be updated |
500 | This is returned if the Item Type Number already exists in the database |
Create a New Item
This call will create a new Item with the specified properties.
Endpoint (URL) |
/api/Item | |
Content-Type |
application/json | |
Method |
POST | |
Authorization |
API Key | |
Body Parameters |
||
Name |
Notes | Data Type |
---|---|---|
key | Provided during API configuration | |
number | the unique Serial Number for the new Item | Varchar(50) |
itemtype | the number of the Item Type to use for this Item | Varchar(100) |
properties | the list of custom property name and value pairs that should be added to the Item | |
Custom Property Parameters | ||
name | the name of the item custom property | Varchar(100) |
value | the value of the item custom property | dependent on datatype |
Example:
In this example, an Item with the Serial Number "123456789" will be created using the item type "C203509-Span A - 93-7 1/2". Custom Properties "Concrete Mix", "Pour Date" and "Pour Number" are set to the associated values for this Item.
{
"Key": "jj5693ec-17dc-4e27-accf-db840a76bfd7",
"Number":"123456789",
"ItemType":"C203509-Span A - 93-7 1/2",
"Properties": [
{
"Name":"Concrete Mix",
"Value":"24PVUNC785NVPSE"},
{
"Name":"Pour Date",
"Value":"12/12/2015"},
{
"Name":"Pour Number",
"Value":"1"}
]
}
Result Codes | |
---|---|
200 | OK |
400 | this is returned if the request is bad due to various reasons including:
|
401 | If authorization key is invalid or not exists |
Create a New Job
This call will insert a new Job.
Endpoint (URL) |
/api/Job | |
Content-Type |
application/json | |
Method |
POST | |
Authorization |
API Key | |
Body Parameters |
||
Name |
Notes | Data Type |
---|---|---|
key | Provided during API configuration | |
number | the unique number for the new Job | Varchar(50) |
name | the name of the new Job | Varchar(100) |
customer | the name of the Job's customer |
This can be an empty string ("") for no Customer. |
isitemslimited |
true or false |
Should Item Types in the Job be limited to the number required? |
iscompleted |
true or false |
Is the Job complete? |
defaultprocess | the default process to be applied to all Custom Item Types in the Job | |
customproperties | the list of custom property name and value pairs that should be added to the Job |
Example:
In this example, a Job with the number 123456789 and name "Test Job 123456789" will be created with the settings and custom property values described in the code block below.
Result Codes | |
---|---|
200 | OK |
400 | this is returned if the request is bad due to various reasons including:
|
401 | If authorization key is invalid or not exists |
Create a New Custom Item Type (within an existing Job)
This call will insert a new Custom Item Type within the specified Job.
Endpoint (URL) |
/api/CustomItemType | |
Content-Type |
application/json | |
Method |
POST | |
Authorization |
API Key | |
URL Parameters |
||
Name |
Notes | Data Type |
---|---|---|
jobNumber |
the unique Number for the Job into which the Custom Item Type will be inserted |
Varchar(100) |
Body Parameters |
||
Name |
Notes | Data Type |
key | Provided during API configuration | |
number | the unique Number for the new Item Type | Varchar(100) |
name | the name of the new Item Type | Varchar(100) |
defaultprocess |
the name of the Default Process to run when a new Item of this type is scanned for the first time (this can be an empty string, "", for no default Process) |
Varchar(100) |
quantityrequired |
the quantity of the Item Type that will be required |
Integer |
customproperties |
the list of custom property name and value pairs that should be added to the Item Type |
|
Example:
Endpoint: /api/CustomItemType/jDR556
In this example a Custom Item Type with the Number "BB-12A" and Name "Bridge Beam 12A" will be created in Job DR556. A large list of Custom Properties will be set for this Item Type.
Result Codes | |
---|---|
200 | OK |
400 | this is returned if the request is bad due to various reasons including:
|
401 | If authorization key is invalid or not exists |
404 | An item with a particular number does not exist |
409 | Any property can not be updated |
500 | This is returned if the Item Type Number already exists in the database |
Create a New Custom Property
This call will insert a new Custom Property of the specified type and category.
Endpoint (URL) |
/api/CustomProperty/{{Category}} | |
Content-Type |
application/json | |
Method |
POST | |
Authorization |
API Key | |
URL Parameters |
||
Name |
Notes | |
---|---|---|
Job |
Used when creating Job Custom Properties |
|
Item |
Used when creating an Item Custom Property |
|
ItemType |
Used when creating an Item Type Custom Property |
|
Body Parameters |
||
Name |
Notes | Data Type |
key | Provided during API configuration | |
custompropertytype | the datatype for the custom property |
Valid Values: Numeric, Date, Text |
name | the name of the new Custom Property | Varchar(100) |
showinapp |
true or false |
Should the custom property appear in the mobile app? |
Endpoint: /api/CustomProperty/Job
In this example a Text, Job Custom Property with the Name "Delivery Address". This custom property will not appear in the mobile application.
{
Result Codes | |
---|---|
200 | OK |
400 | this is returned if the request is bad due to various reasons including:
|
401 | If authorization key is invalid or not exists |
404 | An item with a particular number does not exist |
409 | Any property can not be updated |
500 | This is returned if the Item Type Number already exists in the database |
Update an Existing Item
This call will update the Item Type, Job, and/or one or more Custom Properties of the specified Item.
Endpoint (URL) |
/api/Item | |
Content-Type |
application/json | |
Method |
PUT | |
Authorization |
API Key | |
Body Parameters |
||
Name |
Notes | Data Type |
---|---|---|
key | Provided during API configuration | |
number | the unique Serial Number for the Item being updated | |
job (optional) | the new job number for the Item | |
ItemType | the number of the new Item Type or Custom Item Type for this Item | |
properties (optional) |
the list of Item custom property values to be updated for this Item Item custom properties not included in this list will be ignored; NULL values must be expressly set in the call |
|
Custom Property Parameters | ||
name | the name of the item custom property | |
value | the value of the item custom property |
Example:
{
"key": "jj5693ec-17dc-4e27-accf-db840a76bfd7",
"number": "1558440247",
"job":"test job",
"itemtype": "test custom item type",
"properties": [
{
"name": "Form ID",
"value": "1"
}
]
}
Result Codes | |
---|---|
200 | OK |
400 | this is returned if the request is bad due to various reasons including:
|
401 | If authorization key is invalid or not exists |
404 | an item with that unique serial number does not exist |
409 | a property cannot be updated |
This call will update a single custom property for the specified Item.
Endpoint (URL) |
/api/Item/customProperty | |
Content-Type |
application/json | |
Method |
PUT | |
Authorization |
API Key | |
Body Parameters |
||
Name |
Notes | Data Type |
---|---|---|
key | Provided during API configuration | |
ItemNumber | the unique Serial Number for the Item being updated | |
CustomPropertyName | name of the Item custom property being updated | |
CustomPropertyValue | value of the custom property being updated |
Example:
"key": "jj5693ec-17dc-4e27-accf-db840a76bfd7",
"ItemNumber": "1557923345",
"CustomPropertyName":"Date Produced",
"CustomPropertyValue":"34"
}
Result Codes | |
---|---|
200 | OK |
400 | this is returned if the request is bad due to various reasons including:
|
401 | If authorization key is invalid or not exists |
404 | an item with that unique serial number does not exist |
409 | a property cannot be updated |
This call will update one or more properties of the specified Job
Endpoint (URL) |
/api/Job/{{jobNumber}} | |
Content-Type |
application/json | |
Method |
PUT | |
Authorization |
API Key | |
URL Parameters |
||
jobNumber | the Job to be updated | |
Body Parameters |
||
Name |
Notes | Data Type |
---|---|---|
key | Provided during API configuration | |
name | the new job name | Varchar(100) |
customer | the new job customer | Varchar(100) |
isitemslimited |
true or false |
Should Item Types in the Job be limited to the number required? Click here for more information about limiting Item Types to the number required |
iscompleted |
true or false |
Is the Job complete? Click here for more information about completing Jobs. |
defaultprocess | the default process to be applied to all Custom Item Types in the Job | Click here for more information about the default process specified in a Job. |
customproperties (optional) | the list of custom property name and value pairs that should be added to the Job | Custom properties not included in this list will be ignored; NULL values must be expressly set in the call |
Example:
Endpoint: /api/Job/98765
{
"key": "jj5693ec-17dc-4e27-accf-db840a76bfd7",
"name": "Update Demo job 2",
"customer": "",
"IsItemsLimited": false, //true and false
"IsCompleted": false, //true and false
"defaultprocess": "NCR"
}
}
Result Codes | |
---|---|
200 | OK |
400 | this is returned if the request is bad due to various reasons including:
|
401 | If authorization key is invalid or not exists |
409 | a property cannot be updated |
This call will update one or more properties of the specified Item Type
Endpoint (URL) |
Endpoint: /api/ItemType/{{itemTypeNumber}} | |
Content-Type |
application/json | |
Method |
PUT | |
Authorization |
API Key | |
URL Parameters |
||
itemTypeNumber | the Item Type Number to be updated | |
Body Parameters |
||
Name |
Notes | Data Type |
---|---|---|
key | Provided during API configuration | |
name | the new Item Type name | Varchar(100) |
informationurl (optional) | the url where information about the Item Type can be found | |
defaultprocess (optional) | the new default process for the Item Type | |
customproperties (optional) | the list of custom property name and value pairs that should be added to the Job | Custom properties not included in this list will be ignored; NULL values must be expressly set in the call |
Example:
/api/ItemType/123456
{
"key": "jj5693ec-17dc-4e27-accf-db840a76bfd7",
"name": "new Item Type name",
"informationurl": "",
"defaultprocess": "",
"customproperties": {
"design depth": 50,
"design height": 110,
"design length": 11,
"material": "test"
}
}
Result Codes | |
---|---|
200 | OK |
400 | this is returned if the request is bad due to various reasons including:
|
401 | If authorization key is invalid or not exists |
409 | a property cannot be updated |
Update a Custom Item Type (within a Job)
This call will update one or more properties of the specified Custom Item Type
Endpoint (URL) |
Endpoint: /api/CustomItemType/{{jobNumber}}/{{customItemTypeNumber}} | |
Content-Type |
application/json | |
Method |
PUT | |
Authorization |
API Key | |
URL Parameters |
||
customItemTypeNumber | the Custom Item Type Number to be updated | |
jobNumber | the Job Number to which the Custom Item Type belongs | |
Body Parameters |
||
Name |
Notes | Data Type |
---|---|---|
key | Provided during API configuration | |
name | the new Item Type name | Varchar(100) |
informationurl (optional) | the new url where information about the Item Type can be found | Varchar(max) |
quantityrequired |
the new quantity of the Item Type that will be required |
Integer |
customproperties (optional) | the list of custom property name and value pairs that should be added to the Job | Custom properties not included in this list will be ignored; NULL values must be expressly set in the call |
Example:
/api/CustomItemType/12345/9875
{
"key": "jj5693ec-17dc-4e27-accf-db840a76bfd7",
"name": "Updated Item Type name",
"informationurl": "https://myintranetsite.com/ItemTypeInfo",
"defaultprocess": "Pre Pour Inspection",
"customproperties": {
"design depth": 50,
"design height": 110,
"design length": 11,
"material": "test"
}
}
Result Codes | |
---|---|
200 | OK |
400 | this is returned if the request is bad due to various reasons including:
|
401 | If authorization key is invalid or not exists |
409 | a property cannot be updated |
Postman collection
Click the link below to download a sample Postman Collection.