Iterable · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Iterable Users API

31 actions 31 updates phrasing extends openapi/iterable-users-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Iterable's API. It is a proposal applied on top of the contract, not a document Iterable publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 31 · first 16 shown; the file carries all of them

$.info
$.paths['/api/auth/jwts/invalidate'].post
$.paths['/api/users/bulkUpdate'].post
$.paths['/api/users/bulkUpdateSubscriptions'].post
$.paths['/api/users/byUserId'].get
$.paths['/api/users/byUserId/{userId}'].get
$.paths['/api/users/byUserId/{userId}'].delete
$.paths['/api/users/disableDevice'].post
$.paths['/api/users/forget'].post
$.paths['/api/users/forgotten'].get
$.paths['/api/users/forgottenUserIds'].get
$.paths['/api/users/getByEmail'].get
$.paths['/api/users/getFields'].get
$.paths['/api/users/getSentMessages'].get
$.paths['/api/users/merge'].post
$.paths['/api/users/registerBrowserToken'].post

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Iterable Users API
  version: 1.0.0
extends: openapi/iterable-users-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: 30
- target: $.paths['/api/auth/jwts/invalidate'].post
  update:
    x-apievangelist-phrasing:
      intent: Invalidate a user's JWTs
      effect: destructive
      questions:
      - How do I revoke all JWTs issued to a user, say after a password reset?
      - Can I invalidate only tokens issued before a certain time?
      instructions:
      - text: Invalidate all JWTs for {email}.
        slots:
          email: requestBody.email
      - text: Revoke JWTs for user {userId} issued before {issuedBefore}.
        slots:
          userId: requestBody.userId
          issuedBefore: requestBody.issuedBefore
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/bulkUpdate'].post
  update:
    x-apievangelist-phrasing:
      intent: Bulk update user profiles under /api
      effect: write
      questions:
      - Can I update many user profiles in one /api request without wiping omitted fields?
      - Will a bulk update create new user fields automatically?
      instructions:
      - text: Bulk update users {users}.
        slots:
          users: requestBody.users
      - text: Bulk update users {users} via /api/users, creating new fields {createNewFields}.
        slots:
          users: requestBody.users
          createNewFields: requestBody.createNewFields
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/bulkUpdateSubscriptions'].post
  update:
    x-apievangelist-phrasing:
      intent: Bulk overwrite user subscriptions
      effect: write
      questions:
      - Can I update subscription preferences for many users at once?
      - Does the bulk subscription update merge or overwrite existing values?
      instructions:
      - text: Bulk update subscriptions {updateSubscriptionsRequests}.
        slots:
          updateSubscriptionsRequests: requestBody.updateSubscriptionsRequests
      - text: 'Overwrite subscription settings for these users: {updateSubscriptionsRequests}.'
        slots:
          updateSubscriptionsRequests: requestBody.updateSubscriptionsRequests
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/byUserId'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user by userId as a query parameter
      effect: read
      questions:
      - Can I look up a user whose userId has slashes by passing it as a query parameter?
      - Which user lookup takes the userId in the query string?
      instructions:
      - text: Get the user with userId {userId} passed as a query parameter.
        slots:
          userId: query.userId
      - text: Look up user {userId} via /api/users/byUserId?userId=.
        slots:
          userId: query.userId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/byUserId/{userId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user by userId in the path
      effect: read
      questions:
      - How do I fetch a user's profile by userId with the userId in the /api URL path?
      - What profile data comes back for a userId lookup?
      instructions:
      - text: Get user profile for userId {userId}.
        slots:
          userId: path.userId
      - text: Fetch /api user {userId} by path.
        slots:
          userId: path.userId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/byUserId/{userId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a user by userId
      effect: destructive
      questions:
      - Does deleting a user by userId stop future data collection about them?
      - What happens if several users share the same userId when I delete one?
      instructions:
      - text: Delete user with userId {userId}.
        slots:
          userId: path.userId
      - text: Remove /api user profile {userId}.
        slots:
          userId: path.userId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/disableDevice'].post
  update:
    x-apievangelist-phrasing:
      intent: Disable push to a mobile device
      effect: write
      questions:
      - How do I stop push notifications to one of a user's devices?
      - Can I disable a device token without deleting the user?
      instructions:
      - text: Disable push for device token {token}.
        slots:
          token: requestBody.token
      - text: Turn off pushes to device {token} for {email}.
        slots:
          token: requestBody.token
          email: requestBody.email
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/forget'].post
  update:
    x-apievangelist-phrasing:
      intent: Forget a user for GDPR
      effect: destructive
      questions:
      - How do I honor a GDPR erasure request and stop collecting a user's data?
      - Does forgetting a user delete their data permanently?
      instructions:
      - text: Forget {email} for GDPR.
        slots:
          email: requestBody.email
      - text: Erase user {userId} and block future data collection.
        slots:
          userId: requestBody.userId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/forgotten'].get
  update:
    x-apievangelist-phrasing:
      intent: Get hashed emails of forgotten users
      effect: read
      questions:
      - Which email addresses have been forgotten under GDPR in my project?
      - Can I get a hashed list of forgotten emails to check against my records?
      instructions:
      - text: List hashed emails of forgotten users.
      - text: Export the GDPR-forgotten email hashes.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/forgottenUserIds'].get
  update:
    x-apievangelist-phrasing:
      intent: Get hashed userIds of forgotten users
      effect: read
      questions:
      - Which userIds have been forgotten under GDPR?
      - Can I export hashes of forgotten userIds?
      instructions:
      - text: List hashed userIds of forgotten users.
      - text: Export the GDPR-forgotten userId hashes.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/getByEmail'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user by email as a query parameter
      effect: read
      questions:
      - Can I look up a user whose email has special characters by passing it as a query parameter?
      - Which user lookup takes the email in the query string?
      instructions:
      - text: Get the user with email {email} passed as a query parameter.
        slots:
          email: query.email
      - text: Look up {email} via /api/users/getByEmail.
        slots:
          email: query.email
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/getFields'].get
  update:
    x-apievangelist-phrasing:
      intent: Get all user fields in the project
      effect: read
      questions:
      - What user profile fields exist in my /api project?
      - What's the rate limit on listing user fields?
      instructions:
      - text: List all user fields in my project.
      - text: Show user fields from /api/users/getFields.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/getSentMessages'].get
  update:
    x-apievangelist-phrasing:
      intent: Get messages sent to a user
      effect: read
      questions:
      - What messages have we sent to this user recently?
      - Can I filter a user's sent messages by channel and leave out blast campaigns?
      instructions:
      - text: Show messages sent to {email}.
        slots:
          email: query.email
      - text: List up to {limit} {messageMedium} messages sent to user {userId} since {startDateTime}.
        slots:
          limit: query.limit
          messageMedium: query.messageMedium
          userId: query.userId
          startDateTime: query.startDateTime
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/merge'].post
  update:
    x-apievangelist-phrasing:
      intent: Merge two users
      effect: write
      questions:
      - How do I merge a duplicate user into another profile?
      - Can I control how arrays are merged when combining two users?
      instructions:
      - text: Merge {sourceEmail} into {destinationEmail}.
        slots:
          sourceEmail: requestBody.sourceEmail
          destinationEmail: requestBody.destinationEmail
      - text: Merge user {sourceUserId} into user {destinationUserId} with array merge {arrayMerge}.
        slots:
          sourceUserId: requestBody.sourceUserId
          destinationUserId: requestBody.destinationUserId
          arrayMerge: requestBody.arrayMerge
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/registerBrowserToken'].post
  update:
    x-apievangelist-phrasing:
      intent: Register a browser token for web push
      effect: write
      questions:
      - How do I register a browser so a user can receive web push?
      - Can I attach a web push token to a user by userId?
      instructions:
      - text: Register browser token {browserToken} for {email}.
        slots:
          browserToken: requestBody.browserToken
          email: requestBody.email
      - text: Save web push token {browserToken} for user {userId}.
        slots:
          browserToken: requestBody.browserToken
          userId: requestBody.userId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/registerDeviceToken'].post
  update:
    x-apievangelist-phrasing:
      intent: Register a device token with merged device data
      effect: write
      questions:
      - Does registering a device token under /api merge device data fields?
      - Can I register a push device for a user identified by userId?
      instructions:
      - text: Register device {device} for {email}.
        slots:
          device: requestBody.device
          email: requestBody.email
      - text: Register /api device {device} for user {userId}, preferring userId {preferUserId}.
        slots:
          device: requestBody.device
          userId: requestBody.userId
          preferUserId: requestBody.preferUserId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/unforget'].post
  update:
    x-apievangelist-phrasing:
      intent: Resume data collection for a forgotten user
      effect: write
      questions:
      - Can I start collecting data again for a user I forgot under GDPR?
      - Is deleted data restored when I unforget a user?
      instructions:
      - text: Unforget {email}.
        slots:
          email: requestBody.email
      - text: Resume data collection for user {userId}.
        slots:
          userId: requestBody.userId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/update'].post
  update:
    x-apievangelist-phrasing:
      intent: Update or create a user with merged fields
      effect: write
      questions:
      - Can I update a user's data fields and merge nested objects under /api?
      - Does updating a user create them if they don't exist?
      instructions:
      - text: Update {email} with data {dataFields}.
        slots:
          email: requestBody.email
          dataFields: requestBody.dataFields
      - text: Update /api user {userId} with {dataFields}, merging nested objects {mergeNestedObjects}.
        slots:
          userId: requestBody.userId
          dataFields: requestBody.dataFields
          mergeNestedObjects: requestBody.mergeNestedObjects
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/updateEmail'].post
  update:
    x-apievangelist-phrasing:
      intent: Change a user's email address
      effect: write
      questions:
      - How do I change the email address on a user profile?
      - Can I update an email for a user found by userId?
      instructions:
      - text: Change {currentEmail} to {newEmail}.
        slots:
          currentEmail: requestBody.currentEmail
          newEmail: requestBody.newEmail
      - text: Set user {currentUserId}'s email to {newEmail}.
        slots:
          currentUserId: requestBody.currentUserId
          newEmail: requestBody.newEmail
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/updateSubscriptions'].post
  update:
    x-apievangelist-phrasing:
      intent: Overwrite a user's subscriptions
      effect: write
      questions:
      - How do I update which email lists and message types a user is subscribed to?
      - Can I unsubscribe a user from a whole channel?
      instructions:
      - text: Set {email}'s email lists to {emailListIds}.
        slots:
          email: requestBody.email
          emailListIds: requestBody.emailListIds
      - text: Unsubscribe {email} from message types {unsubscribedMessageTypeIds}.
        slots:
          email: requestBody.email
          unsubscribedMessageTypeIds: requestBody.unsubscribedMessageTypeIds
      - text: Unsubscribe user {userId} from channels {unsubscribedChannelIds}.
        slots:
          userId: requestBody.userId
          unsubscribedChannelIds: requestBody.unsubscribedChannelIds
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/{email}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user by email in the path
      effect: read
      questions:
      - Where can I pull up someone's profile when I know their email address?
      - What profile data is returned when I look up an email address?
      instructions:
      - text: Get the /api profile for {email}.
        slots:
          email: path.email
      - text: Fetch user {email} by path.
        slots:
          email: path.email
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/users/{email}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a user by email
      effect: destructive
      questions:
      - Does deleting a user by email under /api stop future data collection?
      - Can I delete a user profile by email address?
      instructions:
      - text: Delete the /api user {email}.
        slots:
          email: path.email
      - text: Remove user profile {email}.
        slots:
          email: path.email
      method: generated
      generated: '2026-10-01'
- target: $.paths['/users/update'].post
  update:
    x-apievangelist-phrasing:
      intent: Update a user profile (simple)
      effect: write
      questions:
      - Is there a plain /users/update call to create or update a profile?
      - Can I set data fields on a user with the basic endpoint?
      instructions:
      - text: Using /users/update, set {dataFields} on {email}.
        slots:
          dataFields: requestBody.dataFields
          email: requestBody.email
      - text: Update user {userId} with {dataFields} via the simple endpoint.
        slots:
          userId: requestBody.userId
          dataFields: requestBody.dataFields
      method: generated
      generated: '2026-10-01'
- target: $.paths['/users/bulkUpdate'].post
  update:
    x-apievangelist-phrasing:
      intent: Bulk update user profiles (simple)
      effect: write
      questions:
      - Can I update many profiles through the plain /users/bulkUpdate path?
      - Which basic call updates a batch of users at once?
      instructions:
      - text: Using /users/bulkUpdate, update users {users}.
        slots:
          users: requestBody.users
      - text: 'Bulk update these profiles with the simple endpoint: {users}.'
        slots:
          users: requestBody.users
      method: generated
      generated: '2026-10-01'
- target: $.paths['/users/{email}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user by email (simple)
      effect: read
      questions:
      - Is there a plain /users endpoint keyed by email that returns a profile with subscription preferences?
      - Which basic endpoint looks up a user by email?
      instructions:
      - text: Get user {email} from the plain /users endpoint.
        slots:
          email: path.email
      - text: Show the full profile and subscriptions for {email} via the simple endpoint.
        slots:
          email: path.email
      method: generated
      generated: '2026-10-01'
- target: $.paths['/users/{email}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a user by email (simple)
      effect: destructive
      questions:
      - Can I delete a user by email through the plain /users path?
      - Which basic call removes a user profile by email?
      instructions:
      - text: Delete user {email} using /users.
        slots:
          email: path.email
      - text: Remove profile {email} with the simple endpoint.
        slots:
          email: path.email
      method: generated
      generated: '2026-10-01'
- target: $.paths['/users/byUserId/{userId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user by userId (simple)
      effect: read
      questions:
      - Is there a plain /users/byUserId call that returns a profile with subscriptions?
      - Which basic endpoint looks up a user by userId?
      instructions:
      - text: Fetch the profile for user ID {userId} from the plain /users/byUserId path.
        slots:
          userId: path.userId
      - text: Show the full profile for user ID {userId} via the simple endpoint.
        slots:
          userId: path.userId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/users/byUserId/{userId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a user by userId (simple)
      effect: destructive
      questions:
      - Can I delete a user by userId through the plain /users path?
      - Which basic call removes a profile by userId?
      instructions:
      - text: Delete user ID {userId} using /users/byUserId.
        slots:
          userId: path.userId
      - text: Erase the profile of user ID {userId} via the simple byUserId path.
        slots:
          userId: path.userId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/users/getFields'].get
  update:
    x-apievangelist-phrasing:
      intent: Get user fields and types (simple)
      effect: read
      questions:
      - Which user fields and data types are defined, via the plain /users/getFields path?
      - What type is each user field?
      instructions:
      - text: List user fields with their types from the plain /users endpoint.
      - text: Show each user field's data type.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/users/registerDeviceToken'].post
  update:
    x-apievangelist-phrasing:
      intent: Register an APNs or FCM device token (simple)
      effect: write
      questions:
      - Is there a basic /users/registerDeviceToken call that takes an email?
      - How do I register an APNs or FCM token so a user gets push?
      instructions:
      - text: Using /users/registerDeviceToken, register {device} for {email}.
        slots:
          device: requestBody.device
          email: requestBody.email
      - text: Save APNs or FCM device {device} for {email} via the simple endpoint.
        slots:
          device: requestBody.device
          email: requestBody.email
      method: generated
      generated: '2026-10-01'

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.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/iterable-users-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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.