Rely.io Public API
Full CRUD REST API for managing blueprints, entities, scorecards, self-service actions, and automations in the Rely.io internal developer portal. Authentication uses a long-lived Bearer API key.
Full CRUD REST API for managing blueprints, entities, scorecards, self-service actions, and automations in the Rely.io internal developer portal. Authentication uses a long-lived Bearer API key.
openapi: 3.1.0
info:
title: Rely.io Public API
description: >-
The Rely.io Public API provides programmatic access to all features of the
Rely.io Internal Developer Portal platform. Full CRUD operations are
available for software catalog entities, blueprints, scorecards,
self-service actions, and automations. Every action available through the
Rely.io web interface can also be performed via this REST API.
Authentication uses a long-lived API key (Bearer token) generated in the
Rely.io Plugins settings page.
version: '1.0.0'
contact:
name: Rely.io Support
email: [email protected]
url: https://docs.rely.io
termsOfService: https://www.rely.io/terms
externalDocs:
description: Rely.io API Documentation
url: https://docs.rely.io/public-api
servers:
- url: https://api.rely.io
description: Production Server
tags:
- name: Blueprints
description: >-
Manage blueprint schemas that define the structure and attributes of
catalog entities such as services, teams, and resources.
- name: Entities
description: >-
Manage catalog entity instances — the individual services, teams,
deployments, and resources tracked in the software catalog.
- name: Scorecards
description: >-
Define and manage engineering scorecards that track adoption of
standards and production readiness across services.
- name: Self-Service Actions
description: >-
Configure developer self-service actions that automate infrastructure
provisioning, service scaffolding, and deployment workflows.
- name: Automations
description: >-
Manage automation rules that trigger workflows based on catalog
entity changes or external events via plugin integrations.
- name: Users
description: Manage user accounts and invitations in the organization.
security:
- bearerAuth: []
paths:
/api/v1/blueprints:
get:
operationId: listBlueprints
summary: List Blueprints
description: >-
Retrieve all blueprint schemas defined in the organization's developer
portal. Blueprints define the structure, properties, and relations
for catalog entity types.
tags:
- Blueprints
responses:
'200':
description: List of blueprints
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Blueprint'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createBlueprint
summary: Create Blueprint
description: >-
Create a new blueprint schema defining a type of catalog entity.
Blueprints use an OpenAPI 3-compatible JSON descriptor with
Rely.io-specific extensions for properties and relations.
tags:
- Blueprints
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BlueprintRequest'
responses:
'201':
description: Blueprint created
content:
application/json:
schema:
$ref: '#/components/schemas/Blueprint'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/blueprints/{blueprintId}:
get:
operationId: getBlueprint
summary: Get Blueprint
description: Retrieve a specific blueprint schema by its identifier.
tags:
- Blueprints
parameters:
- $ref: '#/components/parameters/BlueprintId'
responses:
'200':
description: Blueprint details
content:
application/json:
schema:
$ref: '#/components/schemas/Blueprint'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateBlueprint
summary: Update Blueprint
description: Update an existing blueprint schema.
tags:
- Blueprints
parameters:
- $ref: '#/components/parameters/BlueprintId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BlueprintRequest'
responses:
'200':
description: Blueprint updated
content:
application/json:
schema:
$ref: '#/components/schemas/Blueprint'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteBlueprint
summary: Delete Blueprint
description: >-
Delete a blueprint schema. All entities of this blueprint type
must be deleted first.
tags:
- Blueprints
parameters:
- $ref: '#/components/parameters/BlueprintId'
responses:
'204':
description: Blueprint deleted
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/blueprints/{blueprintId}/entities:
get:
operationId: listEntities
summary: List Entities
description: >-
Retrieve all catalog entity instances of a specific blueprint type.
Returns services, teams, deployments, or other resources tracked
in the software catalog.
tags:
- Entities
parameters:
- $ref: '#/components/parameters/BlueprintId'
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/SizeParam'
responses:
'200':
description: List of entities
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Entity'
pagination:
$ref: '#/components/schemas/Pagination'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createEntity
summary: Create Entity
description: >-
Create a new catalog entity instance of the specified blueprint type.
Entity properties must conform to the blueprint schema.
tags:
- Entities
parameters:
- $ref: '#/components/parameters/BlueprintId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EntityRequest'
responses:
'201':
description: Entity created
content:
application/json:
schema:
$ref: '#/components/schemas/Entity'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/blueprints/{blueprintId}/entities/{entityId}:
get:
operationId: getEntity
summary: Get Entity
description: Retrieve a specific catalog entity by its identifier.
tags:
- Entities
parameters:
- $ref: '#/components/parameters/BlueprintId'
- $ref: '#/components/parameters/EntityId'
responses:
'200':
description: Entity details
content:
application/json:
schema:
$ref: '#/components/schemas/Entity'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateEntity
summary: Update Entity
description: Update an existing catalog entity's properties and relations.
tags:
- Entities
parameters:
- $ref: '#/components/parameters/BlueprintId'
- $ref: '#/components/parameters/EntityId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EntityRequest'
responses:
'200':
description: Entity updated
content:
application/json:
schema:
$ref: '#/components/schemas/Entity'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteEntity
summary: Delete Entity
description: Delete a catalog entity from the software catalog.
tags:
- Entities
parameters:
- $ref: '#/components/parameters/BlueprintId'
- $ref: '#/components/parameters/EntityId'
responses:
'204':
description: Entity deleted
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/scorecards:
get:
operationId: listScorecards
summary: List Scorecards
description: >-
Retrieve all scorecards defined in the organization. Scorecards
evaluate services against engineering standards such as production
readiness, DORA metrics, and observability requirements.
tags:
- Scorecards
responses:
'200':
description: List of scorecards
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Scorecard'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createScorecard
summary: Create Scorecard
description: >-
Create a new engineering scorecard with rules and thresholds for
evaluating services.
tags:
- Scorecards
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ScorecardRequest'
responses:
'201':
description: Scorecard created
content:
application/json:
schema:
$ref: '#/components/schemas/Scorecard'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/scorecards/{scorecardId}:
get:
operationId: getScorecard
summary: Get Scorecard
description: Retrieve a specific scorecard and its rules.
tags:
- Scorecards
parameters:
- $ref: '#/components/parameters/ScorecardId'
responses:
'200':
description: Scorecard details
content:
application/json:
schema:
$ref: '#/components/schemas/Scorecard'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateScorecard
summary: Update Scorecard
description: Update an existing scorecard's rules and configuration.
tags:
- Scorecards
parameters:
- $ref: '#/components/parameters/ScorecardId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ScorecardRequest'
responses:
'200':
description: Scorecard updated
content:
application/json:
schema:
$ref: '#/components/schemas/Scorecard'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteScorecard
summary: Delete Scorecard
description: Delete a scorecard from the organization.
tags:
- Scorecards
parameters:
- $ref: '#/components/parameters/ScorecardId'
responses:
'204':
description: Scorecard deleted
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/actions:
get:
operationId: listActions
summary: List Self-Service Actions
description: >-
Retrieve all self-service actions defined in the organization.
Self-service actions enable developers to scaffold services, provision
cloud resources, and trigger deployments independently.
tags:
- Self-Service Actions
responses:
'200':
description: List of self-service actions
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Action'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createAction
summary: Create Self-Service Action
description: >-
Create a new self-service action. Actions are defined as OpenAPI 3
spec files with Rely.io-specific extensions for execution configuration.
tags:
- Self-Service Actions
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ActionRequest'
responses:
'201':
description: Action created
content:
application/json:
schema:
$ref: '#/components/schemas/Action'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/actions/{actionId}:
get:
operationId: getAction
summary: Get Self-Service Action
description: Retrieve a specific self-service action configuration.
tags:
- Self-Service Actions
parameters:
- $ref: '#/components/parameters/ActionId'
responses:
'200':
description: Action details
content:
application/json:
schema:
$ref: '#/components/schemas/Action'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateAction
summary: Update Self-Service Action
description: Update a self-service action configuration.
tags:
- Self-Service Actions
parameters:
- $ref: '#/components/parameters/ActionId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ActionRequest'
responses:
'200':
description: Action updated
content:
application/json:
schema:
$ref: '#/components/schemas/Action'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteAction
summary: Delete Self-Service Action
description: Delete a self-service action from the organization.
tags:
- Self-Service Actions
parameters:
- $ref: '#/components/parameters/ActionId'
responses:
'204':
description: Action deleted
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/automations:
get:
operationId: listAutomations
summary: List Automations
description: >-
Retrieve all automation rules defined in the organization. Automations
trigger workflows based on entity catalog changes or external events.
tags:
- Automations
responses:
'200':
description: List of automations
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Automation'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createAutomation
summary: Create Automation
description: Create a new automation rule triggered by catalog events.
tags:
- Automations
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AutomationRequest'
responses:
'201':
description: Automation created
content:
application/json:
schema:
$ref: '#/components/schemas/Automation'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/legacy/users/invite:
post:
operationId: inviteUser
summary: Invite User
description: >-
Send an invitation email to a new user to join the organization's
Rely.io developer portal.
tags:
- Users
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UserInviteRequest'
responses:
'200':
description: Invitation sent successfully
content:
application/json:
schema:
$ref: '#/components/schemas/UserInviteResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: >-
Long-lived API key generated in the Rely.io Plugins settings page.
Valid for 10 years. Include as Bearer token in Authorization header.
parameters:
BlueprintId:
name: blueprintId
in: path
required: true
description: Unique identifier of the blueprint
schema:
type: string
EntityId:
name: entityId
in: path
required: true
description: Unique identifier of the entity
schema:
type: string
ScorecardId:
name: scorecardId
in: path
required: true
description: Unique identifier of the scorecard
schema:
type: string
ActionId:
name: actionId
in: path
required: true
description: Unique identifier of the self-service action
schema:
type: string
PageParam:
name: page
in: query
description: Page number
schema:
type: integer
minimum: 1
default: 1
SizeParam:
name: size
in: query
description: Number of results per page
schema:
type: integer
minimum: 1
maximum: 100
default: 25
schemas:
Blueprint:
type: object
properties:
id:
type: string
description: Globally unique blueprint identifier
name:
type: string
description: User-friendly display name
description:
type: string
description: Optional overview of what this blueprint represents
properties:
type: object
description: JSON Schema-compatible property definitions for entities of this type
additionalProperties:
$ref: '#/components/schemas/BlueprintProperty'
relations:
type: object
description: Relation definitions linking this blueprint to other blueprints
additionalProperties:
$ref: '#/components/schemas/BlueprintRelation'
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
BlueprintProperty:
type: object
properties:
title:
type: string
description: Display name for the property
type:
type: string
description: JSON Schema type (string, integer, boolean, array, object)
description:
type: string
description: Description of the property
enum:
type: array
items: {}
description: Allowed values for enum properties
format:
type: string
description: JSON Schema format (date-time, uri, email, etc.)
BlueprintRelation:
type: object
properties:
title:
type: string
description: Display name for the relation
target:
type: string
description: Target blueprint identifier
many:
type: boolean
description: Whether this is a one-to-many relation
description:
type: string
description: Description of the relation
BlueprintRequest:
type: object
required:
- id
- name
properties:
id:
type: string
description: Globally unique blueprint identifier
name:
type: string
description:
type: string
properties:
type: object
additionalProperties:
$ref: '#/components/schemas/BlueprintProperty'
relations:
type: object
additionalProperties:
$ref: '#/components/schemas/BlueprintRelation'
Entity:
type: object
properties:
id:
type: string
description: Unique entity identifier
blueprintId:
type: string
description: The blueprint type this entity belongs to
name:
type: string
description: Entity display name
properties:
type: object
description: Property values conforming to the blueprint schema
additionalProperties: true
relations:
type: object
description: Related entity identifiers
additionalProperties: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
EntityRequest:
type: object
required:
- id
- name
properties:
id:
type: string
name:
type: string
properties:
type: object
additionalProperties: true
relations:
type: object
additionalProperties: true
Scorecard:
type: object
properties:
id:
type: string
description: Unique scorecard identifier
name:
type: string
description: Scorecard display name
description:
type: string
blueprintId:
type: string
description: Blueprint this scorecard evaluates
rules:
type: array
items:
$ref: '#/components/schemas/ScorecardRule'
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
ScorecardRule:
type: object
properties:
id:
type: string
name:
type: string
description: Rule display name
description:
type: string
level:
type: string
description: Maturity level (bronze, silver, gold, etc.)
condition:
type: object
description: Rule evaluation condition expression
ScorecardRequest:
type: object
required:
- name
- blueprintId
properties:
name:
type: string
description:
type: string
blueprintId:
type: string
rules:
type: array
items:
$ref: '#/components/schemas/ScorecardRule'
Action:
type: object
properties:
id:
type: string
description: Unique action identifier
name:
type: string
description: Action display name
description:
type: string
blueprintId:
type: string
description: Blueprint this action applies to
trigger:
type: string
description: Action trigger type (manual, webhook, scheduled)
userInputs:
type: object
description: Input schema for the action form
invocationMethod:
type: object
description: Execution method (webhook, GitHub Actions, GitLab, etc.)
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
ActionRequest:
type: object
required:
- name
- blueprintId
properties:
name:
type: string
description:
type: string
blueprintId:
type: string
trigger:
type: string
userInputs:
type: object
invocationMethod:
type: object
Automation:
type: object
properties:
id:
type: string
name:
type: string
description:
type: string
trigger:
type: object
description: Automation trigger condition
action:
type: object
description: Action to execute when triggered
enabled:
type: boolean
createdAt:
type: string
format: date-time
AutomationRequest:
type: object
required:
- name
- trigger
- action
properties:
name:
type: string
description:
type: string
trigger:
type: object
action:
type: object
enabled:
type: boolean
default: true
UserInviteRequest:
type: object
required:
- name
- email
properties:
name:
type: string
description: User's full name
email:
type: string
format: email
description: User's email address
UserInviteResponse:
type: object
properties:
success:
type: boolean
message:
type: string
Pagination:
type: object
properties:
total:
type: integer
page:
type: integer
size:
type: integer
hasMore:
type: boolean
Error:
type: object
properties:
message:
type: string
code:
type: string
responses:
BadRequest:
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'