Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: HighBond API Reference Metrics API
version: 1.1.0
description: Welcome to the API documentation for HighBond.
x-logo:
url: ./assets/logo.png
altText: HighBond Logo
servers:
- url: '{protocol}://{server}/v1'
variables:
protocol:
default: https
server:
default: apis-us.highbond.com
enum:
- apis-us.highbond.com
- apis-ca.highbond.com
- apis-eu.highbond.com
- apis-ap.highbond.com
- apis-au.highbond.com
- apis-af.highbond.com
- apis-sa.highbond.com
- apis-jp.highbond.com
security:
- bearerToken: []
tags:
- name: Metrics
description: 'A metric is a calculation that you label as a specific type of key indicator. Key indicators are quantitative measurements of success (KPI, KCI) or risk (KRI) that are
associated with a company''s objectives. Metrics monitor the data in a single column over a time period using an aggregate function such as average, count, or
percentage of total.
Your organization can have a maximum of 8,000 metrics.
Learn more about metrics.'
paths:
/orgs/{org_id}/tables/{table_id}/metrics:
post:
tags:
- Metrics
operationId: createMetric
summary: Create a metric
description: 'Create a new metric within an existing table.
Limitations:
* Your organization can have a maximum of 8,000 metrics.'
parameters:
- $ref: '#/components/parameters/orgIdParam'
- $ref: '#/components/parameters/tableIdParam'
requestBody:
description: The data required to create a metric.
required: true
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/CreateMetricPayload'
responses:
'201':
description: Created.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/SingleMetricResponse'
'400':
$ref: '#/components/responses/ResourceTypeMismatch'
'401':
$ref: '#/components/responses/BadCredentials'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'415':
$ref: '#/components/responses/NotJsonapiMediaType'
'422':
description: 'Unprocessable entity.
'
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Errors'
example:
errors:
- status: 422
source:
pointer: /data/attributes/field_name
code: invalid_resource
detail: can't be blank
- status: 422
code: unprocessable_entity
detail: Maximum number of 8,000 Metrics reached.
/orgs/{org_id}/metrics/{id}:
get:
tags:
- Metrics
operationId: getMetric
summary: Get a metric
description: Get information about a metric.
parameters:
- $ref: '#/components/parameters/orgIdParam'
- $ref: '#/components/parameters/resourceIdParam'
responses:
'200':
description: OK.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/SingleMetricResponse'
'400':
$ref: '#/components/responses/MissingResourceId'
'401':
$ref: '#/components/responses/BadCredentials'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'415':
$ref: '#/components/responses/NotJsonapiMediaType'
put:
tags:
- Metrics
operationId: updateMetric
summary: Update a metric
description: 'Update a metric to make changes, like renaming it or changing its frequency.
> **Note —**
If the metric is associated with an assessment driver in the Projects or Strategy app, updating the metric disables the assessment automation in the relevant app.'
parameters:
- $ref: '#/components/parameters/orgIdParam'
- $ref: '#/components/parameters/resourceIdParam'
requestBody:
description: The data required to update a metric.
required: true
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/UpdateMetricPayload'
responses:
'200':
description: OK.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/SingleMetricResponse'
'400':
$ref: '#/components/responses/ResourceIdConflict'
'401':
$ref: '#/components/responses/BadCredentials'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'415':
$ref: '#/components/responses/NotJsonapiMediaType'
'422':
description: 'Unprocessable entity.
'
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Errors'
example:
errors:
- status: 422
source:
pointer: /data/attributes/func
code: invalid_resource
detail: is not included in the list.
delete:
tags:
- Metrics
operationId: deleteMetric
summary: Delete a metric
description: 'If you no longer need a metric, you can delete it. Deleting a metric also removes it from any associated triggers and storyboards. It does not delete the table this metric exists in.
> **Note —**
If the metric is associated with an assessment driver in the Projects or Strategy app, deleting the metric disables the assessment automation in the relevant app.'
parameters:
- $ref: '#/components/parameters/orgIdParam'
- $ref: '#/components/parameters/resourceIdParam'
responses:
'204':
$ref: '#/components/responses/NoContent'
'400':
$ref: '#/components/responses/MissingOrgId'
'401':
$ref: '#/components/responses/BadCredentials'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'415':
$ref: '#/components/responses/NotJsonapiMediaType'
components:
schemas:
Errors:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/Error'
RelationshipObject:
type: object
description: The object related to the resource.
required:
- data
properties:
data:
type: object
description: The data associated with the related object.
required:
- id
- type
properties:
id:
type: string
description: The ID of the related object.
example: 1
type:
type: string
description: The classification of the related object.
example: collection
UpdateMetricPayload:
type: object
description: The data associated with the resource.
required:
- data
properties:
data:
type: object
description: The data associated with the resource.
required:
- id
- type
- attributes
properties:
id:
type: string
description: The ID of the metric.
example: '5001'
type:
type: string
description: The classification of the object (`"metrics"`).
example: metrics
attributes:
type: object
description: The attributes associated with the resource.
required:
- name
- field_name
- time_field_name
- func
- interval
properties:
name:
type: string
description: The name of the metric.
maxLength: 255
example: My first Metric
base_color:
type: string
description: Sets the color of the metric when the calculation does not exceed the threshold.
example: '#3F3D3C'
func:
type: string
description: 'Defines the aggregate function to use in the metric calculation.
Valid functions: `count`, `positives`, `negatives`, `zeros`, `total`, `average`, `lowest`, `highest`, `standard_deviation`, `uniques`, `blanks`, `percent-of`
'
example: percent-of
interval:
type: string
description: 'Summarizes the metric into a period.
Valid periods: `day`, `month`, `quarter`, `year`
'
example: month
metric_type:
type: string
description: Tags the metric as an indicator type, such as a key performance indicator or key risk indicator.
maxLength: 255
example: kpi
show_sparkline:
type: boolean
description: Shows (`true`) or hides (`false`) the trend of key indicator performance from the earliest calculation period to the current period for users that view the metric.
example: true
view_thresholds:
type: boolean
description: Shows (`true`) or hides (`false`) active trigger thresholds on the sparkline.
example: false
field_name:
type: string
description: The underlying name of the column in the table used for the metric calculation. `field_name` must be unique within a table and follow the <a href="https://help.highbond.com/helpdocs/highbond/en-us/Default.htm#cshid=rm-import-export-results" target="_blank">column naming requirements</a>.
example: balance
time_field_name:
type: string
description: A column in the table with a `date`, `datetime` or `time` data type.
example: created_at
config:
type: string
description: A JSON string storing the metric format configuration.
example: "{\n \"field_format_map\": { },\n \"conditional_formats_map\": { }\n}\n"
filter_config:
type: string
description: A JSON string storing the metric filter configuration.
example: "{\n \"filtersOpen\": true,\n \"params\": { }\n}\n"
func_argument:
type: string
description: 'A JSON string storing the arguments of the Metric function.
Valid operators:
`>`, `<`, `>=`, `<=`, `==`, `!=`, `between`, `not-between`, `begins-with`, `contains`, `does-not-contain`, `is-blank`, `is-not-blank`
'
example: "{\n \"operator\": \"is-blank\"\n}\n"
CreateMetricPayload:
type: object
description: The data associated with the resource.
required:
- data
properties:
data:
type: object
description: The data associated with the resource.
required:
- type
- attributes
properties:
type:
type: string
description: The classification of the object (`"metrics"`).
example: metrics
attributes:
type: object
description: The attributes associated with the resource.
required:
- name
- field_name
- time_field_name
- func
- interval
properties:
name:
type: string
description: The name of the metric.
maxLength: 255
example: My first Metric
base_color:
type: string
description: Sets the color of the metric when the calculation does not exceed the threshold.
example: '#3F3D3C'
func:
type: string
description: 'Defines the aggregate function to use in the metric calculation.
Valid functions: `count`, `positives`, `negatives`, `zeros`, `total`, `average`, `lowest`, `highest`, `standard_deviation`, `uniques`, `blanks`, `percent-of`
'
example: percent-of
interval:
type: string
description: 'Summarizes the metric into a period.
Valid periods: `day`, `month`, `quarter`, `year`
'
example: month
metric_type:
type: string
description: Tags the metric as an indicator type, such as a key performance indicator or key risk indicator.
maxLength: 255
example: kpi
show_sparkline:
type: boolean
description: Shows (`true`) or hides (`false`) the trend of key indicator performance from the earliest calculation period to the current period for users that view the metric.
example: true
view_thresholds:
type: boolean
description: Shows (`true`) or hides (`false`) active trigger thresholds on the sparkline.
example: false
field_name:
type: string
description: The underlying name of the column in the table used for the metric calculation. `field_name` must be unique within a table and follow the <a href="https://help.highbond.com/helpdocs/highbond/en-us/Default.htm#cshid=rm-import-export-results" target="_blank">column naming requirements</a>.
example: balance
time_field_name:
type: string
description: A column in the table with a `date`, `datetime` or `time` data type.
example: created_at
config:
type: string
description: A JSON string storing the metric format configuration.
example: "{\n \"field_format_map\": { },\n \"conditional_formats_map\": { }\n}\n"
filter_config:
type: string
description: A JSON string storing the metric filter configuration.
example: "{\n \"filtersOpen\": true,\n \"params\": { }\n}\n"
func_argument:
type: string
description: 'A JSON string storing the arguments of the Metric function.
Valid operators:
`>`, `<`, `>=`, `<=`, `==`, `!=`, `between`, `not-between`, `begins-with`, `contains`, `does-not-contain`, `is-blank`, `is-not-blank`
'
example: "{\n \"operator\": \"is-blank\"\n}\n"
Error:
type: object
required:
- status
properties:
status:
type: string
description: The HTTP status code.
source:
type: object
description: Indicates which part of the request document caused the error.
required:
- pointer
properties:
pointer:
type: string
description: 'A JSON Pointer <a href="https://tools.ietf.org/html/rfc6901" target="_blank">(RFC6901)</a> to the associated entity
in the request document.
'
code:
type: string
description: Application-specific error code, expressed as a string value.
title:
type: string
description: A short, human-readable summary of the problem.
detail:
type: string
description: A human-readable explanation specific to this occurrence of the problem.
SingleMetricResponse:
type: object
description: The data associated with the resource.
required:
- data
properties:
data:
type: object
description: The data associated with the resource.
required:
- id
- type
- attributes
- relationships
properties:
id:
type: string
description: The ID of the metric.
example: '5001'
type:
type: string
description: The classification of the object (`"metrics"`).
example: metrics
attributes:
type: object
description: The attributes associated with the resource.
properties:
name:
type: string
description: The name of the metric.
maxLength: 255
example: My first Metric
base_color:
type: string
description: Sets the color of the metric when the calculation does not exceed the threshold.
example: '#3F3D3C'
func:
type: string
description: 'Defines the aggregate function to use in the metric calculation.
Valid functions: `count`, `positives`, `negatives`, `zeros`, `total`, `average`, `lowest`, `highest`, `standard_deviation`, `uniques`, `blanks`, `percent-of`
'
example: percent-of
interval:
type: string
description: 'Summarizes the metric into a period.
Valid periods: `day`, `month`, `quarter`, `year`
'
example: month
metric_type:
type: string
description: Tags the metric as an indicator type, such as a key performance indicator or key risk indicator.
maxLength: 255
example: kpi
show_sparkline:
type: boolean
description: Shows (`true`) or hides (`false`) the trend of key indicator performance from the earliest calculation period to the current period for users that view the metric.
example: true
view_thresholds:
type: boolean
description: Shows (`true`) or hides (`false`) active trigger thresholds on the sparkline.
example: false
field_name:
type: string
description: The underlying name of the column in the table used for the metric calculation. `field_name` must be unique within a table and follow the <a href="https://help.highbond.com/helpdocs/highbond/en-us/Default.htm#cshid=rm-import-export-results" target="_blank">column naming requirements</a>.
example: balance
time_field_name:
type: string
description: A column in the table with a `date`, `datetime` or `time` data type.
example: created_at
config:
type: string
description: A JSON string storing the metric format configuration.
example: "{\n \"field_format_map\": { },\n \"conditional_formats_map\": { }\n}\n"
filter_config:
type: string
description: A JSON string storing the metric filter configuration.
example: "{\n \"filtersOpen\": true,\n \"params\": { }\n}\n"
func_argument:
type: string
description: 'A JSON string storing the arguments of the Metric function.
Valid operators:
`>`, `<`, `>=`, `<=`, `==`, `!=`, `between`, `not-between`, `begins-with`, `contains`, `does-not-contain`, `is-blank`, `is-not-blank`
'
example: "{\n \"operator\": \"is-blank\"\n}\n"
created_at:
type: string
description: The date the metric was created.
example: '2019-02-09T13:17:26Z'
format: date-time
updated_at:
type: string
description: The date the metric was updated.
example: '2019-03-18T22:02:05Z'
format: date-time
relationships:
type: object
description: The relationships associated with the resource.
properties:
table:
$ref: '#/components/schemas/RelationshipObject'
example:
table:
data:
id: '300'
type: tables
parameters:
tableIdParam:
in: path
name: table_id
description: The ID of the table.
required: true
schema:
type: integer
example: 300
resourceIdParam:
in: path
name: id
description: The ID of the requested resource.
required: true
schema:
type: string
example: 9999
orgIdParam:
in: path
name: org_id
description: The ID of the HighBond instance.
required: true
schema:
type: string
example: 1
responses:
ResourceIdConflict:
description: Bad request.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Errors'
example:
errors:
- status: 400
code: resource_id_conflict
title: Resource ID conflict
detail: 'The id specified in the request body, 1, conflicts with
the id specified in the path, 101.
'
NotJsonapiMediaType:
description: Unsupported media type.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Errors'
example:
errors:
- status: 415
code: unsupported_media_type
title: Unsupported media type
detail: 'The endpoint supports only the application/vnd.api+json Content-Type. This request specified application/json.
'
MissingResourceId:
description: Bad request.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Errors'
example:
errors:
- status: 400
code: parameter_missing
title: Parameter missing
detail: The required parameter, id, is missing.
NotFound:
description: Not found.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Errors'
example:
errors:
- status: '404'
title: Not Found
detail: The requested resource does not exist.
Forbidden:
description: Forbidden.
NoContent:
description: No content.
ResourceTypeMismatch:
description: Bad request.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Errors'
example:
errors:
- status: 400
code: resource_type_mismatch
title: Resource type mismatch
detail: 'The requested data type, a-bad-type, is incompatible with the endpoint.
'
MissingOrgId:
description: Bad request.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/Errors'
example:
errors:
- status: 400
code: parameter_missing
title: Parameter missing
detail: The required parameter, org_id, is missing.
BadCredentials:
description: Bad credentials.
securitySchemes:
bearerToken:
description: 'HighBond offers the industry-standard OAuth 2.0 flow for connecting to the HighBond platform. OAuth 2.0 provides a
safe and secure way to access data, while protecting your account credentials.
'
type: http
scheme: bearer
bearerFormat: oauth2
x-tagGroups:
- name: Core resources
tags:
- Robots Agents
- Robots
- Robot Tasks
- Robot Jobs
- Robot Apps
- Robot Script Versions
- Robot Activations
- Robot Files
- Robot Working Files
- Robot Collaborators
- Robots Folders Collaborators
- Robot Users
- Robots Folders
- Storyboards
- Collections
- Questionnaires
- Analyses
- Surveys
- Event Reports
- Tables
- Table columns
- Records
- Record columns
- Record statuses
- Interpretations
- Metrics
- Workflow Groups
- Results Users
- Results Triggers
- Project types
- Custom attributes
- Request item statuses
- Projects
- Projects Admin
- Planning files
- Results files
- Objectives
- Narratives
- Risks
- Controls
- Control performance schedules
- Mitigations
- Control test plans
- Control tests
- Attachments
- Walkthroughs
- Issues
- Actions
- Collaborators
- Request Items
- To-dos
- Sign-offs
- Entities
- Scheduler Filters
- Frameworks
- Handlers
- Workflows in Asset Inventory/Asset Manager
- Asset types
- Asset record types
- Attribute types
- Assets
- Asset Relationships
- Asset records
- Asset Record Relationships
- Events
- Template Toolkits
- Toolkits
- Roles
- Role Deletion
- Compliance Maps
- Time entries
- Non-project time categories
- Timesheets
- Importer
- System Users
- Organizations
- Impact Reports
- Activities
- Users
- Groups
- Scheduled Users
- Scheduled Projects
- Scheduled Hours
- Extract
- Strategy