Skill Query API

The Skill Query API allows programmatic access to execute Skill Query queries. The endpoint is read-only.


Endpoint

/2.0/skillquery


Objects used by this API

Skill Query Request object

Defines the JSON object that must be provided in the HTTP request body when calling the Skill Query API. The object can have these properties:

Name Data type Description
query string The Skill Query statement to execute


Skill Query Result object

Defines the JSON object that the API will return in the HTTP response body. The object can have these properties:

Name Data type Description
status string Returns "success" if the query was successful.
data ResultSet object A Skill Query Result Set. See below.

ResultSet object

A ResultSet object is returned as the value of the "data" property of the API response.


Name Data type Description
columns array of Column objects Contains metadata about each of the result table columns.
rows array of Row objects Contains each result table row.
totalRows integer The number of rows that the query produced. May be less than the number of rows that are returned in the ResultSet, due to pagination. 
offset integer The pagination offset that applied to this query. 
limit integer The pagination limit that applied to this query, or null if no limit. 
accessRestrictions boolean If "true", indicates that some rows or values may have been suppressed due to security restrictions.


Column object

The Column object is a property of the Skill Query "data" object 

Name Data type Description
path array Identifies the property that was requested from the Skill Query data model, relative to the query's root collection.
For example, in the query "FIND person skills SHOW person.team, skillLevel", the path for the first column would be ["person", "team"]. This refers to the "team" property of the "person" property of the "person skills" collection.
title string The display name for the column.
type enum The main data type for values in this column. One of:
  • boolean
  • date
  • decimal
  • integer
  • percentage
  • rating
  • reference
  • richtext
  • shorttext
  • text
  • timestamp
  • tuple
processingFunction enum (optional) Indicates whether any special processing applied to the values in this column. One of:
  • none : No special processing
  • delta : Numbers represents the difference between a current value and an earlier value
  • percent-change : Numbers represents the percentage difference between a current value and an earlier value
groupingValue string

(optional) If there are multiple columns with the same property path, contains the value that disambiguates this column from the others.

For example, the query "FIND person skills SHOW person, skillLevel BY skill" would return multiple "skillLevel" columns, one for each skill. The groupingValue will contain the name of the skill.


Row object

The Row object is a property of the Skill Query "data" object 

Name Data type Description
values array of Value objects The values for this result table row

Value object

The "values" property of the Row object contains an array of Value objects. The properties of a Value object depend on the data returned. Therefore it is not guaranteed that all of the following properties will be available.

Name Data type Description
type enum Data type. One of:
  • boolean
  • date
  • decimal
  • integer
  • percentage
  • rating
  • reference
  • richtext
  • shorttext
  • text
  • timestamp
  • tuple
data string|integer|float|boolean|null The raw value
collectionName string The display name of the Skill Query collection that this value came from (for example "person skills")
url string The URL of the related entity (if applicable)
For example, if this value represents a person's name, the "url" property will contain the URL for viewing that person's dashboard in Skills Base.
id string|integer The unique identifier of the related entity (if applicable)
For example, if this value represents a person's name, the "id" property will contain the ID of the person record.
colorHex string The color associated with this value (if applicable).
For example, if this value is a skill rating, the "colorHex" property will contain the color used when visualizing that rating in Skills Base dashboards. 
disposition enum Communicates additional semantics for the value (if applicable). One of:
  • delta-value : When the value represents the difference from some starting value (so should be rendered with a +/- prefix).
  • no-value : When no value exists. "data" will be null.
  • redacted-value : When a value exists, but cannot be shown due to restrictions. "data" may be null, or may contain placeholder text such as "Hidden Person"
  • no-answer : When the requested property is unavailable due to restrictions. A value may or may not exist in the underlying storage. "data" will be null.
html string A HTML representation of the related entity (if applicable).
For example, if the value represents a person's name, the "html" property may contain markup for displaying that person's user avatar.
childValues array of Value objects If the value represents a multi-value property, this contains an array of the set of sub-values that make up this value.
For example, in the query "FIND skills SHOW name, parentCategories", the second column will contain a list of the skill's category ancestry.
In this scenario, "data" will contain a (possibly truncated) display string such as "Category A > Category B", while "childValues" will contain a full Value object describing each category in the set.
suggestedSeparator string If the value represents a multi-value property, this contains the recommended string for concatenating the items in the list, when rendering a UI.
For example:
  • For the property "person.roles", a comma is a suitable separator: Role A, Role B
  • For the property "team.ancestry", a greater-than symbol is more suitable since it denotes a path-like hierarchy: Root Team > Sub-team


Methods

POST /skillquery

Executes a Skill Query query.

The HTTP request body must be a Skill Query Request object (see above).