Signadot RouteGroups API
The RouteGroups API from Signadot — 2 operation(s) for routegroups.
The RouteGroups API from Signadot — 2 operation(s) for routegroups.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/signadot:signadot-routegroups-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
contact: {}
description: API for Signadot Sandboxes
title: Signadot Route Groups API
version: '2.0'
servers:
- url: https://api.signadot.com/api/v2
tags:
- name: RouteGroups
paths:
/orgs/{orgName}/routegroups:
get:
description: List all routegroups under the specified Signadot org.
operationId: list-routegroups
parameters:
- description: Signadot Org Name
in: path
name: orgName
required: true
x-example: my-company
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
items:
$ref: '#/components/schemas/RouteGroup'
type: array
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'502':
description: Bad Gateway
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- ApiKeyAuth: []
summary: List routegroups
tags:
- RouteGroups
/orgs/{orgName}/routegroups/{routegroupName}:
delete:
description: Delete a given routegroup.
operationId: delete-routegroup
parameters:
- description: Signadot Org Name
in: path
name: orgName
required: true
x-example: my-company
schema:
type: string
- description: RouteGroup Name
in: path
name: routegroupName
required: true
x-example: my-routegroup
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EmptyResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'502':
description: Bad Gateway
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- ApiKeyAuth: []
summary: Delete a routegroup
tags:
- RouteGroups
get:
description: Fetch the details about a given routegroup.
operationId: get-routegroup
parameters:
- description: Signadot Org Name
in: path
name: orgName
required: true
x-example: my-company
schema:
type: string
- description: RouteGroup Name
in: path
name: routegroupName
required: true
x-example: my-routegroup
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RouteGroup'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'502':
description: Bad Gateway
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- ApiKeyAuth: []
summary: Get a routegroup
tags:
- RouteGroups
put:
description: Creates or updates a routegroup with the provided parameters.
operationId: apply-routegroup
parameters:
- description: Signadot Org Name
in: path
name: orgName
required: true
x-example: my-company
schema:
type: string
- description: RouteGroup Name
in: path
name: routegroupName
required: true
x-example: my-routegroup
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RouteGroup'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'502':
description: Bad Gateway
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- ApiKeyAuth: []
summary: Create or update a routegroup
tags:
- RouteGroups
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RouteGroup'
description: Request to create or update routegroup
required: true
components:
schemas:
defaults.CompositeDefaults:
properties:
cluster:
items:
$ref: '#/components/schemas/defaults.Default'
type: array
type: object
defaults.Default:
properties:
class:
$ref: '#/components/schemas/defaults.DefaultClass'
createdAt:
type: string
resourceKind:
$ref: '#/components/schemas/defaults.ResourceKind'
updatedAt:
type: string
value: {}
type: object
routeGroup.Status:
properties:
matchedSandboxes:
description: 'MatchedSandboxes gives the list of sandboxes whose labels
were matched by the ''match'' object in the spec.'
items:
type: string
type: array
message:
description: 'Message is a human readable explanation of why
the sandbox is healthy or not.'
type: string
ready:
description: 'Ready indicates whether the sandbox is ready,
meaning that it can be used for testing.'
type: boolean
reason:
description: 'Reason is a machine readable explanation of why
the sandbox is healthy or not.'
type: string
scheduledDeleteTime:
description: 'ScheduledDeleteTime returns the formatted and computed ttl based on the Duration
and OffsetFrom'
type: string
type: object
routegroups.EndpointURL:
properties:
cluster:
type: string
name:
type: string
target:
type: string
url:
type: string
type: object
ErrorResponse:
properties:
code:
type: integer
error:
type: string
requestId:
type: string
type: object
routeGroup.Match:
properties:
all:
description: 'When All is non-nil, T matches a set of labels if and only if every element of All matches them.
Only one field may be non-nil.'
items:
$ref: '#/components/schemas/routeGroup.Match'
type: array
x-omitempty: true
any:
description: 'When Any is non-nil, T matches a set of labels if and only if some element of Any matches them.
Only one field may be non-nil.'
items:
$ref: '#/components/schemas/routeGroup.Match'
type: array
x-omitempty: true
label:
allOf:
- $ref: '#/components/schemas/routeGroup.MatchLabel'
description: 'When Label is non-nil, T matches a set of labels L if and only if t.Label.Matches(L).
Only one field may be non-nil.'
type: object
RouteGroup:
properties:
createdAt:
type: string
defaults:
$ref: '#/components/schemas/defaults.CompositeDefaults'
endpoints:
items:
$ref: '#/components/schemas/routegroups.EndpointURL'
type: array
x-omitempty: true
name:
type: string
routingKey:
type: string
spec:
$ref: '#/components/schemas/routeGroup.Spec'
status:
$ref: '#/components/schemas/routeGroup.Status'
updatedAt:
type: string
type: object
EmptyResponse:
type: object
routegroups.Endpoint:
properties:
cluster:
type: string
name:
type: string
target:
type: string
type: object
defaults.DefaultClass:
enum:
- ttl
type: string
x-enum-varnames:
- TTL
routeGroup.Spec:
properties:
cluster:
description: 'Cluster gives the cluster to which the route group applies.
If left empty, this RG will become a multi-cluster RG..'
type: string
description:
description: Description provides a short description of the route group.
type: string
endpoints:
description: 'Endpoints define endpoints which target different in-cluster
services.'
items:
$ref: '#/components/schemas/routegroups.Endpoint'
type: array
match:
allOf:
- $ref: '#/components/schemas/routeGroup.Match'
description: 'Match defines a matcher for labels, which matches
sandboxes that should be a part of this route group.'
ttl:
allOf:
- $ref: '#/components/schemas/routeGroup.TTL'
description: TTL define when/how the route group should be deleted
type: object
defaults.ResourceKind:
enum:
- sandbox
- routegroup
type: string
x-enum-varnames:
- SandboxResourceKind
- RouteGroupResourceKind
routeGroup.TTL:
properties:
duration:
description: "Duration represents the duration until routegroup's end of life.\nIt should be an unsigned integer not exceeding 32 bits followed by\na units character, which can be one of the following.\n - 'm' for minutes\n - 'h' for hours\n - 'd' for days\n - 'w' for weeks"
type: string
offsetFrom:
description: 'OffsetFrom indicates what the Duration is relative to. It
may be the empty string, "noMatchedSandboxes", "createdAt" or "updatedAt". The empty string
defaults to meaning "noMatchedSandboxes".'
type: string
type: object
routeGroup.MatchLabel:
properties:
key:
description: 'Key is an exact match on a label key, glob
characters are just considered normal characters.'
type: string
value:
description: 'Value is a glob match for the value of a
sandbox label. See https://pkg.go.dev/path/filepath#Match
for the file glob syntax.'
type: string
type: object
securitySchemes:
ApiKeyAuth:
in: header
name: signadot-api-key
type: apiKey