The Things Network / The Things Stack · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Things Stack — Identity Server Client Registry API
11 actions
11 updates
phrasing
extends
openapi/the-things-network-clientregistry-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for The Things Network / The Things Stack's API. It is a proposal applied on top of the contract, not a document The Things Network / The Things Stack publishes.
What the actions change
x-apievangelist-phrasing
Targets 11
$.info
$.paths['/clients'].get
$.paths['/clients/{client.ids.client_id}'].put
$.paths['/clients/{client_ids.client_id}'].get
$.paths['/clients/{client_id}'].delete
$.paths['/clients/{client_id}/purge'].delete
$.paths['/clients/{client_id}/restore'].post
$.paths['/organizations/{collaborator.organization_ids.organization_id}/clients'].get
$.paths['/organizations/{collaborator.organization_ids.organization_id}/clients'].post
$.paths['/users/{collaborator.user_ids.user_id}/clients'].get
$.paths['/users/{collaborator.user_ids.user_id}/clients'].post
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Things Stack — Identity Server Client Registry API
version: 1.0.0
extends: openapi/the-things-network-clientregistry-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 10
- target: $.paths['/clients'].get
update:
x-apievangelist-phrasing:
intent: List OAuth clients I can access
effect: read
questions:
- Which OAuth clients are registered that I have access to on The Things Stack?
- Can I include deleted OAuth clients when I list them?
instructions:
- text: List all OAuth clients I can access.
- text: List OAuth clients where user {user_id} is a direct collaborator.
slots:
user_id: query.collaborator.user_ids.user_id
method: generated
generated: '2026-09-26'
- target: $.paths['/clients/{client.ids.client_id}'].put
update:
x-apievangelist-phrasing:
intent: Update an OAuth client
effect: write
questions:
- How do I change the redirect URIs or name of an OAuth client?
- Can I update just some fields of an OAuth client with a field mask?
instructions:
- text: Update OAuth client {client_id} with the fields in {field_mask}.
slots:
client_id: path.client.ids.client_id
field_mask: requestBody.field_mask
- text: Change OAuth client {client_id} to {client}.
slots:
client_id: path.client.ids.client_id
client: requestBody.client
method: generated
generated: '2026-09-26'
- target: $.paths['/clients/{client_ids.client_id}'].get
update:
x-apievangelist-phrasing:
intent: Get an OAuth client
effect: read
questions:
- What is configured on a specific OAuth client?
- Can I fetch one OAuth client with only selected fields?
instructions:
- text: Show OAuth client {client_id}.
slots:
client_id: path.client_ids.client_id
- text: Get only the {field_mask} of OAuth client {client_id}.
slots:
field_mask: query.field_mask
client_id: path.client_ids.client_id
method: generated
generated: '2026-09-26'
- target: $.paths['/clients/{client_id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an OAuth client
effect: destructive
questions:
- How do I delete an OAuth client I no longer need?
- Does deleting an OAuth client make its ID available again?
instructions:
- text: Delete OAuth client {client_id}.
slots:
client_id: path.client_id
- text: Soft-delete OAuth client {client_id}.
slots:
client_id: path.client_id
method: generated
generated: '2026-09-26'
- target: $.paths['/clients/{client_id}/purge'].delete
update:
x-apievangelist-phrasing:
intent: Permanently purge an OAuth client
effect: destructive
questions:
- How do I purge an OAuth client so its client ID is released?
- Is purging an OAuth client reversible?
instructions:
- text: Purge OAuth client {client_id} permanently.
slots:
client_id: path.client_id
- text: Release client ID {client_id} for reuse by purging it.
slots:
client_id: path.client_id
method: generated
generated: '2026-09-26'
- target: $.paths['/clients/{client_id}/restore'].post
update:
x-apievangelist-phrasing:
intent: Restore a deleted OAuth client
effect: write
questions:
- Can I restore an OAuth client that was recently deleted?
- Is there a time window for recovering a deleted OAuth client?
instructions:
- text: Restore deleted OAuth client {client_id}.
slots:
client_id: path.client_id
- text: Undelete OAuth client {client_id}.
slots:
client_id: path.client_id
method: generated
generated: '2026-09-26'
- target: $.paths['/organizations/{collaborator.organization_ids.organization_id}/clients'].get
update:
x-apievangelist-phrasing:
intent: List an organization's OAuth clients
effect: read
questions:
- Which OAuth clients does an organization collaborate on?
- Can I page through an organization's OAuth clients?
instructions:
- text: List OAuth clients for organization {organization_id}.
slots:
organization_id: path.collaborator.organization_ids.organization_id
- text: Show the first {limit} OAuth clients of organization {organization_id}.
slots:
limit: query.limit
organization_id: path.collaborator.organization_ids.organization_id
method: generated
generated: '2026-09-26'
- target: $.paths['/organizations/{collaborator.organization_ids.organization_id}/clients'].post
update:
x-apievangelist-phrasing:
intent: Create an OAuth client under an organization
effect: write
questions:
- How do I register a new OAuth client owned by an organization?
- Does the owning organization get all rights on a new OAuth client?
instructions:
- text: Create OAuth client {client} under organization {organization_id}.
slots:
client: requestBody.client
organization_id: path.collaborator.organization_ids.organization_id
- text: Register OAuth app {client} owned by organization {organization_id}.
slots:
client: requestBody.client
organization_id: path.collaborator.organization_ids.organization_id
method: generated
generated: '2026-09-26'
- target: $.paths['/users/{collaborator.user_ids.user_id}/clients'].get
update:
x-apievangelist-phrasing:
intent: List a user's OAuth clients
effect: read
questions:
- What OAuth clients is a given user a collaborator on?
- Can I list only one user's OAuth clients, including deleted ones?
instructions:
- text: List OAuth clients for user {user_id}.
slots:
user_id: path.collaborator.user_ids.user_id
- text: 'List user {user_id}''s OAuth clients including deleted ones: {deleted}.'
slots:
user_id: path.collaborator.user_ids.user_id
deleted: query.deleted
method: generated
generated: '2026-09-26'
- target: $.paths['/users/{collaborator.user_ids.user_id}/clients'].post
update:
x-apievangelist-phrasing:
intent: Create an OAuth client under a user
effect: write
questions:
- How do I register an OAuth client under my own user account?
- Will my user be the first collaborator on an OAuth client I create?
instructions:
- text: Create OAuth client {client} under user {user_id}.
slots:
client: requestBody.client
user_id: path.collaborator.user_ids.user_id
- text: Register OAuth app {client} owned by my user {user_id}.
slots:
client: requestBody.client
user_id: path.collaborator.user_ids.user_id
method: generated
generated: '2026-09-26'
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.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.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/the-things-network-clientregistry-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API 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.