Omnisend · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Contacts API

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

What the actions change

x-apievangelist-phrasing

Targets 8

$.info
$.paths['/contacts'].get
$.paths['/contacts'].post
$.paths['/contacts'].patch
$.paths['/contacts/{id}'].get
$.paths['/contacts/{id}'].patch
$.paths['/contacts/tags'].post
$.paths['/contacts/tags'].delete

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 Contacts API
  version: 1.0.0
extends: openapi/omnisend-contacts-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-02'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 7
- target: $.paths['/contacts'].get
  update:
    x-apievangelist-phrasing:
      intent: List contacts
      effect: read
      questions:
      - Which contacts carry a specific tag?
      - Can I look up contacts by phone number?
      - What subscribers belong to a given segment?
      - Which contacts changed since a certain time?
      instructions:
      - text: List contacts tagged {tag}.
        slots:
          tag: query.tag
      - text: Find contacts with email {email}.
        slots:
          email: query.email
      - text: List contacts in segment {segmentID}.
        slots:
          segmentID: query.segmentID
      - text: List contacts updated since {updatedAtFrom}.
        slots:
          updatedAtFrom: query.updatedAtFrom
      method: generated
      generated: '2026-10-02'
- target: $.paths['/contacts'].post
  update:
    x-apievangelist-phrasing:
      intent: Create or upsert a contact
      effect: write
      questions:
      - How do I add a new subscriber, or update them if the email already exists?
      - Can I set custom properties and tags when creating a contact?
      instructions:
      - text: Create a contact with identifiers {identifiers}, first name {firstName} and last name {lastName}.
        slots:
          identifiers: requestBody.identifiers
          firstName: requestBody.firstName
          lastName: requestBody.lastName
      - text: Add a new contact with identifiers {identifiers} and tags {tags}.
        slots:
          identifiers: requestBody.identifiers
          tags: requestBody.tags
      method: generated
      generated: '2026-10-02'
- target: $.paths['/contacts'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a contact by email address
      effect: write
      questions:
      - Can I update a contact using only their email address?
      - What fields can I change on a contact when all I know is their email?
      instructions:
      - text: Update the contact with email {email} to first name {firstName}.
        slots:
          email: query.email
          firstName: requestBody.firstName
      - text: Change the city of the contact whose email is {email} to {city}.
        slots:
          email: query.email
          city: requestBody.city
      method: generated
      generated: '2026-10-02'
- target: $.paths['/contacts/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one contact by ID
      effect: read
      questions:
      - Can I fetch one contact's full profile by its contact ID?
      - What details are stored on the contact record with a given ID?
      instructions:
      - text: Show contact {id}.
        slots:
          id: path.id
      - text: Get the profile of the contact with ID {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-02'
- target: $.paths['/contacts/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a contact by ID
      effect: write
      questions:
      - How do I update a contact's details when I have their contact ID?
      - Can I change a contact's birthdate or gender by contact ID?
      instructions:
      - text: Update contact {id} with last name {lastName}.
        slots:
          id: path.id
          lastName: requestBody.lastName
      - text: Set custom properties {customProperties} on contact {id}.
        slots:
          customProperties: requestBody.customProperties
          id: path.id
      method: generated
      generated: '2026-10-02'
- target: $.paths['/contacts/tags'].post
  update:
    x-apievangelist-phrasing:
      intent: Add tags to many contacts
      effect: write
      questions:
      - Can I add a tag to every contact in a segment at once?
      - Is there a way to bulk tag a list of email addresses or phone numbers?
      instructions:
      - text: Add tags {tags} to the contacts with emails {emails}.
        slots:
          tags: requestBody.tags
          emails: requestBody.emails
      - text: Tag everyone in segment {segmentID} with {tags}.
        slots:
          segmentID: requestBody.segmentID
          tags: requestBody.tags
      method: generated
      generated: '2026-10-02'
- target: $.paths['/contacts/tags'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove tags from many contacts
      effect: destructive
      questions:
      - Can I remove a tag from many contacts in one call?
      - How can I strip tags from all members of a segment?
      instructions:
      - text: Remove tags {tags} from contacts {contactIDs}.
        slots:
          tags: requestBody.tags
          contactIDs: requestBody.contactIDs
      - text: Take tags {tags} off every contact in segment {segmentID}.
        slots:
          tags: requestBody.tags
          segmentID: requestBody.segmentID
      method: generated
      generated: '2026-10-02'

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/omnisend-contacts-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.