Microsoft Azure · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Microsoft Azure Azure Communication Service Routing API

34 actions 34 updates phrasing extends openapi/microsoft-azure-routing-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Microsoft Azure's API. It is a proposal applied on top of the contract, not a document Microsoft Azure publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

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

$.info
$.paths['/routing/classificationPolicies'].get
$.paths['/routing/classificationPolicies/{classificationPolicyId}'].get
$.paths['/routing/classificationPolicies/{classificationPolicyId}'].delete
$.paths['/routing/classificationPolicies/{classificationPolicyId}'].patch
$.paths['/routing/distributionPolicies'].get
$.paths['/routing/distributionPolicies/{distributionPolicyId}'].get
$.paths['/routing/distributionPolicies/{distributionPolicyId}'].delete
$.paths['/routing/distributionPolicies/{distributionPolicyId}'].patch
$.paths['/routing/exceptionPolicies'].get
$.paths['/routing/exceptionPolicies/{exceptionPolicyId}'].get
$.paths['/routing/exceptionPolicies/{exceptionPolicyId}'].delete
$.paths['/routing/exceptionPolicies/{exceptionPolicyId}'].patch
$.paths['/routing/jobs'].get
$.paths['/routing/jobs/{jobId}'].get
$.paths['/routing/jobs/{jobId}'].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 Microsoft Azure Azure Communication Service Routing API
  version: 1.0.0
extends: openapi/microsoft-azure-routing-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: 33
- target: $.paths['/routing/classificationPolicies'].get
  update:
    x-apievangelist-phrasing:
      intent: List job classification policies
      effect: read
      questions:
      - How do I see every classification policy set up in Job Router?
      - Which classification policies decide how incoming jobs get their queue and priority?
      instructions:
      - text: List all my Job Router classification policies.
      - text: Show up to {maxpagesize} classification policies per page.
        slots:
          maxpagesize: query.maxpagesize
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/classificationPolicies/{classificationPolicyId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a classification policy
      effect: read
      questions:
      - Can I look up the rules inside one specific classification policy?
      - What fallback queue does a given classification policy use?
      instructions:
      - text: Get classification policy {classificationPolicyId}.
        slots:
          classificationPolicyId: path.classificationPolicyId
      - text: Show me the queue selectors and prioritization rule on classification policy {classificationPolicyId}.
        slots:
          classificationPolicyId: path.classificationPolicyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/classificationPolicies/{classificationPolicyId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a classification policy
      effect: destructive
      questions:
      - How do I remove a classification policy I no longer use for routing jobs?
      - Can a classification policy be deleted by its id?
      instructions:
      - text: Delete classification policy {classificationPolicyId}.
        slots:
          classificationPolicyId: path.classificationPolicyId
      - text: Remove the job classification policy {classificationPolicyId} from Job Router.
        slots:
          classificationPolicyId: path.classificationPolicyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/classificationPolicies/{classificationPolicyId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Create or update a classification policy
      effect: write
      questions:
      - How do I set up a classification policy that assigns a fallback queue to jobs?
      - Can I change the prioritization rule on an existing classification policy?
      - Is there a way to attach worker selectors to jobs automatically when they are classified?
      instructions:
      - text: Create classification policy {classificationPolicyId} named {name} with fallback queue {fallbackQueueId}.
        slots:
          classificationPolicyId: path.classificationPolicyId
          name: requestBody.name
          fallbackQueueId: requestBody.fallbackQueueId
      - text: Update classification policy {classificationPolicyId} to use prioritization rule {prioritizationRule}.
        slots:
          classificationPolicyId: path.classificationPolicyId
          prioritizationRule: requestBody.prioritizationRule
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/distributionPolicies'].get
  update:
    x-apievangelist-phrasing:
      intent: List job distribution policies
      effect: read
      questions:
      - Where can I see all the distribution policies that control how job offers go out to workers?
      - Which distribution policies exist in my Job Router setup?
      instructions:
      - text: List all Job Router distribution policies.
      - text: Page through distribution policies {maxpagesize} at a time.
        slots:
          maxpagesize: query.maxpagesize
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/distributionPolicies/{distributionPolicyId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a distribution policy
      effect: read
      questions:
      - How long do offers last under a particular distribution policy?
      - Can I check which distribution mode a specific policy uses?
      instructions:
      - text: Get distribution policy {distributionPolicyId}.
        slots:
          distributionPolicyId: path.distributionPolicyId
      - text: Show the offer expiry and mode for distribution policy {distributionPolicyId}.
        slots:
          distributionPolicyId: path.distributionPolicyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/distributionPolicies/{distributionPolicyId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a distribution policy
      effect: destructive
      questions:
      - How do I get rid of a distribution policy no queue uses anymore?
      - Can I delete a job distribution policy by id?
      instructions:
      - text: Delete distribution policy {distributionPolicyId}.
        slots:
          distributionPolicyId: path.distributionPolicyId
      - text: Remove the distribution policy {distributionPolicyId} from Job Router.
        slots:
          distributionPolicyId: path.distributionPolicyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/distributionPolicies/{distributionPolicyId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Create or update a distribution policy
      effect: write
      questions:
      - How do I create a distribution policy that expires job offers after a set number of seconds?
      - Can I switch the distribution mode on an existing policy?
      instructions:
      - text: Create distribution policy {distributionPolicyId} named {name} with offers expiring after {offerExpiresAfterSeconds} seconds.
        slots:
          distributionPolicyId: path.distributionPolicyId
          name: requestBody.name
          offerExpiresAfterSeconds: requestBody.offerExpiresAfterSeconds
      - text: Set the mode of distribution policy {distributionPolicyId} to {mode}.
        slots:
          distributionPolicyId: path.distributionPolicyId
          mode: requestBody.mode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/exceptionPolicies'].get
  update:
    x-apievangelist-phrasing:
      intent: List job exception policies
      effect: read
      questions:
      - Which exception policies are defined for handling jobs that wait too long or overflow?
      - How can I view all Job Router exception policies?
      instructions:
      - text: List all Job Router exception policies.
      - text: Show exception policies with {maxpagesize} per page.
        slots:
          maxpagesize: query.maxpagesize
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/exceptionPolicies/{exceptionPolicyId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an exception policy
      effect: read
      questions:
      - What exception rules are inside one particular exception policy?
      - Can I inspect a single exception policy by its id?
      instructions:
      - text: Get exception policy {exceptionPolicyId}.
        slots:
          exceptionPolicyId: path.exceptionPolicyId
      - text: Show me the exception rules in policy {exceptionPolicyId}.
        slots:
          exceptionPolicyId: path.exceptionPolicyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/exceptionPolicies/{exceptionPolicyId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an exception policy
      effect: destructive
      questions:
      - How do I delete an exception policy from Job Router?
      - Can I remove an exception policy that queues no longer reference?
      instructions:
      - text: Delete exception policy {exceptionPolicyId}.
        slots:
          exceptionPolicyId: path.exceptionPolicyId
      - text: Remove the exception policy {exceptionPolicyId}.
        slots:
          exceptionPolicyId: path.exceptionPolicyId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/exceptionPolicies/{exceptionPolicyId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Create or update an exception policy
      effect: write
      questions:
      - How do I define exception rules that trigger when a job sits in a queue too long?
      - Can I rename or change the rules on an existing exception policy?
      instructions:
      - text: Create exception policy {exceptionPolicyId} named {name}.
        slots:
          exceptionPolicyId: path.exceptionPolicyId
          name: requestBody.name
      - text: Replace the exception rules on policy {exceptionPolicyId} with {exceptionRules}.
        slots:
          exceptionPolicyId: path.exceptionPolicyId
          exceptionRules: requestBody.exceptionRules
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/jobs'].get
  update:
    x-apievangelist-phrasing:
      intent: List router jobs with filters
      effect: read
      questions:
      - How do I find all router jobs sitting in a particular queue?
      - Can I filter jobs by status or by the channel they came in on?
      - Which jobs are scheduled to run before a certain time?
      instructions:
      - text: List router jobs with status {status}.
        slots:
          status: query.status
      - text: Show jobs in queue {queueId} on channel {channelId}.
        slots:
          queueId: query.queueId
          channelId: query.channelId
      - text: Find jobs scheduled after {scheduledAfter} and before {scheduledBefore}.
        slots:
          scheduledAfter: query.scheduledAfter
          scheduledBefore: query.scheduledBefore
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/jobs/{jobId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a router job
      effect: read
      questions:
      - Can I pull up the full details of one router job by its id?
      - What priority and labels does a specific job currently have?
      instructions:
      - text: Get router job {jobId}.
        slots:
          jobId: path.jobId
      - text: Show me the details of job {jobId}.
        slots:
          jobId: path.jobId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/jobs/{jobId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a job and its traces
      effect: destructive
      questions:
      - How do I permanently delete a router job along with all its traces?
      - Can I purge a job's history completely from Job Router?
      instructions:
      - text: Delete router job {jobId} and all of its traces.
        slots:
          jobId: path.jobId
      - text: Purge job {jobId} from Job Router.
        slots:
          jobId: path.jobId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/jobs/{jobId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Create or update a router job
      effect: write
      questions:
      - How do I submit a new job into a Job Router queue?
      - Can I change the priority of a job that's already waiting?
      - Is it possible to require specific worker selectors when creating a job?
      instructions:
      - text: Create job {jobId} on channel {channelId} in queue {queueId} with priority {priority}.
        slots:
          jobId: path.jobId
          channelId: requestBody.channelId
          queueId: requestBody.queueId
          priority: requestBody.priority
      - text: Update job {jobId} to use classification policy {classificationPolicyId}.
        slots:
          jobId: path.jobId
          classificationPolicyId: requestBody.classificationPolicyId
      - text: Add the notes {notes} to job {jobId}.
        slots:
          notes: requestBody.notes
          jobId: path.jobId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/jobs/{jobId}:reclassify'].post
  update:
    x-apievangelist-phrasing:
      intent: Reclassify a job
      effect: write
      questions:
      - How do I rerun classification on a job after its labels changed?
      - Can a waiting job be sent back through its classification policy?
      instructions:
      - text: Reclassify job {jobId}.
        slots:
          jobId: path.jobId
      - text: Run classification again on router job {jobId}.
        slots:
          jobId: path.jobId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/jobs/{jobId}:cancel'].post
  update:
    x-apievangelist-phrasing:
      intent: Cancel a router job
      effect: destructive
      questions:
      - How do I cancel a job before any worker picks it up?
      - Can I record a reason or disposition code when cancelling a job?
      instructions:
      - text: Cancel job {jobId}.
        slots:
          jobId: path.jobId
      - text: Cancel job {jobId} with the note {note} and disposition code {dispositionCode}.
        slots:
          jobId: path.jobId
          note: requestBody.note
          dispositionCode: requestBody.dispositionCode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/jobs/{jobId}/assignments/{assignmentId}:complete'].post
  update:
    x-apievangelist-phrasing:
      intent: Complete an assigned job
      effect: write
      questions:
      - How does a worker mark an assigned job as done?
      - Can I attach a note when completing a job assignment?
      instructions:
      - text: Complete assignment {assignmentId} of job {jobId}.
        slots:
          assignmentId: path.assignmentId
          jobId: path.jobId
      - text: Mark job {jobId} assignment {assignmentId} complete with note {note}.
        slots:
          jobId: path.jobId
          assignmentId: path.assignmentId
          note: requestBody.note
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/jobs/{jobId}/assignments/{assignmentId}:close'].post
  update:
    x-apievangelist-phrasing:
      intent: Close a completed job
      effect: destructive
      questions:
      - How do I close out a job that has already been completed?
      - Can I schedule a completed job to close at a later time with a disposition code?
      instructions:
      - text: Close job {jobId} for assignment {assignmentId}.
        slots:
          jobId: path.jobId
          assignmentId: path.assignmentId
      - text: Close completed job {jobId} assignment {assignmentId} at {closeAt} with disposition {dispositionCode}.
        slots:
          jobId: path.jobId
          assignmentId: path.assignmentId
          closeAt: requestBody.closeAt
          dispositionCode: requestBody.dispositionCode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/jobs/{jobId}/assignments/{assignmentId}:unassign'].post
  update:
    x-apievangelist-phrasing:
      intent: Unassign a job from a worker
      effect: write
      questions:
      - How do I take a job back from the worker it was assigned to?
      - Can I unassign a job and stop it from being matched again right away?
      instructions:
      - text: Unassign job {jobId} from assignment {assignmentId}.
        slots:
          jobId: path.jobId
          assignmentId: path.assignmentId
      - text: Unassign job {jobId} assignment {assignmentId} and set suspend matching to {suspendMatching}.
        slots:
          jobId: path.jobId
          assignmentId: path.assignmentId
          suspendMatching: requestBody.suspendMatching
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/jobs/{jobId}/position'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a job's position in its queue
      effect: read
      questions:
      - Where is my job in the queue right now?
      - How many jobs are ahead of a particular waiting job?
      instructions:
      - text: Get the queue position of job {jobId}.
        slots:
          jobId: path.jobId
      - text: Tell me where job {jobId} sits in its queue.
        slots:
          jobId: path.jobId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/queues'].get
  update:
    x-apievangelist-phrasing:
      intent: List job queues
      effect: read
      questions:
      - What queues are configured in Job Router?
      - How can I list every queue jobs can be routed to?
      instructions:
      - text: List all Job Router queues.
      - text: Show queues {maxpagesize} per page.
        slots:
          maxpagesize: query.maxpagesize
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/queues/{queueId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a queue's configuration
      effect: read
      questions:
      - Which distribution and exception policies does one queue use?
      - Can I read the labels set on a specific queue?
      instructions:
      - text: Get queue {queueId}.
        slots:
          queueId: path.queueId
      - text: Show the policies attached to queue {queueId}.
        slots:
          queueId: path.queueId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/queues/{queueId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a queue
      effect: destructive
      questions:
      - How do I delete a Job Router queue I no longer need?
      - Can a queue be removed by its id?
      instructions:
      - text: Delete queue {queueId}.
        slots:
          queueId: path.queueId
      - text: Remove Job Router queue {queueId}.
        slots:
          queueId: path.queueId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/queues/{queueId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Create or update a queue
      effect: write
      questions:
      - How do I create a new queue with its own distribution policy?
      - Can I attach an exception policy to an existing queue?
      instructions:
      - text: Create queue {queueId} named {name} using distribution policy {distributionPolicyId}.
        slots:
          queueId: path.queueId
          name: requestBody.name
          distributionPolicyId: requestBody.distributionPolicyId
      - text: Attach exception policy {exceptionPolicyId} to queue {queueId}.
        slots:
          exceptionPolicyId: requestBody.exceptionPolicyId
          queueId: path.queueId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/queues/{queueId}/statistics'].get
  update:
    x-apievangelist-phrasing:
      intent: Get queue statistics
      effect: read
      questions:
      - How many jobs are waiting in a queue and how long have they waited?
      - Is there a way to see live statistics for a single queue?
      instructions:
      - text: Get statistics for queue {queueId}.
        slots:
          queueId: path.queueId
      - text: Show me the current wait metrics for queue {queueId}.
        slots:
          queueId: path.queueId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/workers'].get
  update:
    x-apievangelist-phrasing:
      intent: List router workers
      effect: read
      questions:
      - Which workers are currently active and have capacity to take jobs?
      - Can I list workers that serve a specific queue or channel?
      instructions:
      - text: List workers in state {state}.
        slots:
          state: query.state
      - text: Show workers on queue {queueId} with capacity available set to {hasCapacity}.
        slots:
          queueId: query.queueId
          hasCapacity: query.hasCapacity
      - text: List workers registered for channel {channelId}.
        slots:
          channelId: query.channelId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/workers/{workerId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a router worker
      effect: read
      questions:
      - What queues and channels is a specific worker registered for?
      - Can I check whether one worker is available for offers?
      instructions:
      - text: Get worker {workerId}.
        slots:
          workerId: path.workerId
      - text: Show the capacity and offers for worker {workerId}.
        slots:
          workerId: path.workerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/workers/{workerId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a worker and its traces
      effect: destructive
      questions:
      - How do I remove a worker and all its history from Job Router?
      - Can I delete a worker who has left the team?
      instructions:
      - text: Delete worker {workerId} and all of its traces.
        slots:
          workerId: path.workerId
      - text: Remove worker {workerId} from Job Router.
        slots:
          workerId: path.workerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/workers/{workerId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Create or update a worker
      effect: write
      questions:
      - How do I register a new worker with a set capacity?
      - Can I toggle whether a worker is available for job offers?
      - What limits how many offers a worker gets at once?
      instructions:
      - text: Register worker {workerId} with capacity {capacity}.
        slots:
          workerId: path.workerId
          capacity: requestBody.capacity
      - text: Set worker {workerId} available for offers to {availableForOffers}.
        slots:
          workerId: path.workerId
          availableForOffers: requestBody.availableForOffers
      - text: Limit worker {workerId} to {maxConcurrentOffers} concurrent offers.
        slots:
          workerId: path.workerId
          maxConcurrentOffers: requestBody.maxConcurrentOffers
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/workers/{workerId}/offers/{offerId}:accept'].post
  update:
    x-apievangelist-phrasing:
      intent: Accept a job offer
      effect: write
      questions:
      - How does a worker accept an offer to work on a job?
      - What happens if another agent already accepted the same job offer?
      instructions:
      - text: Accept offer {offerId} for worker {workerId}.
        slots:
          offerId: path.offerId
          workerId: path.workerId
      - text: Have worker {workerId} take the job in offer {offerId}.
        slots:
          workerId: path.workerId
          offerId: path.offerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/routing/workers/{workerId}/offers/{offerId}:decline'].post
  update:
    x-apievangelist-phrasing:
      intent: Decline a job offer
      effect: write
      questions:
      - How can a worker turn down a job offer?
      - Can I decline an offer but have it retried at a later time?
      instructions:
      - text: Decline offer {offerId} for worker {workerId}.
        slots:
          offerId: path.offerId
          workerId: path.workerId
      - text: Decline offer {offerId} for worker {workerId} and retry it at {retryOfferAt}.
        slots:
          offerId: path.offerId
          workerId: path.workerId
          retryOfferAt: requestBody.retryOfferAt
      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.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/microsoft-azure-routing-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.