Algolia · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Composition API

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

What the actions change

x-apievangelist-phrasing

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

$.info
$.paths['/{path}'].get
$.paths['/{path}'].put
$.paths['/{path}'].post
$.paths['/{path}'].delete
$.paths['/1/compositions/{compositionID}/run'].post
$.paths['/1/compositions/{compositionID}/facets/{facetName}/query'].post
$.paths['/1/compositions'].get
$.paths['/1/compositions/{compositionID}'].get
$.paths['/1/compositions/{compositionID}'].put
$.paths['/1/compositions/{compositionID}'].delete
$.paths['/1/compositions/*/batch'].post
$.paths['/1/compositions/{compositionID}/sortingStrategy'].post
$.paths['/1/compositions/{compositionID}/rules/{objectID}'].get
$.paths['/1/compositions/{compositionID}/rules/{objectID}'].put
$.paths['/1/compositions/{compositionID}/rules/{objectID}'].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 Composition API
  version: 1.0.0
extends: openapi/algolia-composition-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: 20
- target: $.paths['/{path}'].get
  update:
    x-apievangelist-phrasing:
      intent: Send a raw GET request to the Composition API
      effect: read
      questions:
      - Can I read a Composition endpoint that the client library doesn't wrap?
      - Is there a generic way to GET any Composition API path with custom query parameters?
      instructions:
      - text: Send a raw GET request to Composition API path {path}.
        slots:
          path: path.path
      - text: Fetch Composition path {path} with query parameters {parameters}.
        slots:
          path: path.path
          parameters: query.parameters
      method: generated
      generated: '2026-09-26'
- target: $.paths['/{path}'].put
  update:
    x-apievangelist-phrasing:
      intent: Send a raw PUT request to the Composition API
      effect: write
      questions:
      - Can I send a custom PUT to a Composition path that has no dedicated method?
      - Is there a passthrough for PUT calls on an arbitrary Composition endpoint?
      instructions:
      - text: Send a raw PUT request to Composition API path {path}.
        slots:
          path: path.path
      - text: PUT to Composition path {path} with query parameters {parameters}.
        slots:
          path: path.path
          parameters: query.parameters
      method: generated
      generated: '2026-09-26'
- target: $.paths['/{path}'].post
  update:
    x-apievangelist-phrasing:
      intent: Send a raw POST request to the Composition API
      effect: write
      questions:
      - Can I POST to a Composition endpoint the SDK doesn't expose as a method?
      - What's the generic escape hatch for posting to any Composition API path?
      instructions:
      - text: Send a raw POST request to Composition API path {path}.
        slots:
          path: path.path
      - text: POST to Composition path {path} with query parameters {parameters}.
        slots:
          path: path.path
          parameters: query.parameters
      method: generated
      generated: '2026-09-26'
- target: $.paths['/{path}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Send a raw DELETE request to the Composition API
      effect: destructive
      questions:
      - Can I issue a DELETE against an arbitrary Composition API path?
      - Is there a generic delete call for Composition endpoints without a dedicated method?
      instructions:
      - text: Send a raw DELETE request to Composition API path {path}.
        slots:
          path: path.path
      - text: DELETE Composition path {path} with query parameters {parameters}.
        slots:
          path: path.path
          parameters: query.parameters
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1/compositions/{compositionID}/run'].post
  update:
    x-apievangelist-phrasing:
      intent: Run a search query against a composition
      effect: read
      questions:
      - How do I get search results from a composition instead of querying an index directly?
      - Can I control the order in which a composition's feeds come back?
      instructions:
      - text: Run a search on composition {compositionID} with parameters {params}.
        slots:
          compositionID: path.compositionID
          params: requestBody.params
      - text: Query composition {compositionID} and return feeds in order {feedsOrder}.
        slots:
          compositionID: path.compositionID
          feedsOrder: requestBody.feedsOrder
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1/compositions/{compositionID}/facets/{facetName}/query'].post
  update:
    x-apievangelist-phrasing:
      intent: Search facet values in a composition's main source
      effect: read
      questions:
      - How do I autocomplete brand names from a facet on my composition's main index?
      - Can I search within one facet's values instead of the records themselves?
      instructions:
      - text: Search values of facet {facetName} in composition {compositionID}.
        slots:
          facetName: path.facetName
          compositionID: path.compositionID
      - text: Find facet values of {facetName} in composition {compositionID} matching {params}.
        slots:
          facetName: path.facetName
          compositionID: path.compositionID
          params: requestBody.params
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1/compositions'].get
  update:
    x-apievangelist-phrasing:
      intent: List compositions in the application
      effect: read
      questions:
      - Which compositions exist in my Algolia application?
      - Can I page through my compositions a set number at a time?
      instructions:
      - text: List all compositions in my application.
      - text: Show page {page} of my compositions, {hitsPerPage} per page.
        slots:
          page: query.page
          hitsPerPage: query.hitsPerPage
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1/compositions/{compositionID}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one composition's configuration
      effect: read
      questions:
      - How do I see how a specific composition is configured?
      - What behavior and sorting strategy does one composition use?
      instructions:
      - text: Show composition {compositionID}.
        slots:
          compositionID: path.compositionID
      - text: Retrieve the full configuration of composition {compositionID}.
        slots:
          compositionID: path.compositionID
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1/compositions/{compositionID}'].put
  update:
    x-apievangelist-phrasing:
      intent: Create or replace a composition
      effect: write
      questions:
      - How do I create a new composition that blends results from my indices?
      - Can I overwrite an existing composition's name and behavior in one call?
      instructions:
      - text: Upsert composition {compositionID} named {name} with behavior {behavior}.
        slots:
          compositionID: path.compositionID
          name: requestBody.name
          behavior: requestBody.behavior
      - text: Create composition {compositionID} called {name}, described as {description}, with behavior {behavior}.
        slots:
          compositionID: path.compositionID
          name: requestBody.name
          description: requestBody.description
          behavior: requestBody.behavior
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1/compositions/{compositionID}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a composition
      effect: destructive
      questions:
      - How do I remove a composition I no longer use?
      - Can I delete a single composition by its ID?
      instructions:
      - text: Delete composition {compositionID}.
        slots:
          compositionID: path.compositionID
      - text: Remove composition {compositionID} from my application.
        slots:
          compositionID: path.compositionID
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1/compositions/*/batch'].post
  update:
    x-apievangelist-phrasing:
      intent: Add, update or delete many compositions at once
      effect: write
      questions:
      - How do I create and delete several compositions in a single request?
      - Can I batch changes across multiple compositions instead of calling them one by one?
      instructions:
      - text: 'Apply this batch of composition changes: {requests}.'
        slots:
          requests: requestBody.requests
      - text: Upsert and delete compositions in one batch using {requests}.
        slots:
          requests: requestBody.requests
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1/compositions/{compositionID}/sortingStrategy'].post
  update:
    x-apievangelist-phrasing:
      intent: Set a composition's sorting strategy
      effect: write
      questions:
      - How do I let users sort a composition's results using a replica index?
      - Can I replace only the sorting strategy mapping without rewriting the whole composition?
      instructions:
      - text: Update the sorting strategy of composition {compositionID}.
        slots:
          compositionID: path.compositionID
      - text: Replace just the sort-by-replica mapping on composition {compositionID}.
        slots:
          compositionID: path.compositionID
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1/compositions/{compositionID}/rules/{objectID}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one composition rule
      effect: read
      questions:
      - How do I view the conditions and consequence of a single composition rule?
      - Where do I look up a composition rule when I already know its object ID?
      instructions:
      - text: Show rule {objectID} in composition {compositionID}.
        slots:
          objectID: path.objectID
          compositionID: path.compositionID
      - text: Retrieve composition rule {objectID} from {compositionID}.
        slots:
          objectID: path.objectID
          compositionID: path.compositionID
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1/compositions/{compositionID}/rules/{objectID}'].put
  update:
    x-apievangelist-phrasing:
      intent: Add or replace a single composition rule
      effect: write
      questions:
      - How do I add a merchandising rule to one composition?
      - Can I schedule a composition rule to be valid only during a promotion window?
      instructions:
      - text: Save rule {objectID} on composition {compositionID} with consequence {consequence}.
        slots:
          objectID: path.objectID
          compositionID: path.compositionID
          consequence: requestBody.consequence
      - text: Add rule {objectID} to composition {compositionID} with conditions {conditions}, consequence {consequence}, valid during {validity}.
        slots:
          objectID: path.objectID
          compositionID: path.compositionID
          conditions: requestBody.conditions
          consequence: requestBody.consequence
          validity: requestBody.validity
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1/compositions/{compositionID}/rules/{objectID}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a single composition rule
      effect: destructive
      questions:
      - How do I remove one rule from a composition?
      - Can I delete a composition rule by its object ID?
      instructions:
      - text: Delete rule {objectID} from composition {compositionID}.
        slots:
          objectID: path.objectID
          compositionID: path.compositionID
      - text: Remove composition rule {objectID} in {compositionID}.
        slots:
          objectID: path.objectID
          compositionID: path.compositionID
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1/compositions/{compositionID}/rules/batch'].post
  update:
    x-apievangelist-phrasing:
      intent: Batch create, update or delete composition rules
      effect: write
      questions:
      - How do I upload many composition rules in one request?
      - Can I mix rule additions and deletions for one composition in a single batch?
      instructions:
      - text: 'Apply this batch of rule changes to composition {compositionID}: {requests}.'
        slots:
          compositionID: path.compositionID
          requests: requestBody.requests
      - text: Bulk save and delete rules on composition {compositionID}.
        slots:
          compositionID: path.compositionID
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1/compositions/{compositionID}/rules/search'].post
  update:
    x-apievangelist-phrasing:
      intent: Search a composition's rules
      effect: read
      questions:
      - How do I find which composition rules mention a certain keyword?
      - Can I list only the enabled rules on a composition?
      - Which rules on a composition are anchored to a query pattern or context?
      instructions:
      - text: Search rules in composition {compositionID} for {query}.
        slots:
          compositionID: path.compositionID
          query: requestBody.query
      - text: List enabled={enabled} rules in composition {compositionID} for context {context}.
        slots:
          enabled: requestBody.enabled
          compositionID: path.compositionID
          context: requestBody.context
      method: generated
      generated: '2026-09-26'
- target: $.paths['/1/compositions/{compositionID}/task/{taskID}'].get
  update:
    x-apievangelist-phrasing:
      intent: Check the status of a composition task
      effect: read
      questions:
      - Has my composition update finished being applied yet?
      - How do I check whether a composition write task is still pending?
      instructions:
      - text: Check the status of task {taskID} on composition {compositionID}.
        slots:
          taskID: path.taskID
          compositionID: path.compositionID
      - text: Tell me once whether composition {compositionID} task {taskID} is published or still pending.
        slots:
          compositionID: path.compositionID
          taskID: path.taskID
      method: generated
      generated: '2026-09-26'
- target: $.paths['/setClientApiKey'].get
  update:
    x-apievangelist-phrasing:
      intent: Switch the API key the Composition client uses
      effect: write
      questions:
      - Can I change which API key my Composition client authenticates with?
      - How do I rotate the key an existing Composition client sends?
      instructions:
      - text: Switch the Composition client to authenticate with API key {apiKey}.
        slots:
          apiKey: query.apiKey
      - text: Use {apiKey} for all further Composition API requests.
        slots:
          apiKey: query.apiKey
      method: generated
      generated: '2026-09-26'
- target: $.paths['/waitForCompositionTask'].get
  update:
    x-apievangelist-phrasing:
      intent: Wait until a composition task completes
      effect: read
      questions:
      - How can my code block until a composition upsert is fully applied?
      - Is there a helper that polls a composition task until it's done?
      instructions:
      - text: Wait until task {taskID} on composition {compositionID} completes.
        slots:
          taskID: query.taskID
          compositionID: query.compositionID
      - text: Keep polling composition {compositionID} until task {taskID} is published.
        slots:
          compositionID: query.compositionID
          taskID: query.taskID
      method: generated
      generated: '2026-09-26'