CHIRP Wireless Rules API
The Rules API from CHIRP Wireless — 2 operation(s) for rules.
The Rules API from CHIRP Wireless — 2 operation(s) for rules.
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/chirpwireless-io:chirpwireless-io-rules-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:
title: Chirpwireless Io Rules API
version: 1.0.0
description: 'Operations tagged Rules across 2 of this provider''s published API definitions: chirpwireless-io-openapi.yaml, chirpwireless-io-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.chirpwireless.io
description: Chirp API
security:
- ApiKeyAuth: []
OrgId: []
tags:
- name: Rules
paths:
/api/rule-definitions:
get:
operationId: listRuleDefinitions
summary: Rule definitions (read)
description: 'List, get, and query rule definitions. Endpoints: GET /api/rule-definitions (list), GET /api/rule-definitions/{id} (get by ID), GET /api/rule-definitions/deleted (list trashed), GET /api/rule-definitions/{id}/versions (list versions), GET /api/rule-definitions/{id}/builds (list builds).
**Required scope:** `rules:read`'
tags:
- Rules
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
type: object
properties:
id:
type: string
name:
type: string
description:
type: string
organizationId:
type: string
authorId:
type: string
version:
type: integer
status:
type: string
lockedByUserId:
type: string
createdAt:
type: string
updatedAt:
type: string
total:
type: integer
page:
type: integer
limit:
type: integer
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
parameters:
- name: organizationId
in: query
required: true
description: Organization ID
schema:
type: string
- name: page
in: query
required: false
description: Page number (default 1)
schema:
type: integer
- name: limit
in: query
required: false
description: Items per page (default 20)
schema:
type: integer
post:
operationId: createRuleDefinition
summary: Rule definitions (write — POST)
description: 'Create and action rule definitions. Endpoints: POST /api/rule-definitions (create), POST /api/rule-definitions/provision (one-click provision), POST /api/rule-definitions/{id}/clone (clone), POST /api/rule-definitions/{id}/lock (lock for editing), POST /api/rule-definitions/{id}/force-unlock (admin force unlock), POST /api/rule-definitions/{id}/restore (restore from trash), POST /api/rule-definitions/{id}/restore-version (restore historical version), POST /api/rule-definitions/{id}/deploy (deploy rule), POST /api/rule-definitions/{id}/stop (stop rule).
**Required scope:** `rules:write`'
tags:
- Rules
responses:
'200':
description: Created
content:
application/json:
schema:
type: object
properties:
ruleDefinition:
type: object
properties:
id:
type: string
name:
type: string
description:
type: string
organizationId:
type: string
authorId:
type: string
version:
type: integer
createdAt:
type: string
updatedAt:
type: string
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description:
type: string
organizationId:
type: string
bpmnXml:
type: string
description: Base64-encoded BPMN XML diagram
required:
- name
- organizationId
put:
operationId: updateRuleDefinition
summary: Rule definitions (write — PUT)
description: 'Update rule definitions. Endpoints: PUT /api/rule-definitions/{id} (update name/description), PUT /api/rule-definitions/{id}/save (save BPMN progress).
**Required scope:** `rules:write`'
tags:
- Rules
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
ruleDefinition:
type: object
properties:
id:
type: string
name:
type: string
description:
type: string
organizationId:
type: string
authorId:
type: string
version:
type: integer
createdAt:
type: string
updatedAt:
type: string
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
parameters:
- name: id
in: path
required: true
description: Rule definition ID
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description:
type: string
delete:
operationId: deleteRuleDefinition
summary: Rule definitions (write — DELETE)
description: 'Delete rule definitions and unlock. Endpoints: DELETE /api/rule-definitions/{id} (soft-delete / trash), DELETE /api/rule-definitions/{id}/lock (unlock and save), DELETE /api/rule-definitions/{id}/builds/{ruleVersionId} (delete a build).
**Required scope:** `rules:write`'
tags:
- Rules
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
message:
type: string
success:
type: boolean
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
parameters:
- name: id
in: path
required: true
description: Rule definition ID
schema:
type: string
patch:
operationId: patchRuleDefinition
summary: Rule definitions (write — PATCH)
description: 'Patch operations. Endpoints: PATCH /api/rule-definitions/{id}/builds/{ruleVersionId} (update build description).
**Required scope:** `rules:write`'
tags:
- Rules
responses:
'200':
description: Successful response
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
parameters:
- name: ruleDefinitionId
in: path
required: true
description: Rule definition ID
schema:
type: string
- name: ruleVersionId
in: path
required: true
description: Rule version ID of the build
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
description:
type: string
orgId:
type: string
required:
- orgId
servers:
- url: https://api.chirpwireless.io
description: Chirp API
/api/rule-versions:
post:
operationId: buildRuleVersion
summary: Rule versions (write — POST)
description: 'Build rule versions. Endpoints: POST /api/rule-versions/{ruleVersionId}/build (create a build from version).
**Required scope:** `rules:write`'
tags:
- Rules
responses:
'200':
description: Created
content:
application/json:
schema:
type: object
properties:
ruleVersionId:
type: string
ruleDefinitionId:
type: string
name:
type: string
description:
type: string
createdAt:
type: string
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
parameters:
- name: ruleVersionId
in: path
required: true
description: Rule version ID
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description:
type: string
orgId:
type: string
ruleDefinitionId:
type: string
required:
- orgId
- ruleDefinitionId
patch:
operationId: renameRuleVersion
summary: Rule versions (write — PATCH)
description: 'Rename rule versions. Endpoints: PATCH /api/rule-versions/{id}/name (rename a version).
**Required scope:** `rules:write`'
tags:
- Rules
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
ruleVersion:
type: object
properties:
id:
type: string
name:
type: string
version:
type: integer
createdAt:
type: string
updatedAt:
type: string
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
parameters:
- name: id
in: path
required: true
description: Rule version ID
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
required:
- name
servers:
- url: https://api.chirpwireless.io
description: Chirp API
components:
schemas:
Error:
type: object
required:
- error
- message
properties:
error:
type: string
message:
type: string
responses:
Unauthorized:
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error: unauthenticated
message: missing X-API-Key header
Forbidden:
description: Insufficient permissions (missing required scope)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error: permission_denied
message: 'API key lacks required scope: devices:write'
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: 'API key for authentication (format: `chirp_<key>`)'
OrgId:
type: apiKey
in: header
name: X-Organization-Id
description: Organization UUID that the API key belongs to
x-refined-from:
- chirpwireless-io-openapi.yaml
- chirpwireless-io-openapi.yml
x-tagGroups:
- name: REST API
tags:
- Users
- Devices
- Sensors
- Commands
- Telemetry
- Connections
- Connectors
- Dashboards
- Orgs
- Subscriptions
- Api-Keys
- Rules
- name: On-Prem / Advanced (gRPC)
tags:
- User Profile (gRPC)
- Digital Device (gRPC)
- Sensor Template (gRPC)
- Connector (gRPC)
- Connection (gRPC)
- Dashboard (gRPC)
- Widget (gRPC)
- Actuator Command (gRPC)
- Sensor Query (gRPC)
- Organizations (gRPC)
- Access Control (gRPC)