Clix · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Clix So Clix External Service API
12 actions
12 updates
phrasing
extends
openapi/clix-so-clixexternalservice-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Clix's API. It is a proposal applied on top of the contract, not a document Clix publishes.
What the actions change
x-apievangelist-phrasing
Targets 12
$.info
$.paths['/api/v1/devices'].post
$.paths['/api/v1/devices/{deviceId}/user/project-user-id'].post
$.paths['/api/v1/devices/{deviceId}/user/properties'].post
$.paths['/api/v1/events'].post
$.paths['/api/v1/health'].get
$.paths['/api/v1/messages:send'].post
$.paths['/api/v1/users'].post
$.paths['/api/v1/users/{project_user_id}'].delete
$.paths['/api/v1/users/{project_user_id}'].patch
$.paths['/api/v1/live-activities:start'].post
$.paths['/api/v1/campaigns/{campaign_id}:trigger'].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 Clix So Clix External Service API
version: 1.0.0
extends: openapi/clix-so-clixexternalservice-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-01'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 11
- target: $.paths['/api/v1/devices'].post
update:
x-apievangelist-phrasing:
intent: Register or update app devices
effect: write
questions:
- Can I register new app installs as devices in Clix so they can receive messages?
- What happens if I send a device record that already exists, does it get updated?
- Is there a way to upsert several devices in one request?
instructions:
- text: 'Register these devices with Clix, updating any that already exist: {devices}.'
slots:
devices: requestBody.devices
- text: Upsert the device records for my latest app installs.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/devices/{deviceId}/user/project-user-id'].post
update:
x-apievangelist-phrasing:
intent: Link a device to a project user ID
effect: write
questions:
- How do I associate a device with my own user ID after someone logs in?
- Can I change which project user ID a specific device belongs to?
instructions:
- text: Link device {deviceId} to project user ID {project_user_id}.
slots:
deviceId: path.deviceId
project_user_id: requestBody.project_user_id
- text: Set the project user ID on device {deviceId} to the logged-in user's ID.
slots:
deviceId: path.deviceId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/devices/{deviceId}/user/properties'].post
update:
x-apievangelist-phrasing:
intent: Set user properties via a device ID
effect: write
questions:
- Can I update a user's properties when I only know their device ID?
- How do I attach attributes like plan or locale to the user behind a device?
instructions:
- text: Set properties {properties} on the user linked to device {deviceId}.
slots:
properties: requestBody.properties
deviceId: path.deviceId
- text: Upsert the user properties for whoever owns device {deviceId}.
slots:
deviceId: path.deviceId
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/events'].post
update:
x-apievangelist-phrasing:
intent: Track user events
effect: write
questions:
- How do I send in-app events like purchases or sign-ups to Clix?
- Can I record a batch of user events in a single call?
instructions:
- text: 'Record these tracking events: {events}.'
slots:
events: requestBody.events
- text: Log a batch of user activity events from today's sessions.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/health'].get
update:
x-apievangelist-phrasing:
intent: Check that the service is up
effect: read
questions:
- Is the external service API currently healthy and reachable?
- What endpoint can I ping to verify the API is responding?
instructions:
- text: Run a health check against the API.
- text: Ping the service to confirm it is up before sending traffic.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/messages:send'].post
update:
x-apievangelist-phrasing:
intent: Send push notifications to devices
effect: write
questions:
- How do I send a push notification to a user's phone?
- How many push notifications should I include per request?
- Can one call push messages to several user devices at once?
instructions:
- text: 'Send these push notifications: {push_notifications}.'
slots:
push_notifications: requestBody.push_notifications
- text: Push a notification to each of these user devices, keeping it under 500 per call.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/users'].post
update:
x-apievangelist-phrasing:
intent: Create a user
effect: write
questions:
- How do I create a new user record keyed by my own user ID?
- Can I set initial properties when I first create a user?
instructions:
- text: Create a new user with project user ID {project_user_id}.
slots:
project_user_id: requestBody.project_user_id
- text: Create user {project_user_id} with starting properties {properties}.
slots:
project_user_id: requestBody.project_user_id
properties: requestBody.properties
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/users/{project_user_id}'].delete
update:
x-apievangelist-phrasing:
intent: Permanently delete a user
effect: destructive
questions:
- How do I permanently remove a user and all their data?
- Does deleting a user also wipe the data associated with them?
instructions:
- text: Delete user {project_user_id} and all of their data.
slots:
project_user_id: path.project_user_id
- text: Permanently erase the user with project user ID {project_user_id}.
slots:
project_user_id: path.project_user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/users/{project_user_id}'].patch
update:
x-apievangelist-phrasing:
intent: Update an existing user's properties
effect: write
questions:
- How do I change properties on a user I already created, using their project user ID?
- Can I modify just a few attributes of an existing user?
instructions:
- text: Update existing user {project_user_id} with properties {properties}.
slots:
project_user_id: path.project_user_id
properties: requestBody.properties
- text: Patch the profile of user {project_user_id} with their new subscription tier.
slots:
project_user_id: path.project_user_id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/live-activities:start'].post
update:
x-apievangelist-phrasing:
intent: Start iOS Live Activities on devices
effect: write
questions:
- How do I start an iOS Live Activity remotely using Push to Start?
- Can I launch Live Activities on several users' iPhones in one request?
instructions:
- text: 'Start these Live Activities on user devices: {live_activities}.'
slots:
live_activities: requestBody.live_activities
- text: Kick off a delivery-tracking Live Activity on the customer's iPhone.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v1/campaigns/{campaign_id}:trigger'].post
update:
x-apievangelist-phrasing:
intent: Trigger an API-triggered campaign
effect: write
questions:
- How do I fire an API-triggered campaign from my backend?
- Can I pass personalization properties when triggering a campaign?
- Is it possible to target a specific audience when a campaign is triggered?
instructions:
- text: Trigger campaign {campaign_id}.
slots:
campaign_id: path.campaign_id
- text: Trigger campaign {campaign_id} for audience {audience} with personalization {properties}.
slots:
campaign_id: path.campaign_id
audience: requestBody.audience
properties: requestBody.properties
method: generated
generated: '2026-10-01'