Aptly RoutingGroups API
The RoutingGroups API from Aptly — 4 operation(s) for routinggroups.
The RoutingGroups API from Aptly — 4 operation(s) for routinggroups.
openapi: 3.0.3
info:
title: Aptly App RoutingGroups API
version: '1.0'
description: 'The Aptly API lets you read and write cards on any Aptly board from external systems.
All requests require an API key passed as the `x-token` header.
API keys are scoped to your company and work across all boards.
'
servers:
- url: https://core-api.getaptly.com
description: Production
security:
- ApiKeyHeader: []
tags:
- name: RoutingGroups
paths:
/api/routing-groups:
get:
summary: List routing groups
description: Returns all active routing groups for the authenticated company.
operationId: listRoutingGroups
tags:
- RoutingGroups
security:
- ApiKeyHeader: []
- DelegateToken: []
responses:
'200':
description: Array of routing groups.
content:
application/json:
schema:
type: array
items:
type: object
properties:
_id:
type: string
name:
type: string
type:
type: string
enum:
- simultaneous
- sequential
destination:
type: object
ringDurationSeconds:
type: number
callerExperience:
type: object
maxWaitSeconds:
type: number
overflow:
type: object
archived:
type: boolean
'401':
description: Invalid or missing credential.
/api/routing-groups/create:
post:
summary: Create a routing group
description: Creates a new routing group for the authenticated company. Returns the new group's ID.
operationId: createRoutingGroup
tags:
- RoutingGroups
security:
- ApiKeyHeader: []
- DelegateToken: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- name
- type
properties:
name:
type: string
description: Display name for the routing group.
type:
type: string
enum:
- simultaneous
- sequential
description: Ring mode. `simultaneous` rings all members at once; `sequential` tries each in order.
destination:
type: object
description: Ring target configuration. Supports `ringType` of `user`, `phone`, `browser`, `agent`, or `multi`.
ringDurationSeconds:
type: number
description: How long (in seconds) to ring each target before moving on. Defaults to 20.
callerExperience:
type: object
description: Caller-side experience config. Set `mode` to `ring` (default) or `hold-music`.
maxWaitSeconds:
type: number
description: Maximum time (in seconds) a caller will wait before overflow handling triggers.
overflow:
type: object
description: Overflow/voicemail config. Supports `greetingText` and `voicemailNotification` (array of emails).
example:
name: Support Queue
type: simultaneous
destination:
ringType: multi
ringToList: []
ringDurationSeconds: 20
callerExperience:
mode: ring
responses:
'200':
description: Routing group created.
content:
application/json:
schema:
type: object
properties:
_id:
type: string
description: ID of the created routing group.
'400':
description: Missing or invalid field (`name` required; `type` must be simultaneous or sequential).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Invalid or missing credential.
/api/routing-groups/{id}:
put:
summary: Update a routing group
description: 'Updates an existing routing group. All fields are optional — only provided fields are changed.
Pass `null` for a field to clear it.
'
operationId: updateRoutingGroup
tags:
- RoutingGroups
security:
- ApiKeyHeader: []
- DelegateToken: []
parameters:
- name: id
in: path
required: true
schema:
type: string
description: The routing group ID.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
type:
type: string
enum:
- simultaneous
- sequential
destination:
type: object
description: Ring target configuration.
ringDurationSeconds:
type: number
callerExperience:
type: object
maxWaitSeconds:
type: number
overflow:
type: object
example:
name: Support Queue
ringDurationSeconds: 30
overflow:
greetingText: Please leave a message.
voicemailNotification:
- support@example.com
responses:
'200':
description: Routing group updated.
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
'400':
description: Invalid field value (e.g. unrecognized `type`).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Invalid or missing credential.
'404':
description: Routing group not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/api/routing-groups/{id}/archive:
post:
summary: Archive a routing group
description: Soft-deletes a routing group. Archived groups are excluded from list results and cannot be updated.
operationId: archiveRoutingGroup
tags:
- RoutingGroups
security:
- ApiKeyHeader: []
- DelegateToken: []
parameters:
- name: id
in: path
required: true
schema:
type: string
description: The routing group ID.
responses:
'200':
description: Routing group archived.
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
'401':
description: Invalid or missing credential.
'404':
description: Routing group not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
Error:
type: object
properties:
error:
type: string
message:
type: string
securitySchemes:
ApiKeyHeader:
type: apiKey
in: header
name: x-token
DelegateToken:
type: apiKey
in: header
name: Authorization
description: 'Delegate token issued by the platform. Format: `DelegateToken <token>`'
PartnerBearer:
type: http
scheme: bearer
description: 'Partner token. Format: `Authorization: Bearer <token>`'