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.
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
# 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'