Search
K

API Documentation

Configure8 API documentation
The Configure8 API is based on REST architecture style. The API uses standard HTTP verbs, codes and authentication. Endpoints accept and return JSON-encoded data.

Authentication

Configure8 API is protected by API keys. In order to use our API, you need to set up a key with appropriate scopes and role. You can refer to the API keys management section in our documentation to check out more detailed information.
Please make sure that you are not exposing your API keys. Keep them secure and do not share them publicly!
Configure8 API keys start with c8ak prefix, so they support secret scanning (i. e. Github secret scanning) to help you to avoid exposing API keys.
Authentication is performed via Api-Key Header. All API calls must be authenticated and made over HTTPS.
curl https://app.configure8.io/public/v1/catalog/entities \
--header "Api-Key: my_api_key"

Errors

As for errors, Configure8 API uses standard HTTP status codes. Below you see the most common status codes and possible reasons.
Status code
Description
2xx
OK
400
Bad request. Possible reason - malformed request (i.e. body, params).
401
Unauthorised. The API key is invalid or was not provided.
403
Forbidden. The does not have enough permissions to perform this operation.
404
Not found. Requested entity is not found.
409
Conflict. Usually caused by duplicating names in resources, incorrect template usage on entity creation etc.
422
Unprocessable entity. The request syntax is correct, but there is a business logic error from the client's side.
5xx
Configure8 internal server error.

Pagination

Endpoints that return multiple items (e. g. /public/v1/catalog/entities) contain pagination for more convenient usage. It is based on such properties: pageNumber, pageSize and sort.
Property
Default
Description
pageNumber
0
Page to return. Offset to return is calculated based on pageNumber * pageSize
pageSize
20
Number of items to return
sort
Sorted by name in ascending order
Sorting of items is defined by this structure: { property: 'propertyToSortOn', order: 'ASC' | 'DESC' }

Endpoints

Catalog Entity

post
/public/v1/catalog/entities
Get catalog entities filtered by query.
get
/public/v1/catalog/entities/{id}
Get a catalog entity by id.
delete
/public/v1/catalog/entities/{id}
Delete the specified catalog entity
NB: Only meta tags and tags can be updated for discovery created resources
post
/public/v1/catalog/entities/resource
Create a new resource catalog entity
patch
/public/v1/catalog/entities/resource/{id}
Update a resource catalog entity
post
/public/v1/catalog/entities/person
Create a new person catalog entity
patch
/public/v1/catalog/entities/person/{id}
Update a person catalog entity
post
/public/v1/catalog/entities/service
Create a new service catalog entity
patch
/public/v1/catalog/entities/service/{id}
Update a service catalog entity
post
/public/v1/catalog/entities/environment
Create a new environment catalog entity
patch
/public/v1/catalog/entities/environment/{id}
Update an environment catalog entity
post
/public/v1/catalog/entities/system
Create a new system catalog entity
patch
/public/v1/catalog/entities/system/{id}
Update a system catalog entity
post
/public/v1/catalog/entities/application
Create a new application catalog entity
patch
/public/v1/catalog/entities/application/{id}
Update an application catalog entity
Library packageManager possible values:
"ACTIONS", "NPM", "PIP", "MAVEN", "GRADLE", "GO"
post
/public/v1/catalog/entities/library
Create a new library catalog entity
patch
/public/v1/catalog/entities/library/{id}
Update a library catalog entity
Manifest and repository provider possible values:
"GitHub", "Bitbucket", "GitLab", "Azure DevOps"
post
/public/v1/catalog/entities/repository
Create an new repository catalog entity
patch
/public/v1/catalog/entities/repository/{id}
Update a repository catalog entity
post
/public/v1/catalog/entities/manifest
Create a new manifest catalog entity
patch
/public/v1/catalog/entities/manifest/{id}
Update a manifest catalog entity

Catalog Entity Relation

NB: create/delete relations between discovery created resources are forbidden
Labels possible values:
"belongs_to", "depends_on", "provides", "has_environment", "part_of", "owned_by", "consumes", "uses", "contains", "has_repository", "has_library", "has_manifest", "has_dependency", "child_of", "relative_to"
Possible entities relations:
service -> has_environment -> environment
service -> part_of -> system
service -> belongs_to -> application
team -> belongs_to -> person
service -> depends_on -> service
environment -> contains -> resource
resource -> uses -> resource
resource -> child_of -> resource
system -> depends_on -> system
application -> depends_on -> application
service -> has_repository -> repository
repository -> has_library -> library
repository -> has_manifest -> manifest
manifest -> has_dependency -> library
post
/public/v1/catalog/relations
Create relation between catalog entities. NB: Resource-Resource relations are available only for non-discovery created resources.
get
/public/v1/catalog/relations
GET a list of catalog relations.
delete
/public/v1/catalog/relations
Delete catalog entity relation.

Catalog Entity Metadata

Metadata type possible values:
"JSON", "Code", "Link", "Text", "AutoMap", "Nickname"
get
/public/v1/catalog/metadata/{id}
Get catalog entity's metadata id.
put
/public/v1/catalog/metadata/{id}
Update catalog entity's metadata by id.

Template

Template type possible values:
"core", "user"
Template entityType possible values:
"service"
Template category possible values:
"create", "display"
get
/public/v1/templates
Get all the templates available.

Scorecard

post
/public/v1/scorecards/{id}/run
Trigger a reevaluate for the given scorecard
get
/public/v1/scorecards
GET an organizational list of scorecard definitions optionally filtered.
get
/public/v1/scorecards/{id}
GET an organizational scorecard definition by id.
put
/public/v1/scorecards/{id}
Update an organizational scorecard definition by id.
get
/public/v1/scorecards/{id}/metrics
Get scorecard metrics
get
/public/v1/scorecards/{id}/results
Get a scorecard results

Module settings (service plugins)

UI plugin names possible values:
"github_actions", "github_activity", "gitlab_pipelines", "gitlab_activity", "azure_devops_activity", "azure_devops_pipelines", "bitbucket_pipelines", "bitbucket_activity", "circle_ci", "datadog_embedded_dashboard", "datadog_embedded_graph", "datadog_monitor", "datadog_slo", "embedded_view", "jenkins", "jira_activity", "new_relic_chart", "opsgenie_oncall", "pagerduty_oncall", "scorecards", "sonarcloud_repo_profile"
Provider type possible values:
"REPOS", "CICD", "OTHER", "ISSUE_TRACKING", "OMS", "CODE_INSPECTION"
Provider name possible values:
"GitHub", "GitLab", "Azure DevOps", "Bitbucket", "CircleCI", "Datadog", "EmbeddedView", "Jenkins", "Jira", "NewRelic", "OpsGenie", "PagerDuty", "Scorecards", "SonarCloud"
get
/public/v1/module-settings/{id}
Get a module setting by id.
post
/public/v1/module-settings
Create a module settings object.

Service dependencies

post
/public/v1/sync/services/diff
Get a diff of services and their dependencies based on the given input
post
/public/v1/sync/services
Apply a diff of services and their dependencies

Deployments

post
/public/v1/deployments
Create a new deployment entity
patch
/public/v1/deployments/{id}
Update a deployment entity
get
/public/v1/deployments
GET an organizational list of deployments optionally filtered.
delete
/public/v1/deployments/{id}
Delete a deployment entity

User

get
/public/v1/users
Return list of users based on the given filters
patch
/public/v1/users/{id}
Update a user entity
delete
/public/v1/users/{id}
Delete a user entity

Batch API

NB: max batch size equals 50 elements
post
/public/v1/catalog/batch/entities/resource
Batch create new resource catalog entities
delete
/public/v1/catalog/batch/entities
Batch delete the specified catalog entities

Credentials

get
/public/v1/credentials
GET a list of credentials
post
/public/v1/credentials
POST a new credential
put
/public/v1/credentials/{id}
PUT a credential
delete
/public/v1/credentials/{id}
DELETE a credential
Copyright © 2023 configure8, Inc. All rights reserved.