Centercode API API Reference
The Centercode API is a collection of endpoints providing integration opportunities with a variety of powerful platform features. The API is driven by HTTP and inspired by popular REST design patterns.
Resource Summmary
Data Packages
Data Packages allow third-party systems to retrieve customizable collections of data from the Centercode Platform from either the Community or Project scope. This enables further reporting (e.g. Tableau), dashboarding, data warehousing, and other archival or external data needs outside the Centercode Platform. Data Packages are driven by the Centercode Reporting Engine, so the Project, User, or Feedback fields returned by a Data Package endpoint are completely customizable and can be formatted as either JSON or CSV.
Record Lookups
Record Lookups allow third-party systems to look up a specific Project, User, or Feedback within in the Centercode Platform at either the Community or Project scope. Example use cases include checking a User's score, determining if a Project is active, and retrieving a Feedback status to name a few. Record Lookups are driven by the Centercode Reporting Engine, so the Project, User, or Feedback fields returned by a Record Lookup endpoint are completely customizable and can be formatted as either JSON or CSV.
Listeners
Listeners allow allow third-party systems to perform three types of actions against a targeted User or Feedback in the Centercode Platform. The available actions include executing a Macro, leaving a Comment and adding custom data.
Macro Listeners
Macro Listeners allow a third-party system to execute a Macro against a single User or Feedback in the Centercode Platform at either the Community or Project scope. The full power of the Macro Engine is available to remotely automate a customizable series of actions such as scoring a User, adjusting Team membership, sending email, etc.
Comment Listeners
Comment Listeners allow a third-party system to add a comment to a User or Feedback in the Centercode Platform at either the Community or Project scope. One example would be to automatically thank a user for submitting feedback or performing some other task from outside the Centercode Platform.
Data Listeners
Data Listeners allow a third-party system to extended the data associated with a User or Feedback within the Centercode Platform at either the Community or Project scope. This extended data becomes part of the Data Engine which can then be leveraged in User and Feedback Management, Reporting, or even in other integrations.
External Users (User Imports)
External Users is a new User Onboarding Source type which allows new Centercode users to be invited or added programmatically by third-party systems. This feature generates a simple URL which can be called with an email address in order to initiate creating a new user.
External Feedback
External Feedback allows new instances of Feedback to be dynamically generated from third-party systems. This is intended to allow for not only external user feedback (e.g. web or mobile submitted), but also telematics data (e.g. crash reports, usage data). External feedback can be submitted under the context of a specific user or anonymously. File attachments can also be uploaded to your submitted feedback.
Releases
Releases allows new instances of project releases to be dynamically generated from third-party systems. It is possible to attach file downloads to releases either by referencing files in the Amazon S3 FTP bucket connected to your implementation, or by linking to externally hosted file URLs.
Access
An API request must inlclude an API key to access the target endpoint. The API key must be provided via an apiKey
query string parameter. A unique aspect of the Centercode API is that when an endpoint is established, it gets exclusively associated with an API key. That means an API key can be used to authorize multiple endpoints, but each endpoint can only be authorized by a single API key.
Learn how to create an API key in the following guide:
https://help.centercode.com/creating-your-community-level-api-key
All requests must be made over HTTPS.
Making Requests
The Centercode API is driven by HTTP and inspired by popular REST design patterns. Each endpoint can be invoked by standard HTTP methods, but currently only the GET and POST HTTP methods are supported. JSON is the primary message format, but the Data Package and Record Lookup endpoints can also be configured to return content in CSV format.
Cross-Origin Resource Sharing (CORS) is not currently supported.
Errors
Status Code | Message |
---|---|
400 | Bad Request |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
405 | Method Not Allowed |
415 | Unsupported Media Type |
429 | Too Many Requests |
500 | Internal Server Error |
Standard Error Response
{
"status": 400,
"description": "Something is not fine."
}
Invalid Parameter Error Response
{
"status": 400,
"description": "The specified request is invalid.",
"invalidParameters": [
{
"name": "Find",
"description": "A lookup query is required."
}
]
}
Asynchronous Operations
The Macro Listener and User Import endpoints each trigger a queued opperation so the operation results cannot be immediately determined. To address this situation, the response includes a separate endpoint that can be called to return the result of the queued opperation.
Rate limiting
Each endpoint is limited to 10 requests per second from a single IP address. The following headers are returned with every response to help you avoid and handle exceeding the limit:
Header | Description |
---|---|
X-Rate-Limit-Limit | The rate limit period |
X-Rate-Limit-Remaining | Number of request remaining |
X-Rate-Limit-Reset | UTC date time (ISO 8601) when the limits resets |
API Base URL
https://company.centercode.com/api/v1
Schemes: https
Version: 1
Data Packages
Community User Data Package
Returns a community user based report element dataset.
CURL Example
curl --request GET \
--url "https://company.centercode.com/api/v1/userDataPackages/NegativeScore?page=1&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45"
The configured report element key
The desired page number
Success
Response Content-Types: application/json, text/csv
Response Example (200 OK)
{
"paging": {
"currentPage": 1,
"totalPages": 1,
"resultsPerPage": 1000,
"totalResults": 1
},
"fields": [
{
"name": "First L. Name",
"dataType": "string"
},
{
"name": "Community Score Total",
"dataType": "integer"
}
],
"data": [
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "Jim C.",
"values": [
"Jim C."
]
},
{
"fieldOrdinal": 1,
"dataType": "integer",
"computedValue": "-825000",
"values": [
-825000
]
}
]
]
}
Community Project Data Package
Returns a project based report element dataset.
CURL Example
curl --request GET \
--url "https://company.centercode.com/api/v1/projectDataPackages/UserTotals?page=1&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45"
The configured report element key
The desired page number
Success
Response Content-Types: application/json, text/csv
Response Example (200 OK)
{
"paging": {
"currentPage": 1,
"totalPages": 1,
"resultsPerPage": 1000,
"totalResults": 21
},
"fields": [
{
"name": "Project Name",
"dataType": "string"
},
{
"name": "Creation Date",
"dataType": "date"
},
{
"name": "Active Users",
"dataType": "integer"
},
{
"name": "Total Users",
"dataType": "integer"
},
{
"name": "Total Survey Responses",
"dataType": "integer"
},
{
"name": "Total Feedback",
"dataType": "integer"
}
],
"data": [
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "Spaceship V2 Beta",
"values": [
"Spaceship V2 Beta"
]
},
{
"fieldOrdinal": 1,
"dataType": "date",
"computedValue": "2016-10-26T22:30:56",
"values": [
"2016-10-26T22:30:56"
]
},
{
"fieldOrdinal": 2,
"dataType": "integer",
"computedValue": "9",
"values": [
9
]
},
{
"fieldOrdinal": 3,
"dataType": "integer",
"computedValue": "9",
"values": [
9
]
},
{
"fieldOrdinal": 4,
"dataType": "integer",
"computedValue": "5",
"values": [
5
]
},
{
"fieldOrdinal": 5,
"dataType": "integer",
"computedValue": "5",
"values": [
5
]
}
],
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "Widget Pro",
"values": [
"Widget Pro"
]
},
{
"fieldOrdinal": 1,
"dataType": "date",
"computedValue": "2016-03-01T01:50:07",
"values": [
"2016-03-01T01:50:07"
]
},
{
"fieldOrdinal": 2,
"dataType": "integer",
"computedValue": "3",
"values": [
3
]
},
{
"fieldOrdinal": 3,
"dataType": "integer",
"computedValue": "3",
"values": [
3
]
},
{
"fieldOrdinal": 4,
"dataType": "integer",
"computedValue": "0",
"values": [
0
]
},
{
"fieldOrdinal": 5,
"dataType": "integer",
"computedValue": "3",
"values": [
3
]
}
],
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "Widget Pro Alpha",
"values": [
"Widget Pro Alpha"
]
},
{
"fieldOrdinal": 1,
"dataType": "date",
"computedValue": "2014-04-14T20:31:10",
"values": [
"2014-04-14T20:31:10"
]
},
{
"fieldOrdinal": 2,
"dataType": "integer",
"computedValue": "5",
"values": [
5
]
},
{
"fieldOrdinal": 3,
"dataType": "integer",
"computedValue": "5",
"values": [
5
]
},
{
"fieldOrdinal": 4,
"dataType": "integer",
"computedValue": "4",
"values": [
4
]
},
{
"fieldOrdinal": 5,
"dataType": "integer",
"computedValue": "5",
"values": [
5
]
}
]
]
}
Project User Data Package
Returns a project user based report element dataset.
CURL Example
curl --request GET \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/userDataPackages/UserFeedbackTotals?page=1&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45"
The configured project key
The configured report element key
The desired page number
Success
Response Content-Types: application/json, text/csv
Response Example (200 OK)
{
"paging": {
"currentPage": 1,
"totalPages": 1,
"resultsPerPage": 1000,
"totalResults": 8
},
"fields": [
{
"name": "First L. Name",
"dataType": "string"
},
{
"name": "# of Bug Report Submitted",
"dataType": "integer"
},
{
"name": "# of Bug Report Replies",
"dataType": "integer"
},
{
"name": "# of Bug Report Votes",
"dataType": "integer"
},
{
"name": "# of Suggestion Submitted",
"dataType": "integer"
},
{
"name": "# of Suggestion Replies",
"dataType": "integer"
},
{
"name": "# of Suggestion Votes",
"dataType": "integer"
},
{
"name": "Project Score Total",
"dataType": "integer"
}
],
"data": [
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "Alex B.",
"values": [
"Alex B."
]
},
{
"fieldOrdinal": 1,
"dataType": "integer",
"computedValue": "1",
"values": [
1
]
},
{
"fieldOrdinal": 2,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 3,
"dataType": "integer",
"computedValue": "3",
"values": [
3
]
},
{
"fieldOrdinal": 4,
"dataType": "integer",
"computedValue": "0",
"values": [
0
]
},
{
"fieldOrdinal": 5,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 6,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 7,
"dataType": "integer",
"computedValue": "",
"values": []
}
],
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "Annie H.",
"values": [
"Annie H."
]
},
{
"fieldOrdinal": 1,
"dataType": "integer",
"computedValue": "11",
"values": [
11
]
},
{
"fieldOrdinal": 2,
"dataType": "integer",
"computedValue": "3",
"values": [
3
]
},
{
"fieldOrdinal": 3,
"dataType": "integer",
"computedValue": "7",
"values": [
7
]
},
{
"fieldOrdinal": 4,
"dataType": "integer",
"computedValue": "0",
"values": [
0
]
},
{
"fieldOrdinal": 5,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 6,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 7,
"dataType": "integer",
"computedValue": "",
"values": []
}
],
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "Betsy F.",
"values": [
"Betsy F."
]
},
{
"fieldOrdinal": 1,
"dataType": "integer",
"computedValue": "1",
"values": [
1
]
},
{
"fieldOrdinal": 2,
"dataType": "integer",
"computedValue": "1",
"values": [
1
]
},
{
"fieldOrdinal": 3,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 4,
"dataType": "integer",
"computedValue": "0",
"values": [
0
]
},
{
"fieldOrdinal": 5,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 6,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 7,
"dataType": "integer",
"computedValue": "",
"values": []
}
],
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "Jericho S.",
"values": [
"Jericho S."
]
},
{
"fieldOrdinal": 1,
"dataType": "integer",
"computedValue": "1",
"values": [
1
]
},
{
"fieldOrdinal": 2,
"dataType": "integer",
"computedValue": "1",
"values": [
1
]
},
{
"fieldOrdinal": 3,
"dataType": "integer",
"computedValue": "6",
"values": [
6
]
},
{
"fieldOrdinal": 4,
"dataType": "integer",
"computedValue": "4",
"values": [
4
]
},
{
"fieldOrdinal": 5,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 6,
"dataType": "integer",
"computedValue": "3",
"values": [
3
]
},
{
"fieldOrdinal": 7,
"dataType": "integer",
"computedValue": "",
"values": []
}
],
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "jim a.",
"values": [
"jim a."
]
},
{
"fieldOrdinal": 1,
"dataType": "integer",
"computedValue": "1",
"values": [
1
]
},
{
"fieldOrdinal": 2,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 3,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 4,
"dataType": "integer",
"computedValue": "0",
"values": [
0
]
},
{
"fieldOrdinal": 5,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 6,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 7,
"dataType": "integer",
"computedValue": "",
"values": []
}
],
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "Jim C.",
"values": [
"Jim C."
]
},
{
"fieldOrdinal": 1,
"dataType": "integer",
"computedValue": "27",
"values": [
27
]
},
{
"fieldOrdinal": 2,
"dataType": "integer",
"computedValue": "31",
"values": [
31
]
},
{
"fieldOrdinal": 3,
"dataType": "integer",
"computedValue": "14",
"values": [
14
]
},
{
"fieldOrdinal": 4,
"dataType": "integer",
"computedValue": "9",
"values": [
9
]
},
{
"fieldOrdinal": 5,
"dataType": "integer",
"computedValue": "2",
"values": [
2
]
},
{
"fieldOrdinal": 6,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 7,
"dataType": "integer",
"computedValue": "",
"values": []
}
],
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "Malcolm G.",
"values": [
"Malcolm G."
]
},
{
"fieldOrdinal": 1,
"dataType": "integer",
"computedValue": "4",
"values": [
4
]
},
{
"fieldOrdinal": 2,
"dataType": "integer",
"computedValue": "1",
"values": [
1
]
},
{
"fieldOrdinal": 3,
"dataType": "integer",
"computedValue": "4",
"values": [
4
]
},
{
"fieldOrdinal": 4,
"dataType": "integer",
"computedValue": "5",
"values": [
5
]
},
{
"fieldOrdinal": 5,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 6,
"dataType": "integer",
"computedValue": "3",
"values": [
3
]
},
{
"fieldOrdinal": 7,
"dataType": "integer",
"computedValue": "",
"values": []
}
],
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "Morgana H.",
"values": [
"Morgana H."
]
},
{
"fieldOrdinal": 1,
"dataType": "integer",
"computedValue": "2",
"values": [
2
]
},
{
"fieldOrdinal": 2,
"dataType": "integer",
"computedValue": "2",
"values": [
2
]
},
{
"fieldOrdinal": 3,
"dataType": "integer",
"computedValue": "4",
"values": [
4
]
},
{
"fieldOrdinal": 4,
"dataType": "integer",
"computedValue": "2",
"values": [
2
]
},
{
"fieldOrdinal": 5,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 6,
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"fieldOrdinal": 7,
"dataType": "integer",
"computedValue": "",
"values": []
}
]
]
}
Project Feedback Data Package
Returns a feedback based report element dataset.
CURL Example
curl --request GET \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/feedbackDataPackages/FeedbackScores?page=1&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45"
The configured project key
The configured report element key
The desired page number
Success
Response Content-Types: application/json, text/csv
Response Example (200 OK)
{
"paging": {
"currentPage": 1,
"totalPages": 1,
"resultsPerPage": 1000,
"totalResults": 5
},
"fields": [
{
"name": "ID",
"dataType": "string"
},
{
"name": "Summary",
"dataType": "string"
},
{
"name": "Popularity Score",
"dataType": "integer"
},
{
"name": "Impact Score",
"dataType": "integer"
},
{
"name": "# of Replies",
"dataType": "integer"
}
],
"data": [
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "BUG-0001",
"values": [
"BUG-0001"
]
},
{
"fieldOrdinal": 1,
"dataType": "string",
"computedValue": "WiFi Not Connecting",
"values": [
"WiFi Not Connecting"
]
},
{
"fieldOrdinal": 2,
"dataType": "integer",
"computedValue": "11",
"values": [
11
]
},
{
"fieldOrdinal": 3,
"dataType": "integer",
"computedValue": "94",
"values": [
94
]
},
{
"fieldOrdinal": 4,
"dataType": "integer",
"computedValue": "3",
"values": [
3
]
}
],
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "BUG-0002",
"values": [
"BUG-0002"
]
},
{
"fieldOrdinal": 1,
"dataType": "string",
"computedValue": "WiFi Signal Weak",
"values": [
"WiFi Signal Weak"
]
},
{
"fieldOrdinal": 2,
"dataType": "integer",
"computedValue": "10",
"values": [
10
]
},
{
"fieldOrdinal": 3,
"dataType": "integer",
"computedValue": "30",
"values": [
30
]
},
{
"fieldOrdinal": 4,
"dataType": "integer",
"computedValue": "2",
"values": [
2
]
}
],
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "BUG-0003",
"values": [
"BUG-0003"
]
},
{
"fieldOrdinal": 1,
"dataType": "string",
"computedValue": "Install Hanging on step 3",
"values": [
"Install Hanging on step 3"
]
},
{
"fieldOrdinal": 2,
"dataType": "integer",
"computedValue": "8",
"values": [
8
]
},
{
"fieldOrdinal": 3,
"dataType": "integer",
"computedValue": "48",
"values": [
48
]
},
{
"fieldOrdinal": 4,
"dataType": "integer",
"computedValue": "2",
"values": [
2
]
}
],
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "BUG-0006",
"values": [
"BUG-0006"
]
},
{
"fieldOrdinal": 1,
"dataType": "string",
"computedValue": "iOS sluggish and app crashes after a few seconds",
"values": [
"iOS sluggish and app crashes after a few seconds"
]
},
{
"fieldOrdinal": 2,
"dataType": "integer",
"computedValue": "13",
"values": [
13
]
},
{
"fieldOrdinal": 3,
"dataType": "integer",
"computedValue": "43",
"values": [
43
]
},
{
"fieldOrdinal": 4,
"dataType": "integer",
"computedValue": "1",
"values": [
1
]
}
],
[
{
"fieldOrdinal": 0,
"dataType": "string",
"computedValue": "BUG-0018",
"values": [
"BUG-0018"
]
},
{
"fieldOrdinal": 1,
"dataType": "string",
"computedValue": "App Notifications Too Frequent",
"values": [
"App Notifications Too Frequent"
]
},
{
"fieldOrdinal": 2,
"dataType": "integer",
"computedValue": "9",
"values": [
9
]
},
{
"fieldOrdinal": 3,
"dataType": "integer",
"computedValue": "29",
"values": [
29
]
},
{
"fieldOrdinal": 4,
"dataType": "integer",
"computedValue": "5",
"values": [
5
]
}
]
]
}
Record Lookups
Community User Lookup
Returns a single report element record matching a specified search value.
CURL Example
curl --request GET \
--url "https://company.centercode.com/api/v1/userRecordLookups/UserScore?find=jim%40centercode.com?page=1&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45"
The configured report element key
The lookup query based on resource item type
Success
Response Content-Types: application/json, text/csv
Response Example (200 OK)
{
"data": [
{
"field": "First L. Name",
"dataType": "string",
"computedValue": "Jim C.",
"values": [
"Jim C."
]
},
{
"field": "Community Score Total",
"dataType": "integer",
"computedValue": "-825000",
"values": [
-825000
]
}
]
}
Community Project Lookup
Returns a single project based report element record matching the specified lookup value.
CURL Example
curl --request GET \
--url "https://company.centercode.com/api/v1/projectRecordLookups/ProjectStats?find=WidgetPro?page=1&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45"
The configured report element key
The lookup query based on resource item type
Success
Response Content-Types: application/json, text/csv
Response Example (200 OK)
{
"data": [
{
"field": "Project Name",
"dataType": "string",
"computedValue": "Widget XL Beta",
"values": [
"Widget XL Beta"
]
},
{
"field": "Active Users",
"dataType": "integer",
"computedValue": "28",
"values": [
28
]
},
{
"field": "Total Users",
"dataType": "integer",
"computedValue": "28",
"values": [
28
]
},
{
"field": "Total Survey Responses",
"dataType": "integer",
"computedValue": "18",
"values": [
18
]
},
{
"field": "Total Feedback",
"dataType": "integer",
"computedValue": "52",
"values": [
52
]
}
]
}
Project User Lookup
Returns a single report element record matching a specified search value.
CURL Example
curl --request GET \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/userRecordLookups/UserStats?find=jim%40centercode.com?page=1&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45"
The configured project key
The configured report element key
The lookup query based on resource item type
Success
Response Content-Types: application/json, text/csv
Response Example (200 OK)
{
"data": [
{
"field": "First L. Name",
"dataType": "string",
"computedValue": "Jim C.",
"values": [
"Jim C."
]
},
{
"field": "# of Bug Report Submitted",
"dataType": "integer",
"computedValue": "7",
"values": [
7
]
},
{
"field": "# of Bug Report Replies",
"dataType": "integer",
"computedValue": "24",
"values": [
24
]
},
{
"field": "# of Bug Report Votes",
"dataType": "integer",
"computedValue": "14",
"values": [
14
]
},
{
"field": "# of Suggestion Submitted",
"dataType": "integer",
"computedValue": "10",
"values": [
10
]
},
{
"field": "# of Suggestion Replies",
"dataType": "integer",
"computedValue": "2",
"values": [
2
]
},
{
"field": "# of Suggestion Votes",
"dataType": "integer",
"computedValue": "",
"values": []
},
{
"field": "Project Score Total",
"dataType": "integer",
"computedValue": "",
"values": []
}
]
}
Project Feedback Lookup
Returns a single report element record matching a specified search value.
CURL Example
curl --request GET \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/feedbackRecordLookups/BugReports?find=BUG-0001?page=1&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45"
The configured project key
The configured report element key
The lookup query based on resource item type
Success
Response Content-Types: application/json, text/csv
Response Example (200 OK)
{
"data": [
{
"field": "ID",
"dataType": "string",
"computedValue": "BUG-0001",
"values": [
"BUG-0001"
]
},
{
"field": "Summary",
"dataType": "string",
"computedValue": "WiFi Not Connecting",
"values": [
"WiFi Not Connecting"
]
},
{
"field": "Feature",
"dataType": "string",
"computedValue": "WiFi Connection",
"values": [
"WiFi Connection"
]
},
{
"field": "Steps to Reproduce",
"dataType": "string",
"computedValue": "No matter how hard I try, I can't get the Wifi to connect at all.\r\n\r\n1. Install the hardware\r\n2. Install the app\r\n3. Run through app setup.\r\n\r\nWifi is never detected.",
"values": [
"No matter how hard I try, I can't get the Wifi to connect at all.\r\n\r\n1. Install the hardware\r\n2. Install the app\r\n3. Run through app setup.\r\n\r\nWifi is never detected."
]
},
{
"field": "Status",
"dataType": "string",
"computedValue": "Logged Internally",
"values": [
"Logged Internally"
]
},
{
"field": "Closure Reason",
"dataType": "string",
"computedValue": "",
"values": []
},
{
"field": "Severity",
"dataType": "string",
"computedValue": "Critical",
"values": [
"Critical"
]
},
{
"field": "Blocker",
"dataType": "string",
"computedValue": "Yes",
"values": [
"Yes"
]
},
{
"field": "Centercode Resolution",
"dataType": "string",
"computedValue": "",
"values": []
},
{
"field": "Priority",
"dataType": "string",
"computedValue": "",
"values": []
},
{
"field": "# of Occurrences",
"dataType": "integer",
"computedValue": "3",
"values": [
3
]
},
{
"field": "Date Added",
"dataType": "date",
"computedValue": "2015-02-08T19:37:00",
"values": [
"2015-02-08T19:37:00"
]
},
{
"field": "Jira ID",
"dataType": "string",
"computedValue": "SBX-957",
"values": [
"SBX-957"
]
}
]
}
Macro Listeners
Community User Macro
Triggers a macro to run against a single community user.
CURL Example
curl --request POST \
--url "https://company.centercode.com/api/v1/userMacroListeners/Enrich?find=jim&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45" \
--data ""
The configured listener key
The lookup query based on resource item type
Accepted
Response Content-Types: application/json
Response Example (202 Accepted)
{
"statusEndpoint": "https://company.centercode.com/api/v1/userMacroListeners/Enrich/status/a4b50639-ebcf-2a3e-933d-20a6c5c17ead"
}
Community User Macro Status
Returns the status of a community user macro.
CURL Example
curl --request GET \
--url "https://company.centercode.com/api/v1/userMacroListeners/Enrich/status/a4b50639-ebcf-2a3e-933d-20a6c5c17ead?apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45"
The configured listener key
The queued macro status ID
Success
Response Content-Types: application/json
Response Example (200 OK)
{
"status": "Succeeded"
}
Project User Macro
Triggers a macro to run against a single project user.
CURL Example
curl --request POST \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/userMacroListeners/Promotion?find=jim&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45" \
--data ""
The configured project key
The configured listener key
The lookup query based on resource item type
Accepted
Response Content-Types: application/json
Response Example (202 Accepted)
{
"statusEndpoint": "https://company.centercode.com/api/v1/projects/WidgetPro/userMacroListeners/Promotion/status/a4b50639-ebcf-2a3e-933d-20a6c5c17ead"
}
Project User Macro Status
Returns the status of a project user macro.
CURL Example
curl --request GET \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/userMacroListeners/Promotion/status/a4b50639-ebcf-2a3e-933d-20a6c5c17ead?apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45"
The configured project key
The configured listener key
The queued user import status ID
Success
Response Content-Types: application/json
Response Example (200 OK)
{
"status": "Succeeded"
}
Project Feedback Macro
Triggers a macro to run against a single feedback submission.
CURL Example
curl --request POST \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/feedbackMacroListeners/ClosedInJIRA?find=BUG-0001&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45" \
--data ""
The configured project key
The configured listener key
The lookup query based on resource item type
Accepted
Response Content-Types: application/json
Response Example (202 Accepted)
{
"statusEndpoint": "https://company.centercode.com/api/v1/projects/WidgetPro/feedbackMacroListeners/ClosedInJIRA/status/a4b50639-ebcf-2a3e-933d-20a6c5c17ead"
}
Project Feedback Macro Status
Returns the status of a project feedback macro.
CURL Example
curl --request GET \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/feedbackMacroListeners/ClosedInJIRA/status/a4b50639-ebcf-2a3e-933d-20a6c5c17ead?apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45"
The configured project key
The configured listener key
The queued macro status ID
Success
Response Content-Types: application/json
Response Example (200 OK)
{
"status": "Succeeded"
}
Comment Listeners
Community User Comment
Adds a comment to the profile of the specified user.
CURL Example
curl --request POST \
--url "https://company.centercode.com/api/v1/userCommentListeners/UserComment?find=nathan&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45" \
--data '{"author": "admin@centercode.com", "message": "Please consider this user in subscription tests."}'
Any valid JSON structure.
The configured listener key
The lookup query based on resource item type
Request Content-Types: application/json
Request Example
{
"author": "admin@centercode.com",
"message": "Please consider this user in subscription tests."
}
Created
Response Content-Types: application/json
Response Example (201 Created)
{
"author": "admin@centercode.com",
"message": "Please consider this user in subscription tests."
}
Project User Comment
Adds a comment to the profile of the specified user.
CURL Example
curl --request POST \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/userCommentListeners/UserComment?find=nathan&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45" \
--data '{"author": "admin@centercode.com", "message": "This user has been very active in the app."}'
Any valid JSON structure.
The configured project key
The configured listener key
The lookup query based on resource item type
Request Content-Types: application/json
Request Example
{
"author": "admin@centercode.com",
"message": "This user has been very active in the app."
}
Created
Response Content-Types: application/json
Response Example (201 Created)
{
"author": "admin@centercode.com",
"message": "This user has proven to be very active in the app!."
}
Project Feedback Comment
Add a comment to the specified feedback submission.
CURL Example
curl --request POST \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/feedbackCommentListeners/BugComment?find=BUG-0001&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45" \
--data '{"author": "admin@centercode.com", "message": "Thanks for your bug report, keep up the good work!"}'
Any valid JSON structure.
The configured project key
The configured listener key
The lookup query based on resource item type
Request Content-Types: application/json
Request Example
{
"author": "admin@centercode.com",
"message": "Thanks for your bug report, keep up the good work!"
}
Created
Response Content-Types: application/json
Response Example (201 Created)
{
"author": "admin@centercode.com",
"message": "Thanks for your bug report, keep up the good work!"
}
Data Listeners
Community User Data
Save external data to the profile of the specified user.
CURL Example
curl --request POST \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/userDataListeners/Performance?find=sam%40gmail.com&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45" \
--data '{"performance": "Excellent"}'
Any valid JSON structure.
The configured listener key
The lookup query based on resource item type
Request Content-Types: application/json
Request Example
{
"performance": "Excellent"
}
Created
Response Content-Types: application/json
Response Example (201 Created)
{
"fields": [
{
"dataType": "string",
"label": "Tester Tier",
"parameter": "performance",
"value": "Excellent",
"matched": true
}
]
}
Project User Data
Save external data to the profile of the specified user.
CURL Example
curl --request POST \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/userDataListeners/Subscription?find=jim&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45" \
--data '{"subscription": "Enterprise"}'
Any valid JSON structure.
The configured project key
The configured listener key
The lookup query based on resource item type
Request Content-Types: application/json
Request Example
{
"subscription": "Enterprise"
}
Created
Response Content-Types: application/json
Response Example (201 Created)
{
"fields": [
{
"dataType": "string",
"label": "Subscription Level",
"parameter": "subscription",
"value": "Enterprise",
"matched": true
}
]
}
Project Feedback Data
Save external data to the specified feedback submission.
CURL Example
curl --request POST \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/feedbackDataListeners/CrashLog?find=BUG-0001&apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45" \
--data '{"crashlog": "~/Library/Logs/CrashReporter/MobileDevice/iPhone8s"}'
Any valid JSON structure.
The configured project key
The configured listener key
The lookup query based on resource item type
Request Content-Types: application/json
Request Example
{
"crashlog": "~/Library/Logs/CrashReporter/MobileDevice/iPhone8s"
}
Created
Response Content-Types: application/json
Response Example (201 Created)
{
"fields": [
{
"dataType": "string",
"label": "Crash Log",
"parameter": "crashlog",
"value": "~/Library/Logs/CrashReporter/MobileDevice/iPhone8s",
"matched": true
}
]
}
User Imports
Community User Import
Import a user into a community by providing an email address.
CURL Example
curl --request POST \
--url "https://company.centercode.com/api/v1/userImports/Mobile?apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45" \
--data '{"email": "person@gmail.com"}'
User import
The configured user import source key
Request Content-Types: application/json
Request Example
{
"email": "person@gmail.com"
}
Accepted
Response Content-Types: application/json
Response Example (202 Accepted)
{
"statusEndpoint": "https://company.centercode.com/api/v1/userImports/Mobile/status/a4b50639-ebcf-2a3e-933d-20a6c5c17ead"
}
Community User Import Status
Check the status of a user import.
CURL Example
curl --request GET \
--url "https://company.centercode.com/api/v1/userImports/Mobile/status/a4b50639-ebcf-2a3e-933d-20a6c5c17ead?apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45"
The configured user import source key
The queued user import status ID
Success
Response Content-Types: application/json
Response Example (200 OK)
{
"status": "Succeeded"
}
Project User Import
Import a user into a project by providing an email address.
CURL Example
curl --request POST \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/userImports/Mobile?apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45" \
--data '{"email": "person@gmail.com"}'
User import
The configured project key
The configured user import source key
Request Content-Types: application/json
Request Example
{
"email": "person@gmail.com"
}
Accepted
Response Content-Types: application/json
Response Example (202 Accepted)
{
"statusEndpoint": "https://company.centercode.com/api/v1/projects/WidgetPro/userImports/Mobile/status/a4b50639-ebcf-2a3e-933d-20a6c5c17ead"
}
Project User Import Status
Check the status of a user import.
CURL Example
curl --request GET \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/userImports/Mobile/status/a4b50639-ebcf-2a3e-933d-20a6c5c17ead?apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45"
The configured project key
The configured user import source key
The queued user import status ID
Success
Response Content-Types: application/json
Response Example (200 OK)
{
"status": "Succeeded"
}
Feedback
Create Feedback
Submits feedback to the specified project.
CURL Example
curl --request POST \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/feedback/Mobile?apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45" \
--data '{"submitter": "jim@centercode.com", "title": "Lighting Presets Should be More Robust", "description": "I wish the app would have more lighting preset options.", "topic": 23795}'
Feedback parameter data
The configured project key
Feedback key
Request Content-Types: application/json
Request Example
{
"submitter": "jim@centercode.com",
"summary": "Lighting Presets Should be More Robust",
"description": "I really wish the app would have more lighting preset options.",
"topic": 23795
}
Feedback Created
The fileElements
object is only output if file elements are set up in the external feedback source configuration. This object includes the base endpoint url (appropriate API key must be appended) for uploading files to the created feedback for each file element that has been configured.
Response Content-Types: application/json
Response Example (201 Created)
{
"id": "8203093f-7388-4d63-a88d-157cb85e5400",
"key": "SUG-0023",
"url": "https://company.centercode.com/project/feedback/view.html?cap=830150c24a114b466c512881db6cfdd0&uf=8203593f73884c63a80d147cb75e5400",
"fileElements": [
{
"title": "Screenshot",
"key": "Screenshot",
"url": "https://company.centercode.com/api/v1/projects/WidgetPro/feedbackTypes/Mobile/feedback/SUG-0023/fileElements/Screenshot",
"acceptsMultipleAttachments": true
},
{
"title": "Crash Log",
"key": "CrashLog",
"url": "https://company.centercode.com/api/v1/projects/WidgetPro/feedbackTypes/Mobile/feedback/SUG-0023/fileElements/CrashLog",
"acceptsMultipleAttachments": false
}
]
}
Upload File Attachment
Uploads a single file attachment to a feedback submission with each request. Supports multipart/form-data requests under 2gb.
Request Content-Type: multipart/form-data
CURL Example
curl --request POST \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/feedbackTypes/Mobile/feedback/SUG-0023/fileElements/Screenshot?apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45" \
--form "file=@screenshot.png"
The configured project key
The configured feedback type key
The feedback key referencing an individual feedback submission (i.e. SUG-0023)
The configured key that references a specific file element in the feedback type form
The file
key in formData contains the path of the file to be uploaded
Attachment Created
Response Content-Types: application/json
Response Example (201 Created)
{
"id": "8203093f-7388-4d63-a88d-157cb85e5400",
"fileElementKey": "Screenshot",
"fileName": "screenshot.png",
"feedbackKey": "SUG-0023",
"feedbackUrl": "https://company.centercode.com/project/feedback/view.html?cap=830150c24a114b466c512881db6cfdd0&uf=8203593f73884c63a80d147cb75e5400"
}
Releases
Project Release
Creates a release within a project release type.
CURL Example
curl --request POST \
--url "https://company.centercode.com/api/v1/projects/WidgetPro/releaseTypes/Firmware?apiKey=9e3c8a050fdb40ff9ca13ac3b1873c45" \
--data '{"title":"Software v0.1.1","subtitle":"New features and security updates for this product","releaseValue":"0.1.1","body":"<p>New software release available. Please install.</p>","startDate":"2020-01-01T00:00:00Z","endDate":"2050-09-30T12:00:00-0700","isClickThroughNotice":false,"ftpBucketFiles":[{"fileName":"Firmware_0.1.1.exe"},{"fileName":"Builds/Installer_0.1.1.exe"}],"links":[{"label":"Software v0.1.1","url":"https:\/\/www.example.com","size":2,"sizeUnit":"MB","openInNewWindow":false,"includeInDownloadBlock":true,"logDownloadAttempts":true}]}'
Release data elements
The configured project key
The configured release type key
Request Content-Types: application/json
Request Example
{
"title": "Software v0.1.1",
"subtitle": "New features and security updates for this product",
"releaseValue": "0.1.1",
"body": "<p>New software release available. Please install.</p>",
"startDate": "2020-01-01T00:00:00+0000",
"endDate": "2050-09-30T12:00:00-0700",
"isClickThroughNotice": false,
"ftpBucketFiles": [
{
"fileName": "Firmware_0.1.1.exe"
},
{
"fileName": "Builds/Installer_0.1.1.exe"
}
],
"links": [
{
"label": "Software v0.1.1",
"url": "https:\/\/www.example.com",
"size": 2,
"sizeUnit": "MB",
"openInNewWindow": false,
"includeInDownloadBlock": true,
"logDownloadAttempts": true
}
]
}
Created
Response Content-Types: application/json
Response Example (201 Created)
{
"id": "6e3a34b8-cf84-4946-9847-a5f6a88d5b54",
"title": "Software v0.1.1",
"subtitle": "New features and security updates for this product",
"releaseValue": "0.1.1",
"body": "<p>New software release available. Please install.</p>",
"startDate": "2020-01-01T00:00:00+0000",
"endDate": "2050-09-30T12:00:00-0700",
"isClickThroughNotice": false,
"ftpBucketFiles": [
{
"fileName": "Firmware_0.1.1.exe"
},
{
"fileName": "Builds/Installer.0.1.1.exe"
}
],
"links": [
{
"label": "Software v0.1.1",
"url": "https://www.example.com",
"size": 2,
"sizeUnit": "MB",
"openInNewWindow": false,
"includeInDownloadBlock": true,
"logDownloadAttempts": true
}
],
"url": "https://company.centercode.com/project/version/item.html?cap=d81fe934-4950-4e36-93f6-79b606fded8d&arttypeid=fa9d6828-42de-4711-8414-0b5b52630a1c&artid=293879a6-6fbb-4939-a79f-43a69464ad8a",
"status": "Processing"
}
Schema Definitions
DataPackage: object
- paging: object
-
- currentPage: integer
- totalPages: integer
- resultsPerPage: integer
- totalResults: integer
- fields: object[]
-
object - name: string
- dataType: string boolean, date, double, integer, string
- formId: string
- questionId: string
- data: object[][]
-
object[] object - fieldOrdinal: integer
- dataType: string boolean, date, double, integer, string
- computedValue: string
- responseId: string
- answerId: string
- values: string[]
-
string
Example
{
"paging": {
"currentPage": "integer",
"totalPages": "integer",
"resultsPerPage": "integer",
"totalResults": "integer"
},
"fields": [
{
"name": "string",
"dataType": "string",
"formId": "string",
"questionId": "string"
}
],
"data": [
[
{
"fieldOrdinal": "integer",
"dataType": "string",
"computedValue": "string",
"responseId": "string",
"answerId": "string",
"values": [
"string"
]
}
]
]
}
RecordLookup: object
- data: object[]
-
object - name: string
- dataType: string boolean, date, double, integer, string
- computedValue: string
- formId: string
- questionId: string
- responseId: string
- answerId: string
- values: string[]
-
string
Example
{
"data": [
{
"name": "string",
"dataType": "string",
"computedValue": "string",
"formId": "string",
"questionId": "string",
"responseId": "string",
"answerId": "string",
"values": [
"string"
]
}
]
}
ListenerMacroStatus: object
- status: string Succeeded, Failed, Pending, Processing
Example
{
"status": "string"
}
ListenerCommentCreated: object
- author: string
- message: string
Example
{
"author": "string",
"message": "string"
}
ListenerDataSaved: object
- fields: object[]
-
object - dataType: string
- label: string
- parameter: string
- value: string
- matched: boolean
Example
{
"fields": [
{
"dataType": "string",
"label": "string",
"parameter": "string",
"value": "string",
"matched": "boolean"
}
]
}
UserImportStatus: object
- status: string Succeeded, Failed, Pending, Processing
Example
{
"status": "string"
}
FeedbackCreated: object
- id: string
- key: string
- url: string
- fileElements: object[]
-
object - title: string
- key: string
- url: string
- acceptsMultipleAttachments: boolean
Example
{
"id": "string",
"key": "string",
"url": "string",
"fileElements": [
{
"title": "string",
"key": "string",
"url": "string",
"acceptsMultipleAttachments": "boolean"
}
]
}
FileAttachmentCreated: object
- id: string
- fileElementKey: string
- fileName: string
- feedbackKey: string
- feedbackUrl: string
Example
{
"id": "string",
"fileElementKey": "string",
"fileName": "string",
"feedbackKey": "string",
"feedbackUrl": "string"
}
ReleaseRequest: object
- title: string
- subtitle: string
- releaseValue: string
- body: string
- startDate: string (date-time)
- endDate: string (date-time)
- isClickThroughNotice: boolean
- ftpBucketFiles: object[]
-
object - fileName: string
- links: object[]
-
object - label: string
- url: string
- size: integer
- sizeUnit: string Bytes, KB, MB, GB
- openInNewWindow: boolean
- includeInDownloadBlock: boolean
- logDownloadAttempts: boolean
Example
{
"title": "string",
"subtitle": "string",
"releaseValue": "string",
"body": "string",
"startDate": "string (date-time)",
"endDate": "string (date-time)",
"isClickThroughNotice": "boolean",
"ftpBucketFiles": [
{
"fileName": "string"
}
],
"links": [
{
"label": "string",
"url": "string",
"size": "integer",
"sizeUnit": "string",
"openInNewWindow": "boolean",
"includeInDownloadBlock": "boolean",
"logDownloadAttempts": "boolean"
}
]
}
ReleaseCreated: object
- id: string
- title: string
- subtitle: string
- releaseValue: string
- body: string
- startDate: string (date-time)
- endDate: string (date-time)
- isClickThroughNotice: boolean
- ftpBucketFiles: object[]
-
object - fileName: string
- links: object[]
-
object - label: string
- url: string
- size: integer
- sizeUnit: string Bytes, KB, MB, GB
- openInNewWindow: boolean
- includeInDownloadBlock: boolean
- logDownloadAttempts: boolean
- url: string
- status: string Processing, Published
Example
{
"id": "string",
"title": "string",
"subtitle": "string",
"releaseValue": "string",
"body": "string",
"startDate": "string (date-time)",
"endDate": "string (date-time)",
"isClickThroughNotice": "boolean",
"ftpBucketFiles": [
{
"fileName": "string"
}
],
"links": [
{
"label": "string",
"url": "string",
"size": "integer",
"sizeUnit": "string",
"openInNewWindow": "boolean",
"includeInDownloadBlock": "boolean",
"logDownloadAttempts": "boolean"
}
],
"url": "string",
"status": "string"
}
InvalidParameter: object
- status: integer
- description: string
- invalidParameters: object[]
-
object - name: string
- description: string
Example
{
"status": 400,
"description": "string",
"invalidParameters": [
{
"name": "string",
"description": "string"
}
]
}