You can use Jira's REST API to view, create or change data within the STAGIL Table field. The following section will help you to set up your API requests.
...
Table of Contents | ||
---|---|---|
|
Table
Get Table
Method:
Status | ||||
---|---|---|---|---|
|
...
Use this request to get all tabular data from a concrete specific table. You will need the issue ID or key from the issue you want to pull the data from and the custom field ID:
BASEURL/rest/api/2/issue/{issueIDOrKey}
...
Code Block |
---|
https:// |
...
JiraURL/rest/api/2/issue/ |
...
{{issueID}}?fields= |
...
{{customfieldID}}&expand=renderedFields |
Customfield_22504 and renderedFields are the query params:
...
Update Table
Method:
Status | ||||
---|---|---|---|---|
|
Updating the entire table is possible via Jira’s REST API.
Request:
Code Block |
---|
BaseURL/rest/api/2/issue/{issueIdOrKey} |
...
title | Body example: Update table (existing rows) |
---|
Code Block |
---|
{
"fields":{
"customfield_id":"{\"values\":[
{
\"field-191\":[104],
\"field-219\":\"text\",
\"field-192\":\"BD-7\",
\"field-190\":[\"vkisil\"],
\"field-247\":8.5,
\"field-248\":1028.5,
\"orderPosition\":0,
\"field-189\":false,
\"id\":-1
}
]}"
}
}
|
Expand | ||
---|---|---|
| ||
{ |
GET TABLE SUM
If you want to get the sum of your table directly, you can use the following syntax:
BASEURL/rest/stj/1.0/api/table/sum/customfield/{{customFieldId}}/issue/{{issueIdOrKey}}
Example URL:
https://yourjiraURL.com/rest/stj/1.0/api/table/sum/customfield/22007/issue/KEY-4
It will give you the following data: Arrays of table sums: columnID, columnsum, columnID, columnsum, columnID, columnsum.
Response:
...
GET FIELD
This request can be used to get information about the configuration of a STAGIL Tables custom field. This means you will get information like id, default value, column type, max/min values, read-only etc., for each row in your table:
...
BASEURL/rest/stj/1.0/api/table/fields/{{fieldConfigId}}
You can retrieve the field configuration ID from the url of the STAGIL Tables Configuration page:
...
Example URL:
...
Expand | ||
---|---|---|
| ||
{ |
Get Table Field Configuration ID
Method:
Status | ||||
---|---|---|---|---|
|
Use this request to get a list of contexts configured for a table field. Context id is used as a variable {fieldconfigID}.
Code Block |
---|
https://JiraURL/rest/stj/1.0/api/table/ |
...
Response: An array which contains configuration information about each row id per index step.
Expand |
---|
GET FIELD SUM
If you want to get the sum of just one field you can use the following request url:
BASEURL/rest/stj/1.0/api/table/sum/customfield/{{customFieldId}}/issue/{{issueIdOrKey}}/field/{{fieldId}}
You can retrieve the field ID from the table field configuration screen.
...
Example URL:
http://yourjiraURL/rest/stj/1.0/api/table/sum/customfield/22007/issue/DEMO-4/field/10
Response:
...
Table History
...
Status | ||||
---|---|---|---|---|
|
...
API call: http://yourjiraURL/rest/stj/1.0/api/table/history/customField/{{customfieldID}}/issue/{{issuekey}}
Expand | ||
---|---|---|
| ||
|
Expand | ||
---|---|---|
| ||
GET CSV FILE
You can also get a csv export of your table by using REST API:
URL: https://yourjiraURL/rest/stj/1.0/api/table/{{fieldConfigId}}/{{issueIdOrKey}}/COMMA/csv
Response: you will receive the data of your table in csv format (separator = comma)
PUT, POST, DELETE Requests
PUT Request - UPDATE ROW
When you want to change certain rows of your table, you need to use the following API call configuration:
URL: https://yourjiraURL.xyz/rest/stj/1.0/api/table/data/customField/{{customFieldId}}/issue/{{issuekey}}/row/row/ID
Headers:
Your type of authorization
Content-Type: application/json;charset=UTF-8;
Accept: application/json;
You can get the row ID from the GET request, looking at the "id" of the row you want to modify.
URL example: http://localhost:8080/rest/stj/1.0/api/table/data/customField/25504/issue/KEY-4/row/123
With the GET request you can also see all the available fields and the structure of the table data. When you have drop-down, text or user columns, you only need the "field-1" part of the body. The "field-1-html" or "field-1-name" is not needed and will be added automatically. At the end of the body you don't need to add the custom field ID and the issue ID.
Example body: {"field-1": "Customer 7", "field-3": [2], "field-5": "anorth", "field-6": [8]}
This structure is simply retrieved from the GET request and you only modify the fields that you want to change. In this example, field-1 is a text field, field-3 and field-6 are select lists and field-5 is a user picker.For select list it is possible to use just "field-1-name": [“option1“, “option2“].
Please make sure to include all the used columns of your row in your PUT request. Missing columns will be overwritten with empty values!
POST Request - CREATE ROW
To create a new row in your table you can use this request:
...
customField/{customFieldId} |
Expand | ||
---|---|---|
| ||
Update Table
Method:
Status | ||||
---|---|---|---|---|
|
Updating the entire table is possible via Jira’s REST API.
Request:
Code Block |
---|
BaseURL/rest/api/2/issue/{issueIdOrKey} |
Expand | ||
---|---|---|
| ||
|
Expand | ||
---|---|---|
| ||
{ |
Table Sum
Method:
Status | ||||
---|---|---|---|---|
|
Returns a sum from the number column from a specific table.
Code Block |
---|
https://JiraURL/rest/stj/1.0/api/table/sum/customfield/{{customFieldId}}/issue/{{issueIdOrKey}} |
Expand | ||
---|---|---|
| ||
{ |
Table configuration
Method:
Status | ||||
---|---|---|---|---|
|
This request can be used to get information about the configuration of a STAGIL Tables custom field. This means you will get information like id, default value, column type, max/min values, read-only etc., for each row in a table.
Code Block |
---|
https://JiraURL/rest/stj/1.0/api/table/ |
...
fields/{{ |
...
fieldConfigId}} |
...
Example URL: https://yourjiraURL/rest/stj/1.0/api/table/data/customField/22504/issue/189038
...
In the body of the POST request, you do not need to include values for the orderPosition and the id. The new row will automatically be added at the end of the table.
...
Example body: { "field-35": 2, "field-34": "some example text", "field-36": 22.2, "field-37": "someuser", "field-38": "2021-02-10" }
DELETE Requests
DELETE ROW
To delete single rows in your table you can use this request:
https://jira-test.stagil.com/rest/stj/1.0/api/table/data/customField/{{customFieldId}}/issue/{{issueId}}/row/23
Example URL: http://yourjiraURL/rest/stj/1.0/api/table/data/customField/{{customFieldId}}/issue/{{issueIdOrKey}}/row/{rowId}
You can get the row ID from the GET request, looking at the "id" of the row you want to modify.
Column configuration
Select List column options
Returns the list of select list options and their configuration.
Method:
Status | ||||
---|---|---|---|---|
|
Code Block |
---|
http://yourjiraURL/rest/stj/1.0/api/table/fieldConfig/{{fieldConfigId}}/field/{{fieldId}}/options |
Expand | ||
---|---|---|
| ||
[ { "disabled": false, "id": 105, "optionValue": "Option 1", "orderPosition": 0 }, { "disabled": false, "id": 106, "optionValue": "Option 2", "orderPosition": 1 }, |
Expand | ||
---|---|---|
| ||
[ |
It is also possible to get a single option by id
Code Block |
---|
http://yourJiraURL/rest/stj/1.0/api/table/fieldConfig/{{fieldConfigId}}/field/{{fieldId}}/options/{{optionId}} |
Expand | ||
---|---|---|
| ||
|
Expand | ||
---|---|---|
| ||
{ |
Create new option
Method:
Status | ||||
---|---|---|---|---|
|
Allows to create a new select list option with the following configurations:
enabled / disabled (for selection)
order position in the select list drop-down
include the option in the cascading select hierarchy, i.e. set the option as a dependent from an option in another (parent) select list column.
Code Block |
---|
https://yourJiraURL/rest/stj/1.0/api/table/fieldConfig/{{fieldConfigId}}/field/{{fieldId}}/option |
...
title | Body example |
---|
Code Block |
---|
{
"dependentOptions": "optionid", // is not mandatory
"disabled": false, // is not mandatory
"optionValue": "Option name", // required
"orderPosition": 0 // is not mandatory
} |
Expand | ||
---|---|---|
| ||
|
Update an option
Method:
Status | ||||
---|---|---|---|---|
|
Allows to update the configuration of an existing option
Code Block |
---|
https://yourJiraURL/rest/stj/1.0/api/table/fieldConfig/{{fieldConfigId}}/field/{{fieldId}}/option/{{optionId}} |
Expand | ||
---|---|---|
| ||
|
Expand | ||
---|---|---|
| ||
|
...
false, |
GET FIELD SUM
If you want to get the sum of just one field you can use the following request url:
BASEURL/rest/stj/1.0/api/table/sum/customfield/{{customFieldId}}/issue/{{issueIdOrKey}}/field/{{fieldId}}
You can retrieve the field ID from the table field configuration screen.
...
Example URL:
http://yourjiraURL/rest/stj/1.0/api/table/sum/customfield/22007/issue/DEMO-4/field/10
Response:
...
Table History
Method:
Status | ||||
---|---|---|---|---|
|
Description: provides data about changes in the STAGIL Tables & Checklist field or Table History.
API call: http://yourjiraURL/rest/stj/1.0/api/table/history/customField/{{customfieldID}}/issue/{{issuekey}}
Expand | ||
---|---|---|
| ||
|
Expand | ||
---|---|---|
| ||
Table in CSV format
Method:
Status | ||||
---|---|---|---|---|
|
Returns table values in a CSV format
Code Block |
---|
https://JiraURL/rest/stj/1.0/api/table/{{fieldConfigId}}/{{issueIdOrKey}}/COMMA/csv |
Expand | ||
---|---|---|
| ||
Text,Number ,Select List 1,Date,Issue picker ,Child select,User Picker |
UPDATE ROW
Method:
Status | ||||
---|---|---|---|---|
|
When you want to change certain rows of your table, you need to use the following API call configuration:
URL: https://yourjiraURL.xyz/rest/stj/1.0/api/table/data/customField/{{customFieldId}}/issue/{{issuekey}}/row/row/ID
Headers:
Your type of authorization
Content-Type: application/json;charset=UTF-8;
Accept: application/json;
You can get the row ID from the GET request, looking at the "id" of the row you want to modify.
URL example: http://localhost:8080/rest/stj/1.0/api/table/data/customField/25504/issue/KEY-4/row/123
With the GET request you can also see all the available fields and the structure of the table data. When you have drop-down, text or user columns, you only need the "field-1" part of the body. The "field-1-html" or "field-1-name" is not needed and will be added automatically. At the end of the body you don't need to add the custom field ID and the issue ID.
Example body: {"field-1": "Customer 7", "field-3": [2], "field-5": "anorth", "field-6": [8]}
This structure is simply retrieved from the GET request and you only modify the fields that you want to change. In this example, field-1 is a text field, field-3 and field-6 are select lists and field-5 is a user picker.For select list it is possible to use just "field-1-name": [“option1“, “option2“].
Please make sure to include all the used columns of your row in your PUT request. Missing columns will be overwritten with empty values!
This call allows for the modification of a table column even when the read-only configuration is enabled.
Create row
Method:
Status | ||||
---|---|---|---|---|
|
Code Block |
---|
https://jiraURL/rest/stj/1.0/api/table/data/customField/{{customFieldId}}/issue/{{issueIdOrKey}} |
Fill out the body of the request with values for the new row. Use the JSON snippet below as an example.
Expand | ||
---|---|---|
| ||
// values for the ‘orderPosition’ and id can be skipped. In this case, the new row will be automatically added to the end of the table. { "field-35": 2, "field-34": "Lorem Ipsum", "field-36": 22.2, "field-37": "TestUser", "field-38": "2021-02-10" } |
Delete row
Method:
Status | ||||
---|---|---|---|---|
|
Removes a single row from the table
Code Block |
---|
https://jiraURL/rest/stj/1.0/api/table/data/customField/{{customFieldId}}/issue/{{issueId}}/row/23 |
Column configuration
Select List column options
Get a list of configured select list options
Method:
Status | ||||
---|---|---|---|---|
|
Returns the list of select list options and their configuration.
Code Block |
---|
http://yourjiraURL/rest/stj/1.0/api/table/fieldConfig/{{fieldConfigId}}/field/{{fieldId}}/options |
Expand | ||
---|---|---|
| ||
[ |
It is also possible to get a single option by id
Code Block |
---|
http://yourJiraURL/rest/stj/1.0/api/table/fieldConfig/{{fieldConfigId}}/field/{{fieldId}}/options/{{optionId}} |
Expand | ||
---|---|---|
| ||
{ |
Create new option
Method:
Status | ||||
---|---|---|---|---|
|
Allows to create a new select list option with the following configurations:
enabled / disabled (for selection)
order position in the select list drop-down
include the option in the cascading select hierarchy, i.e. set the option as a dependent from an option in another (parent) select list column.
Code Block |
---|
https://yourJiraURL/rest/stj/1.0/api/table/fieldConfig/{{fieldConfigId}}/field/{{fieldId}}/option |
Expand | ||
---|---|---|
| ||
|
Expand | ||
---|---|---|
| ||
|
Update an option
Method:
Status | ||||
---|---|---|---|---|
|
Allows to update the configuration of an existing option
Code Block |
---|
https://yourJiraURL/rest/stj/1.0/api/table/fieldConfig/{{fieldConfigId}}/field/{{fieldId}}/option/{{optionId}}
https://yourJiraURL/rest/stj/1.0/api/table/fieldConfig/fieldConfigId/field/fieldId/option/optionId |
Expand | ||
---|---|---|
| ||
|
Expand | ||
---|---|---|
| ||
|
Delete option
Method:
Status | ||||
---|---|---|---|---|
|
Allows to remove an option from a select list column configuration
Code Block |
---|
https://yourJiraURL/rest/stj/1.0/api/table/fieldConfig/{{fieldConfigId}}/field/{{fieldId}}/option/{{optionId}} |
Variables
fieldConfigId
Stands for an ID of a table configuration.
To retrieve, follow the following steps:
Navigate to Settings () > Issues > Custom fields under the Fields section
Click on the More (⋯) icon to the right of the custom field you are obtaining the ID
The next page will list all the context for the current table field. Click ‘Edit STAGIL Tables and Checklists Configuration’.
The URL of the next page will be quite long. Closer to the end you will find the fieldConfigId value.
In the above example, the custom field ID is 12039.
fieldId
Stands for the ID of a table column. Every column that is created is assigned an individual column id, regardless of the table context. To retrieve it, go to the table configuration page. The column id is displayed as a number before the column name.
...
optionID
Stand for an ID of an option within a Select List column. To retrieve, use an API call that returns select list option’s IDs within a specific table https://stagil.atlassian.net/wiki/spaces/STJ/pages/1598914569/REST+API+from+2.1.3#Select-List-column-options.