openapi: 3.0.2 info: title: Ingestion API summary: >- The Ingestion API lets you connect third-party services and platforms with Algolia and schedule tasks to ingest your data description: > The Ingestion API powers the no-code [data connectors](https://dashboard.algolia.com/connectors). ## Base URLs Base URLs for the Ingestion API: - `https://data.us.algolia.com` - `https://data.eu.algolia.com` Use the URL that matches your [analytics region](https://dashboard.algolia.com/account/infrastructure/analytics). **All requests must use HTTPS.** ## Authentication Add these headers to authenticate requests: - `x-algolia-application-id`. Your Algolia application ID. - `x-algolia-api-key`. An API key with the necessary permissions to make the request. The required access control list (ACL) to make a request is listed in each endpoint's reference. You can find your application ID and API key in the [Algolia dashboard](https://dashboard.algolia.com/account/api-keys). ## Request format Request bodies must be JSON objects. ## Response status and errors Response bodies are JSON objects. Successful responses return `2xx` statuses. Client errors return `4xx` statuses. Server errors return `5xx` statuses. Error responses have a `message` property with more information. ## Version The current version of the Ingestion API is version 1, indicated by the `/1/` in each endpoint's URL. version: 1.0.0 servers: - url: https://data.{region}.algolia.com variables: region: description: The region where your Algolia application is hosted. enum: - eu - us default: us security: - appId: [] apiKey: [] tags: - name: authentications x-displayName: Authentications description: >- Authentication resources describe how to connect to a source or destination. - name: destinations x-displayName: Destinations description: > Destinations are Algolia products or features where your data should be used, such as a search index or events. Algolia destinations require authentication with the `algolia` type. You can reference authentications by their ID when creating destinations. - name: observability x-displayName: Observability description: >- Check the status and details of your task runs. A run is one instance of a configured task. - name: sources x-displayName: Sources description: > Sources are third-party platforms or services from where you want to ingest your data. Sources may require authentication. To interact with such sources, you can reference an authentication resource by its ID. - name: tasks x-displayName: Tasks description: > Tasks contain information how your data should be read from a source and stored in a destination. Tasks have _triggers_ which determine when the task should run. - name: transformations x-displayName: Transformations description: > Transformations let you transform a record before it gets indexed in Algolia. paths: /{path}: get: operationId: customGet summary: Send requests to the Algolia REST API description: This method lets you send requests to the Algolia REST API. parameters: - $ref: '#/components/parameters/PathInPath' - $ref: '#/components/parameters/Parameters' responses: '200': description: OK content: application/json: schema: type: object '400': $ref: '#/components/responses/BadRequest' '402': $ref: '#/components/responses/FeatureNotEnabled' '403': $ref: '#/components/responses/MethodNotAllowed' '404': $ref: '#/components/responses/IndexNotFound' tags: - ingestion post: operationId: customPost requestBody: description: Parameters to send with the custom request. content: application/json: schema: type: object summary: Send requests to the Algolia REST API description: This method lets you send requests to the Algolia REST API. parameters: - $ref: '#/components/parameters/PathInPath' - $ref: '#/components/parameters/Parameters' responses: '200': description: OK content: application/json: schema: type: object '400': $ref: '#/components/responses/BadRequest' '402': $ref: '#/components/responses/FeatureNotEnabled' '403': $ref: '#/components/responses/MethodNotAllowed' '404': $ref: '#/components/responses/IndexNotFound' tags: - ingestion put: operationId: customPut requestBody: description: Parameters to send with the custom request. content: application/json: schema: type: object summary: Send requests to the Algolia REST API description: This method lets you send requests to the Algolia REST API. parameters: - $ref: '#/components/parameters/PathInPath' - $ref: '#/components/parameters/Parameters' responses: '200': description: OK content: application/json: schema: type: object '400': $ref: '#/components/responses/BadRequest' '402': $ref: '#/components/responses/FeatureNotEnabled' '403': $ref: '#/components/responses/MethodNotAllowed' '404': $ref: '#/components/responses/IndexNotFound' tags: - ingestion delete: operationId: customDelete summary: Send requests to the Algolia REST API description: This method lets you send requests to the Algolia REST API. parameters: - $ref: '#/components/parameters/PathInPath' - $ref: '#/components/parameters/Parameters' responses: '200': description: OK content: application/json: schema: type: object '400': $ref: '#/components/responses/BadRequest' '402': $ref: '#/components/responses/FeatureNotEnabled' '403': $ref: '#/components/responses/MethodNotAllowed' '404': $ref: '#/components/responses/IndexNotFound' tags: - ingestion /1/push/{indexName}: post: tags: - ingestion summary: Push records by indexName description: > Pushes records through the Pipeline, directly to an index. You can make the call synchronous by providing the `watch` parameter, for asynchronous calls, you can use the observability endpoints and/or debugger dashboard to see the status of your task. If you want to leverage the [pre-indexing data transformation](https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/how-to/transform-your-data), this is the recommended way of ingesting your records. This method is similar to `pushTask`, but requires an `indexName` instead of a `taskID`. If zero or many tasks are found, an error will be returned. operationId: push x-acl: - addObject - deleteIndex - editSettings x-timeouts: connect: 180000 read: 180000 write: 180000 parameters: - $ref: '#/components/parameters/IndexName' - $ref: '#/components/parameters/watch' - name: referenceIndexName in: query description: >- This is required when targeting an index that does not have a push connector setup (e.g. a tmp index), but you wish to attach another index's transformation to it (e.g. the source index name). required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PushTaskPayload' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/WatchResponse' '400': $ref: '#/components/responses/BadRequest' /1/authentications: get: tags: - ingestion summary: List authentication resources description: Retrieves a list of all authentication resources. operationId: listAuthentications x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/itemsPerPage' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/type' - $ref: '#/components/parameters/platform' - $ref: '#/components/parameters/sort' - $ref: '#/components/parameters/order' responses: '200': description: OK content: application/json: schema: title: listAuthenticationsResponse type: object additionalProperties: false properties: authentications: type: array items: $ref: '#/components/schemas/Authentication' pagination: $ref: '#/components/schemas/Pagination' required: - authentications - pagination '400': $ref: '#/components/responses/BadRequest' post: tags: - ingestion summary: Create an authentication resource description: Creates a new authentication resource. operationId: createAuthentication x-acl: - addObject - deleteIndex - editSettings requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/AuthenticationCreate' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AuthenticationCreateResponse' '400': $ref: '#/components/responses/BadRequest' /1/authentications/search: post: tags: - ingestion summary: Search for authentication resources description: Searches for authentication resources. operationId: searchAuthentications x-acl: - addObject - deleteIndex - editSettings requestBody: content: application/json: schema: $ref: '#/components/schemas/AuthenticationSearch' required: true responses: '200': description: OK content: application/json: schema: title: searchAuthenticationsResponse type: array items: $ref: '#/components/schemas/Authentication' '400': $ref: '#/components/responses/BadRequest' /1/authentications/{authenticationID}: get: tags: - ingestion summary: Retrieve an authentication resource description: Retrieves an authentication resource by its ID. operationId: getAuthentication x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathAuthenticationID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Authentication' '400': $ref: '#/components/responses/BadRequest' patch: tags: - ingestion summary: Update an authentication resource description: Updates an authentication resource. operationId: updateAuthentication x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathAuthenticationID' requestBody: content: application/json: schema: $ref: '#/components/schemas/AuthenticationUpdate' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AuthenticationUpdateResponse' '400': $ref: '#/components/responses/BadRequest' delete: tags: - ingestion summary: Delete an authentication resource description: >- Deletes an authentication resource. You can't delete authentication resources that are used by a source or a destination. operationId: deleteAuthentication x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathAuthenticationID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DeleteResponse' '400': $ref: '#/components/responses/BadRequest' /1/destinations: get: tags: - ingestion summary: List destinations description: Retrieves a list of destinations. operationId: listDestinations x-mcp-tool: true x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/itemsPerPage' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/destinationParameters_type' - $ref: '#/components/parameters/authenticationID' - $ref: '#/components/parameters/transformationID' - $ref: '#/components/parameters/destinationParameters_sort' - $ref: '#/components/parameters/order' responses: '200': description: OK content: application/json: schema: title: listDestinationsResponse type: object additionalProperties: false properties: destinations: type: array items: $ref: '#/components/schemas/Destination' pagination: $ref: '#/components/schemas/Pagination' required: - destinations - pagination '400': $ref: '#/components/responses/BadRequest' post: tags: - ingestion summary: Create a destination description: Creates a new destination. operationId: createDestination x-acl: - addObject - deleteIndex - editSettings requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/DestinationCreate' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DestinationCreateResponse' '400': $ref: '#/components/responses/BadRequest' /1/destinations/search: post: tags: - ingestion summary: Search for destinations description: Searches for destinations. operationId: searchDestinations x-acl: - addObject - deleteIndex - editSettings requestBody: content: application/json: schema: $ref: '#/components/schemas/DestinationSearch' required: true responses: '200': description: OK content: application/json: schema: title: searchDestinationsResponse type: array items: $ref: '#/components/schemas/Destination' '400': $ref: '#/components/responses/BadRequest' /1/destinations/{destinationID}: get: tags: - ingestion summary: Retrieve a destination description: Retrieves a destination by its ID. operationId: getDestination x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathDestinationID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Destination' '400': $ref: '#/components/responses/BadRequest' patch: tags: - ingestion summary: Update a destination description: Updates the destination by its ID. operationId: updateDestination x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathDestinationID' requestBody: content: application/json: schema: $ref: '#/components/schemas/DestinationUpdate' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DestinationUpdateResponse' '400': $ref: '#/components/responses/BadRequest' delete: tags: - ingestion summary: Delete a destination description: >- Deletes a destination by its ID. You can't delete destinations that are referenced in tasks. operationId: deleteDestination x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathDestinationID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DeleteResponse' '400': $ref: '#/components/responses/BadRequest' /1/sources: get: tags: - ingestion summary: List sources description: Retrieves a list of sources. operationId: listSources x-mcp-tool: true x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/itemsPerPage' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/sourceParameters_type' - $ref: '#/components/parameters/sourceParameters_authenticationID' - $ref: '#/components/parameters/sourceParameters_sort' - $ref: '#/components/parameters/order' responses: '200': description: OK content: application/json: schema: title: listSourcesResponse type: object additionalProperties: false properties: sources: type: array items: $ref: '#/components/schemas/Source' pagination: $ref: '#/components/schemas/Pagination' required: - sources - pagination '400': $ref: '#/components/responses/BadRequest' post: tags: - ingestion summary: Create a source description: Creates a new source. operationId: createSource x-acl: - addObject - deleteIndex - editSettings requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/SourceCreate' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/SourceCreateResponse' '400': $ref: '#/components/responses/BadRequest' /1/sources/validate: post: tags: - ingestion summary: Validate a source payload description: > Validates a source payload to ensure it can be created and that the data source can be reached by Algolia. operationId: validateSource x-acl: - addObject - deleteIndex - editSettings x-timeouts: connect: 180000 read: 180000 write: 180000 requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/SourceCreate' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/WatchResponse' '400': $ref: '#/components/responses/BadRequest' /1/sources/search: post: tags: - ingestion summary: Search for sources description: Searches for sources. operationId: searchSources x-acl: - addObject - deleteIndex - editSettings requestBody: content: application/json: schema: $ref: '#/components/schemas/SourceSearch' required: true responses: '200': description: OK content: application/json: schema: title: searchSourcesResponse type: array items: $ref: '#/components/schemas/Source' '400': $ref: '#/components/responses/BadRequest' /1/sources/{sourceID}: get: tags: - ingestion summary: Retrieve a source description: Retrieve a source by its ID. operationId: getSource x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathSourceID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Source' '400': $ref: '#/components/responses/BadRequest' patch: tags: - ingestion summary: Update a source description: Updates a source by its ID. operationId: updateSource x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathSourceID' requestBody: content: application/json: schema: $ref: '#/components/schemas/SourceUpdate' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/SourceUpdateResponse' '400': $ref: '#/components/responses/BadRequest' delete: tags: - ingestion summary: Delete a source description: >- Deletes a source by its ID. You can't delete sources that are referenced in tasks. operationId: deleteSource x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathSourceID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DeleteResponse' '400': $ref: '#/components/responses/BadRequest' /1/sources/{sourceID}/validate: post: tags: - ingestion summary: Validate an update of a source payload description: > Validates an update of a source payload to ensure it can be created and that the data source can be reached by Algolia. operationId: validateSourceBeforeUpdate x-acl: - addObject - deleteIndex - editSettings x-timeouts: connect: 180000 read: 180000 write: 180000 parameters: - $ref: '#/components/parameters/pathSourceID' requestBody: content: application/json: schema: $ref: '#/components/schemas/SourceUpdate' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/WatchResponse' '400': $ref: '#/components/responses/BadRequest' /1/sources/{sourceID}/discover: post: tags: - ingestion summary: Trigger a stream-listing request description: > Triggers a stream-listing request for a source. Triggering stream-listing requests only works with sources with `type: docker` and `imageType: airbyte`. operationId: triggerDockerSourceDiscover x-acl: - addObject - deleteIndex - editSettings x-timeouts: connect: 180000 read: 180000 write: 180000 parameters: - $ref: '#/components/parameters/pathSourceID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/WatchResponse' '400': $ref: '#/components/responses/BadRequest' /1/sources/{sourceID}/run: post: tags: - ingestion summary: Run all tasks linked to a source description: >- Runs all tasks linked to a source, only available for Shopify, BigCommerce and commercetools sources. Creates one run per task. operationId: runSource x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathSourceID' requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/RunSourcePayload' responses: '200': description: OK content: application/json: schema: title: runSourceResponse type: object properties: taskWithRunID: type: object description: >- Map of taskID sent for reindex with the corresponding runID. additionalProperties: type: string createdAt: $ref: '#/components/schemas/CreatedAt' required: - taskWithRunID - createdAt '400': $ref: '#/components/responses/BadRequest' /2/tasks: get: tags: - ingestion summary: List tasks description: Retrieves a list of tasks. operationId: listTasks x-mcp-tool: true x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/itemsPerPage' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/action' - $ref: '#/components/parameters/enabled' - $ref: '#/components/parameters/sourceID' - $ref: '#/components/parameters/sourceType' - $ref: '#/components/parameters/destinationID' - $ref: '#/components/parameters/triggerType' - $ref: '#/components/parameters/withEmailNotifications' - $ref: '#/components/parameters/taskParameters_sort' - $ref: '#/components/parameters/order' responses: '200': description: OK content: application/json: schema: title: listTasksResponse type: object description: Configured tasks and pagination information. additionalProperties: false properties: tasks: type: array items: $ref: '#/components/schemas/Task' pagination: $ref: '#/components/schemas/Pagination' required: - tasks - pagination '400': $ref: '#/components/responses/BadRequest' post: tags: - ingestion summary: Create a task description: Creates a new task. operationId: createTask x-acl: - addObject - deleteIndex - editSettings requestBody: description: Request body for creating a task. content: application/json: schema: $ref: '#/components/schemas/TaskCreate' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TaskCreateResponse' '400': $ref: '#/components/responses/BadRequest' /2/tasks/search: post: tags: - ingestion summary: Search for tasks description: Searches for tasks. operationId: searchTasks x-acl: - addObject - deleteIndex - editSettings requestBody: content: application/json: schema: $ref: '#/components/schemas/TaskSearch' required: true responses: '200': description: OK content: application/json: schema: title: searchTasksResponse type: array items: $ref: '#/components/schemas/Task' '400': $ref: '#/components/responses/BadRequest' /2/tasks/{taskID}: get: tags: - ingestion x-acl: - addObject - deleteIndex - editSettings summary: Retrieve a task description: Retrieves a task by its ID. operationId: getTask parameters: - $ref: '#/components/parameters/pathTaskID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Task' '400': $ref: '#/components/responses/BadRequest' put: tags: - ingestion x-acl: - addObject - deleteIndex - editSettings summary: Fully update a task description: >- Fully updates a task by its ID, use partialUpdateTask if you only want to update a subset of fields. operationId: replaceTask parameters: - $ref: '#/components/parameters/pathTaskID' requestBody: content: application/json: schema: $ref: '#/components/schemas/TaskReplace' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TaskUpdateResponse' '400': $ref: '#/components/responses/BadRequest' patch: tags: - ingestion x-acl: - addObject - deleteIndex - editSettings summary: Partially update a task description: Partially updates a task by its ID. operationId: updateTask parameters: - $ref: '#/components/parameters/pathTaskID' requestBody: content: application/json: schema: $ref: '#/components/schemas/TaskUpdate' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TaskUpdateResponse' '400': $ref: '#/components/responses/BadRequest' delete: tags: - ingestion x-acl: - addObject - deleteIndex - editSettings summary: Delete a task description: Deletes a task by its ID. operationId: deleteTask parameters: - $ref: '#/components/parameters/pathTaskID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DeleteResponse' '400': $ref: '#/components/responses/BadRequest' /2/tasks/{taskID}/run: post: tags: - ingestion summary: Run a task description: >- Runs a task. You can check the status of task runs with the observability endpoints. operationId: runTask x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathTaskID' requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/RunTaskPayload' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RunResponse' '400': $ref: '#/components/responses/BadRequest' /2/tasks/{taskID}/push: post: tags: - ingestion summary: Push records by task ID description: > Pushes records through the pipeline, directly to an index. You can make the call synchronous by providing the `watch` parameter, for asynchronous calls, you can use the observability endpoints or the debugger dashboard to see the status of your task. If you want to transform your data before indexing, this is the recommended way of ingesting your records. This method is similar to `push`, but requires a `taskID` instead of a `indexName`, which is useful when many `destinations` target the same `indexName`. operationId: pushTask externalDocs: url: https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/how-to/transform-your-data description: Pre-indexing data transformation. x-acl: - addObject - deleteIndex - editSettings x-timeouts: connect: 180000 read: 180000 write: 180000 parameters: - $ref: '#/components/parameters/pathTaskID' - $ref: '#/components/parameters/watch' requestBody: content: application/json: schema: $ref: '#/components/schemas/PushTaskPayload' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/WatchResponse' '400': $ref: '#/components/responses/BadRequest' /2/tasks/{taskID}/enable: put: tags: - ingestion summary: Enable a task description: Enables a task. operationId: enableTask x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathTaskID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TaskUpdateResponse' '400': $ref: '#/components/responses/BadRequest' /2/tasks/{taskID}/disable: put: tags: - ingestion summary: Disable a task description: Disables a task. operationId: disableTask x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathTaskID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TaskUpdateResponse' '400': $ref: '#/components/responses/BadRequest' /1/tasks: get: tags: - ingestion summary: List tasks V1 description: Retrieves a list of tasks using the v1 endpoint. Use `getTasks` instead. operationId: listTasksV1 deprecated: true x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/itemsPerPage' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/action' - $ref: '#/components/parameters/enabled' - $ref: '#/components/parameters/sourceID' - $ref: '#/components/parameters/destinationID' - $ref: '#/components/parameters/triggerType' - $ref: '#/components/parameters/taskParameters_sort' - $ref: '#/components/parameters/order' responses: '200': description: OK content: application/json: schema: title: listTasksResponseV1 type: object description: Configured tasks and pagination information. additionalProperties: false properties: tasks: type: array items: $ref: '#/components/schemas/TaskV1' pagination: $ref: '#/components/schemas/Pagination' required: - tasks - pagination '400': $ref: '#/components/responses/BadRequest' post: tags: - ingestion summary: Create a task V1 description: Creates a new task using the v1 endpoint. Use `createTask` instead. operationId: createTaskV1 x-acl: - addObject - deleteIndex - editSettings deprecated: true x-codegen-request-body-name: taskCreate requestBody: description: Request body for creating a task. content: application/json: schema: $ref: '#/components/schemas/TaskCreateV1' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TaskCreateResponse' '400': $ref: '#/components/responses/BadRequest' /1/tasks/search: post: tags: - ingestion summary: Search for tasks V1 description: Searches for tasks using the v1 endpoint. Use `searchTasks` instead. operationId: searchTasksV1 deprecated: true x-acl: - addObject - deleteIndex - editSettings requestBody: content: application/json: schema: $ref: '#/components/schemas/TaskSearch' required: true responses: '200': description: OK content: application/json: schema: title: searchTasksResponseV1 type: array items: $ref: '#/components/schemas/TaskV1' '400': $ref: '#/components/responses/BadRequest' /1/tasks/{taskID}: get: tags: - ingestion summary: Retrieve a task V1 description: Retrieves a task by its ID using the v1 endpoint. Use `getTask` instead. operationId: getTaskV1 deprecated: true x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathTaskID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TaskV1' '400': $ref: '#/components/responses/BadRequest' patch: tags: - ingestion summary: Update a task V1 description: >- Updates a task by its ID using the v1 endpoint. Use `updateTask` instead. operationId: updateTaskV1 x-acl: - addObject - deleteIndex - editSettings deprecated: true parameters: - $ref: '#/components/parameters/pathTaskID' x-codegen-request-body-name: taskUpdate requestBody: content: application/json: schema: $ref: '#/components/schemas/TaskUpdateV1' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TaskUpdateResponse' '400': $ref: '#/components/responses/BadRequest' delete: tags: - ingestion summary: Delete a task description: >- Deletes a task by its ID using the v1 endpoint. Use `deleteTask` instead. operationId: deleteTaskV1 x-acl: - addObject - deleteIndex - editSettings deprecated: true parameters: - $ref: '#/components/parameters/pathTaskID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DeleteResponse' '400': $ref: '#/components/responses/BadRequest' /1/tasks/{taskID}/run: post: tags: - ingestion summary: Run a task V1 description: >- Runs a task using the v1 endpoint. Use `runTask` instead. You can check the status of task runs with the observability endpoints. operationId: runTaskV1 deprecated: true x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathTaskID' requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/RunTaskPayload' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RunResponse' '400': $ref: '#/components/responses/BadRequest' /1/tasks/{taskID}/enable: put: tags: - ingestion summary: Enable a task V1 description: Enables a task using the v1 endpoint. Use `enableTask` instead. operationId: enableTaskV1 deprecated: true x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathTaskID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TaskUpdateResponse' '400': $ref: '#/components/responses/BadRequest' /1/tasks/{taskID}/disable: put: tags: - ingestion summary: Disable a task V1 description: Disables a task using the v1 endpoint. Use `disableTask` instead. operationId: disableTaskV1 deprecated: true x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathTaskID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TaskUpdateResponse' '400': $ref: '#/components/responses/BadRequest' /1/transformations: get: tags: - ingestion summary: List transformations description: Retrieves a list of transformations. operationId: listTransformations x-mcp-tool: true x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/itemsPerPage' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/transformationParameters_sort' - $ref: '#/components/parameters/order' - $ref: '#/components/parameters/transformationParameters_type' responses: '200': description: OK content: application/json: schema: title: listTransformationsResponse type: object description: Configured transformations and pagination information. additionalProperties: false properties: transformations: type: array items: $ref: '#/components/schemas/Transformation' pagination: $ref: '#/components/schemas/Pagination' required: - transformations - pagination '400': $ref: '#/components/responses/BadRequest' post: tags: - ingestion summary: Create a transformation description: Creates a new transformation. operationId: createTransformation x-acl: - addObject - deleteIndex - editSettings requestBody: description: Request body for creating a transformation. content: application/json: schema: $ref: '#/components/schemas/TransformationCreate' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TransformationCreateResponse' '400': $ref: '#/components/responses/BadRequest' /1/transformations/try: post: tags: - ingestion summary: Try a transformation before creating it description: Try a transformation before creating it. operationId: tryTransformation x-acl: - addObject - deleteIndex - editSettings requestBody: content: application/json: schema: $ref: '#/components/schemas/TransformationTry' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TransformationTryResponse' '400': $ref: '#/components/responses/BadRequest' /1/transformations/search: post: tags: - ingestion summary: Search for transformations description: Searches for transformations. operationId: searchTransformations x-acl: - addObject - deleteIndex - editSettings requestBody: content: application/json: schema: $ref: '#/components/schemas/TransformationSearch' required: true responses: '200': description: OK content: application/json: schema: title: searchTransformationsResponse type: array items: $ref: '#/components/schemas/Transformation' '400': $ref: '#/components/responses/BadRequest' /1/transformations/{transformationID}: get: tags: - ingestion summary: Retrieve a transformation description: Retrieves a transformation by its ID. operationId: getTransformation x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathTransformationID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Transformation' '400': $ref: '#/components/responses/BadRequest' put: tags: - ingestion summary: Update a transformation description: Updates a transformation by its ID. operationId: updateTransformation x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathTransformationID' requestBody: content: application/json: schema: $ref: '#/components/schemas/TransformationCreate' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TransformationUpdateResponse' '400': $ref: '#/components/responses/BadRequest' delete: tags: - ingestion summary: Delete a transformation description: Deletes a transformation by its ID. operationId: deleteTransformation x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathTransformationID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DeleteResponse' '400': $ref: '#/components/responses/BadRequest' /1/transformations/{transformationID}/try: post: tags: - ingestion summary: Try a transformation before updating it description: Try a transformation before updating it. operationId: tryTransformationBeforeUpdate x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathTransformationID' requestBody: content: application/json: schema: $ref: '#/components/schemas/TransformationTry' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TransformationTryResponse' '400': $ref: '#/components/responses/BadRequest' /1/runs: get: tags: - ingestion summary: List task runs description: Retrieve a list of task runs. operationId: listRuns x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/itemsPerPage' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/runStatus' - $ref: '#/components/parameters/runType' - $ref: '#/components/parameters/taskID' - $ref: '#/components/parameters/runSort' - $ref: '#/components/parameters/order' - name: startDate in: query description: >- Date and time for the earliest run to retrieve, in RFC 3339 format. By default, the current day minus seven days is used. schema: type: string - name: endDate in: query description: >- Date and time for the latest run to retrieve, in RFC 3339 format. By default, the current day is used. schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RunListResponse' '400': $ref: '#/components/responses/BadRequest' /1/runs/{runID}: get: tags: - ingestion summary: Retrieve a task run description: Retrieve a single task run by its ID. operationId: getRun x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathRunID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Run' '400': $ref: '#/components/responses/BadRequest' /1/runs/{runID}/events: get: tags: - ingestion summary: List task run events description: Retrieves a list of events for a task run, identified by its ID. operationId: listEvents x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathRunID' - $ref: '#/components/parameters/itemsPerPage' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/eventStatus' - $ref: '#/components/parameters/eventType' - $ref: '#/components/parameters/eventSort' - $ref: '#/components/parameters/order' - name: startDate in: query description: >- Date and time in RFC 3339 format for the earliest events to retrieve. By default, the current time minus three hours is used. schema: type: string - name: endDate in: query description: >- Date and time in RFC 3339 format for the latest events to retrieve. By default, the current time is used. schema: type: string responses: '200': description: OK content: application/json: schema: title: listEventsResponse type: object additionalProperties: false properties: events: type: array items: $ref: '#/components/schemas/Event' pagination: $ref: '#/components/schemas/Pagination' window: $ref: '#/components/schemas/Window' required: - events - pagination - window '400': $ref: '#/components/responses/BadRequest' /1/runs/{runID}/events/{eventID}: get: tags: - ingestion summary: Retrieve a task run event description: Retrieves a single task run event by its ID. operationId: getEvent x-acl: - addObject - deleteIndex - editSettings parameters: - $ref: '#/components/parameters/pathRunID' - $ref: '#/components/parameters/pathEventID' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Event' '400': $ref: '#/components/responses/BadRequest' /setClientApiKey: get: x-helper: true x-asynchronous-helper: false x-acl: [] tags: - ingestion operationId: setClientApiKey summary: Switch the API key used to authenticate requests description: | Switch the API key used to authenticate requests. parameters: - in: query name: apiKey description: API key to use for subsequent requests. required: true schema: type: string responses: '204': description: No content. /chunkedPush: get: x-helper: true tags: - ingestion x-available-languages: - csharp - go - java - javascript - kotlin - php - python - ruby - scala x-acl: - addObject - deleteIndex - editSettings operationId: chunkedPush summary: Replace all records in an index description: > Helper: Chunks the given `objects` list in subset of 1000 elements max in order to make it fit in `push` requests by leveraging the Transformation pipeline setup in the Push connector (https://www.algolia.com/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push). parameters: - in: query name: indexName description: The `indexName` to replace `objects` in. required: true schema: type: string - in: query name: objects description: List of objects to replace the current objects with. required: true schema: type: array items: type: object - in: query name: action description: >- The `batch` `action` to perform on the given array of `objects`, defaults to `addObject`. required: false schema: $ref: '#/components/schemas/action' - in: query name: waitForTasks description: >- Whether to wait until every `batch` task has been processed. This may take longer but is more reliable. required: false schema: type: boolean - in: query name: batchSize description: >- The size of the chunk of `objects`. The number of `batch` calls will be equal to `length(objects) / batchSize`. Defaults to 1,000. required: false schema: type: integer responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/WatchResponse' '400': $ref: '#/components/responses/IndexNotFound' components: securitySchemes: appId: type: apiKey in: header name: x-algolia-application-id description: Your Algolia application ID. apiKey: type: apiKey in: header name: x-algolia-api-key description: > Your Algolia API key with the necessary permissions to make the request. Permissions are controlled through access control lists (ACL) and access restrictions. The required ACL to make a request is listed in each endpoint's reference. parameters: PathInPath: name: path in: path description: Path of the endpoint, for example `1/newFeature`. required: true schema: type: string example: /keys Parameters: name: parameters in: query description: Query parameters to apply to the current query. schema: type: object additionalProperties: true IndexName: name: indexName in: path description: Name of the index on which to perform the operation. required: true schema: type: string example: ALGOLIA_INDEX_NAME watch: name: watch in: query description: >- When provided, the push operation will be synchronous and the API will wait for the ingestion to be finished before responding. required: false schema: type: boolean itemsPerPage: name: itemsPerPage in: query description: Number of items per page. required: false schema: $ref: '#/components/schemas/itemsPerPage' page: name: page in: query description: Page number of the paginated API response. required: false schema: $ref: '#/components/schemas/page' type: name: type in: query description: Type of authentication resource to retrieve. required: false style: form explode: false schema: type: array items: $ref: '#/components/schemas/AuthenticationType' example: basic,oauth platform: name: platform in: query description: Ecommerce platform for which to retrieve authentications. required: false style: form explode: false schema: type: array items: $ref: '#/components/schemas/platformWithNone' example: commercetools,none sort: name: sort in: query description: Property by which to sort the list of authentications. required: false schema: $ref: '#/components/schemas/authenticationSortKeys' order: name: order in: query description: Sort order of the response, ascending or descending. required: false schema: $ref: '#/components/schemas/orderKeys' pathAuthenticationID: name: authenticationID in: path required: true description: Unique identifier of an authentication resource. schema: $ref: '#/components/schemas/authenticationID' destinationParameters_type: name: type in: query description: Destination type. required: false style: form explode: false schema: type: array items: $ref: '#/components/schemas/DestinationType' example: search authenticationID: name: authenticationID in: query description: Authentication ID used by destinations. required: false style: form explode: false schema: type: array items: $ref: '#/components/schemas/authenticationID' transformationID: name: transformationID in: query description: Get the list of destinations used by a transformation. required: false style: form explode: false schema: $ref: '#/components/schemas/transformationID' destinationParameters_sort: name: sort in: query description: Property by which to sort the destinations. required: false example: type schema: $ref: '#/components/schemas/destinationSortKeys' pathDestinationID: name: destinationID in: path required: true description: Unique identifier of a destination. schema: $ref: '#/components/schemas/destinationID' sourceParameters_type: name: type in: query description: Source type. Some sources require authentication. required: false style: form explode: false schema: type: array items: $ref: '#/components/schemas/SourceType' example: commercetools,bigcommerce sourceParameters_authenticationID: name: authenticationID in: query description: | Authentication IDs of the sources to retrieve. 'none' returns sources that doesn't have an authentication. required: false style: form explode: false schema: type: array items: $ref: '#/components/schemas/authenticationID' example: - 10000000-0a75-4000-a000-000000000001 - none sourceParameters_sort: name: sort in: query description: Property by which to sort the list of sources. required: false schema: $ref: '#/components/schemas/sourceSortKeys' pathSourceID: name: sourceID in: path required: true description: Unique identifier of a source. schema: $ref: '#/components/schemas/sourceID' action: name: action in: query required: false description: Actions for filtering the list of tasks. style: form explode: false schema: type: array description: Actions to perform on the Algolia index. items: $ref: '#/components/schemas/ActionType' example: save,replace,partial,append enabled: name: enabled in: query description: Whether to filter the list of tasks by the `enabled` status. required: false schema: type: boolean sourceID: name: sourceID in: query description: Source IDs for filtering the list of tasks. required: false style: form explode: false schema: type: array items: $ref: '#/components/schemas/sourceID' sourceType: name: sourceType in: query description: Filters the tasks with the specified source type. required: false style: form explode: false schema: type: array items: $ref: '#/components/schemas/SourceType' example: json,commercetools destinationID: name: destinationID in: query description: Destination IDs for filtering the list of tasks. required: false style: form explode: false schema: type: array items: $ref: '#/components/schemas/destinationID' triggerType: name: triggerType in: query description: Type of task trigger for filtering the list of tasks. required: false style: form explode: false schema: type: array items: $ref: '#/components/schemas/TriggerType' example: onDemand,schedule,subscription,streaming withEmailNotifications: name: withEmailNotifications in: query description: >- If specified, the response only includes tasks with notifications.email.enabled set to this value. required: false schema: type: boolean taskParameters_sort: name: sort in: query description: Property by which to sort the list of tasks. required: false schema: $ref: '#/components/schemas/taskSortKeys' pathTaskID: name: taskID in: path required: true description: Unique identifier of a task. schema: $ref: '#/components/schemas/taskID' transformationParameters_sort: name: sort in: query description: Property by which to sort the list of transformations. required: false schema: $ref: '#/components/schemas/transformationSortKeys' transformationParameters_type: name: type in: query description: >- Whether to filter the list of transformations by the type of transformation. required: false schema: $ref: '#/components/schemas/TransformationType' pathTransformationID: name: transformationID in: path required: true description: Unique identifier of a transformation. schema: $ref: '#/components/schemas/transformationID' runStatus: name: status in: query description: Run status for filtering the list of task runs. schema: type: array items: $ref: '#/components/schemas/RunStatus' runType: name: type in: query description: Run type for filtering the list of task runs. schema: type: array items: $ref: '#/components/schemas/RunType' taskID: name: taskID in: query description: Task ID for filtering the list of task runs. schema: $ref: '#/components/schemas/taskID' runSort: name: sort in: query description: Property by which to sort the list of task runs. required: false schema: $ref: '#/components/schemas/runSortKeys' pathRunID: name: runID in: path required: true description: Unique identifier of a task run. schema: $ref: '#/components/schemas/RunID' eventStatus: name: status in: query description: Event status for filtering the list of task runs. schema: type: array items: $ref: '#/components/schemas/EventStatus' eventType: name: type in: query description: Event type for filtering the list of task runs. schema: type: array items: $ref: '#/components/schemas/EventType' eventSort: name: sort in: query description: Property by which to sort the list of task run events. required: false schema: $ref: '#/components/schemas/eventSortKeys' pathEventID: name: eventID in: path required: true description: Unique identifier of an event. schema: $ref: '#/components/schemas/EventID' schemas: ErrorBase: description: Error. type: object x-keep-model: true additionalProperties: true properties: message: type: string example: Invalid Application-Id or API-Key action: type: string enum: - addObject - updateObject - partialUpdateObject - partialUpdateObjectNoCreate - deleteObject - delete - clear description: > Which indexing operation to perform: - `addObject`: adds records to an index. Equivalent to the "Add a new record (with auto-generated object ID)" operation. - `updateObject`: adds or replaces records in an index. Equivalent to the "Add or replace a record" operation. - `partialUpdateObject`: adds or updates attributes within records. Equivalent to the "Add or update attributes" operation with the `createIfNoExists` parameter set to true. (If a record with the specified `objectID` doesn't exist in the specified index, this action adds the record to the index). - `partialUpdateObjectNoCreate`: same as `partialUpdateObject`, but with `createIfNoExists` set to false. (A record isn't added to the index if its `objectID` doesn't exist). - `deleteObject`: delete records from an index. Equivalent to the "Delete a record" operation. - `delete`. Delete an index. Equivalent to the "Delete an index" operation. - `clear`: delete all records from an index. Equivalent to the "Delete all records from an index operation". objectID: type: string description: Unique record identifier. example: test-record-123 PushTaskPayload: title: pushTaskPayload type: object properties: action: $ref: '#/components/schemas/action' records: type: array items: title: pushTaskRecords type: object additionalProperties: true required: - objectID properties: objectID: $ref: '#/components/schemas/objectID' required: - action - records RunID: type: string description: Universally unique identifier (UUID) of a task run. example: 6c02aeb1-775e-418e-870b-1faccd4b2c0f EventID: type: string description: Universally unique identifier (UUID) of an event. example: 6c02aeb1-775e-418e-870b-1faccd4b2c0f EventStatus: oneOf: - type: string enum: - created - started - retried - failed - succeeded - critical - type: 'null' EventType: type: string enum: - fetch - record - log - transform PublishedAt: type: string description: Date and time when the resource was published, in RFC 3339 format. Event: type: object description: An event describe a step of the task execution flow. additionalProperties: false properties: eventID: $ref: '#/components/schemas/EventID' runID: $ref: '#/components/schemas/RunID' status: $ref: '#/components/schemas/EventStatus' type: $ref: '#/components/schemas/EventType' batchSize: type: integer description: The extracted record batch size. example: 10 minimum: 0 multipleOf: 1 data: oneOf: - type: object additionalProperties: true - type: 'null' publishedAt: $ref: '#/components/schemas/PublishedAt' required: - eventID - runID - status - type - batchSize - publishedAt CreatedAt: type: string description: Date and time when the resource was created, in RFC 3339 format. WatchResponse: type: object additionalProperties: false properties: runID: $ref: '#/components/schemas/RunID' eventID: $ref: '#/components/schemas/EventID' data: type: array description: > This field is always null when used with the Push endpoint. When used for a source discover or source validate run, it will include the sampled data of the source. items: type: object events: description: >- in case of error, observability events will be added to the response. type: array items: $ref: '#/components/schemas/Event' message: description: >- a message describing the outcome of the operation that has been ran (push, discover or validate) run. type: string createdAt: $ref: '#/components/schemas/CreatedAt' required: - runID itemsPerPage: type: integer description: Number of items per page. minimum: 1 maximum: 100 default: 10 page: type: integer minimum: 1 description: Page of the API response to retrieve. AuthenticationType: type: string description: >- Type of authentication. This determines the type of credentials required in the `input` object. enum: - googleServiceAccount - basic - apiKey - oauth - algolia - algoliaInsights - secrets Platform: default: null oneOf: - type: string description: | Name of an ecommerce platform with which to authenticate. This determines which authentication type you can select. enum: - bigcommerce - commercetools - shopify - type: 'null' platformNone: type: string description: >- Authentication resource not tied to any ecommerce platform, used for filtering. enum: - none platformWithNone: oneOf: - $ref: '#/components/schemas/Platform' - $ref: '#/components/schemas/platformNone' authenticationSortKeys: type: string description: Property by which to sort the list of authentications. default: createdAt enum: - name - type - platform - updatedAt - createdAt orderKeys: type: string description: Ascending or descending sort order. default: desc enum: - asc - desc authenticationID: type: string description: Universally unique identifier (UUID) of an authentication resource. example: 6c02aeb1-775e-418e-870b-1faccd4b2c0f name: type: string description: Descriptive name for the resource. owner: oneOf: - type: string description: Owner of the resource. - type: 'null' AuthGoogleServiceAccountPartial: type: object description: >- Credentials for authenticating with a Google service account, such as BigQuery. additionalProperties: false properties: clientEmail: type: string description: Email address of the Google service account. example: service-account-name@project-id.iam.gserviceaccount.com privateKey: type: string description: >- Private key of the Google service account. This field is `null` in the API response. x-discriminator-fields: - clientEmail AuthBasicPartial: type: object description: Credentials for authenticating with user name and password. additionalProperties: false properties: username: type: string description: Username. password: type: string description: Password. This field is `null` in the API response. x-discriminator-fields: - username AuthAPIKeyPartial: type: object description: Credentials for authenticating with an API key. additionalProperties: false properties: key: type: string description: API key. This field is `null` in the API response. x-discriminator-fields: - key AuthOAuthPartial: type: object description: Credentials for authenticating with OAuth 2.0. additionalProperties: false properties: url: type: string description: URL for the OAuth endpoint. client_id: type: string description: Client ID. client_secret: type: string description: Client secret. This field is `null` in the API response. code: type: string description: > Authorization code. Used during an `authorization_code` grant type flow, to request an access_token when creating/updating the authentication. This field is not returned in the API response. scope: type: string default: '' description: OAuth scope. x-discriminator-fields: - url AuthAlgoliaPartial: type: object description: Credentials for authenticating with Algolia. additionalProperties: false properties: appID: type: string description: Algolia application ID. apiKey: type: string description: > Algolia API key with the ACL: `addObject`, `deleteObject`, `settings`, `editSettings`, `listIndexes`, `deleteIndex`. This field is `null` in the API response. AuthAlgoliaInsightsPartial: type: object additionalProperties: false description: Credentials for authenticating with the Algolia Insights API. properties: appID: type: string description: Algolia application ID. apiKey: type: string description: | Algolia API key with the ACL: `search`. This field is `null` in the API response. AuthSecrets: title: Key:value type: object description: A key:value authentication for your transformations. additionalProperties: type: string AuthInputPartial: oneOf: - $ref: '#/components/schemas/AuthGoogleServiceAccountPartial' - $ref: '#/components/schemas/AuthBasicPartial' - $ref: '#/components/schemas/AuthAPIKeyPartial' - $ref: '#/components/schemas/AuthOAuthPartial' - $ref: '#/components/schemas/AuthAlgoliaPartial' - $ref: '#/components/schemas/AuthAlgoliaInsightsPartial' - $ref: '#/components/schemas/AuthSecrets' updatedAt: type: string description: Date and time when the resource was last updated, in RFC 3339 format. Authentication: type: object description: >- Resource representing the information required to authenticate with a source or a destination. additionalProperties: false properties: authenticationID: $ref: '#/components/schemas/authenticationID' type: $ref: '#/components/schemas/AuthenticationType' name: $ref: '#/components/schemas/name' platform: $ref: '#/components/schemas/Platform' owner: $ref: '#/components/schemas/owner' input: $ref: '#/components/schemas/AuthInputPartial' createdAt: $ref: '#/components/schemas/CreatedAt' updatedAt: $ref: '#/components/schemas/updatedAt' required: - authenticationID - type - name - input - createdAt - updatedAt Pagination: type: object description: Paginated API response. additionalProperties: false properties: nbPages: type: integer minimum: 1 description: Number of pages in the API response. page: $ref: '#/components/schemas/page' nbItems: type: integer minimum: 0 description: Number of items in the API response. itemsPerPage: $ref: '#/components/schemas/itemsPerPage' required: - nbPages - page - nbItems - itemsPerPage AuthGoogleServiceAccount: title: Google type: object description: >- Credentials for authenticating with a Google service account, such as BigQuery. additionalProperties: false properties: clientEmail: type: string description: Email address of the Google service account. example: service-account-name@project-id.iam.gserviceaccount.com privateKey: type: string description: >- Private key of the Google service account. This field is `null` in the API response. required: - clientEmail - privateKey x-discriminator-fields: - clientEmail - privateKey AuthBasic: title: Basic type: object description: Credentials for authenticating with user name and password. additionalProperties: false properties: username: type: string description: Username. password: type: string description: Password. This field is `null` in the API response. required: - username - password x-discriminator-fields: - username - password AuthAPIKey: title: API key type: object description: Credentials for authenticating with an API key. additionalProperties: false properties: key: type: string description: API key. This field is `null` in the API response. required: - key x-discriminator-fields: - key AuthOAuth: title: OAuth 2.0 type: object description: Credentials for authenticating with OAuth 2.0. additionalProperties: false properties: url: type: string description: URL for the OAuth endpoint. client_id: type: string description: Client ID. client_secret: type: string description: Client secret. This field is `null` in the API response. code: type: string description: > Authorization code. Used during an `authorization_code` grant type flow, to request an access_token when creating/updating the authentication. This field is not returned in the API response. scope: type: string default: '' description: OAuth scope. required: - url x-discriminator-fields: - url - client_id - client_secret - code AuthAlgolia: title: Algolia type: object additionalProperties: false description: Credentials for authenticating with Algolia. properties: appID: type: string description: Algolia application ID. apiKey: type: string description: > Algolia API key with the ACL: `addObject`, `deleteObject`, `settings`, `editSettings`, `listIndexes`, `deleteIndex`. This field is `null` in the API response. required: - appID - apiKey AuthAlgoliaInsights: title: Algolia Insights type: object additionalProperties: false description: Credentials for authenticating with the Algolia Insights API. properties: appID: type: string description: Algolia application ID. apiKey: type: string description: | Algolia API key with the ACL: `search`. This field is `null` in the API response. required: - appID - apiKey AuthInput: oneOf: - $ref: '#/components/schemas/AuthGoogleServiceAccount' - $ref: '#/components/schemas/AuthBasic' - $ref: '#/components/schemas/AuthAPIKey' - $ref: '#/components/schemas/AuthOAuth' - $ref: '#/components/schemas/AuthAlgolia' - $ref: '#/components/schemas/AuthAlgoliaInsights' - $ref: '#/components/schemas/AuthSecrets' AuthenticationCreate: type: object description: Request body for creating a new authentication resource. additionalProperties: false properties: type: $ref: '#/components/schemas/AuthenticationType' name: $ref: '#/components/schemas/name' platform: $ref: '#/components/schemas/Platform' input: $ref: '#/components/schemas/AuthInput' required: - type - name - input AuthenticationCreateResponse: type: object description: API response for the successful creation of an authentication resource. additionalProperties: false properties: authenticationID: $ref: '#/components/schemas/authenticationID' name: $ref: '#/components/schemas/name' createdAt: $ref: '#/components/schemas/CreatedAt' required: - authenticationID - name - createdAt AuthenticationSearch: type: object additionalProperties: false description: Request body for searching for authentication resources. properties: authenticationIDs: type: array items: $ref: '#/components/schemas/authenticationID' required: - authenticationIDs DeleteResponse: type: object properties: deletedAt: type: string description: Date and time when the resource was deleted, in RFC 3339 format. required: - deletedAt AuthenticationUpdate: type: object description: Request body for updating an authentication resource. additionalProperties: false properties: name: $ref: '#/components/schemas/name' input: $ref: '#/components/schemas/AuthInputPartial' AuthenticationUpdateResponse: type: object additionalProperties: false description: API response for a successful update of an authentication resource. properties: authenticationID: $ref: '#/components/schemas/authenticationID' name: $ref: '#/components/schemas/name' updatedAt: $ref: '#/components/schemas/updatedAt' required: - authenticationID - name - updatedAt DestinationType: type: string description: | Destination type. - `search`. Data is stored in an Algolia index. - `insights`. Data is recorded as user events in the Insights API. enum: - search - insights transformationID: type: string description: Universally unique identifier (UUID) of a transformation. example: 6c02aeb1-775e-418e-870b-1faccd4b2c0f destinationSortKeys: type: string description: Property by which to sort the destinations. default: createdAt enum: - name - type - updatedAt - createdAt destinationID: type: string description: Universally unique identifier (UUID) of a destination resource. example: 6c02aeb1-775e-418e-870b-1faccd4b2c0f RecordType: type: string description: Record type for ecommerce sources. enum: - product - variant - collection AttributesToExclude: type: array description: > Attributes from your source to exclude from Algolia records. Not all your data attributes will be useful for searching. Keeping your Algolia records small increases indexing and search performance. - Exclude nested attributes with `.` notation. For example, `foo.bar` indexes the `foo` attribute and all its children **except** the `bar` attribute. - Exclude attributes from arrays with `[i]`, where `i` is the index of the array element. For example, `foo.[0].bar` only excludes the `bar` attribute from the first element of the `foo` array, but indexes the complete `foo` attribute for all other elements. Use `*` as wildcard: `foo.[*].bar` excludes `bar` from all elements of the `foo` array. items: type: string DestinationInput: type: object additionalProperties: false properties: indexName: type: string description: Algolia index name (case-sensitive). recordType: $ref: '#/components/schemas/RecordType' attributesToExclude: $ref: '#/components/schemas/AttributesToExclude' required: - indexName transformationIDs: type: array items: $ref: '#/components/schemas/transformationID' Destination: type: object description: Destinations are Algolia resources like indices or event streams. additionalProperties: false properties: destinationID: $ref: '#/components/schemas/destinationID' type: $ref: '#/components/schemas/DestinationType' name: $ref: '#/components/schemas/name' owner: $ref: '#/components/schemas/owner' input: $ref: '#/components/schemas/DestinationInput' createdAt: $ref: '#/components/schemas/CreatedAt' updatedAt: $ref: '#/components/schemas/updatedAt' authenticationID: $ref: '#/components/schemas/authenticationID' transformationIDs: $ref: '#/components/schemas/transformationIDs' required: - destinationID - type - name - input - createdAt - updatedAt DestinationCreate: type: object additionalProperties: false description: API request body for creating a new destination. properties: type: $ref: '#/components/schemas/DestinationType' name: $ref: '#/components/schemas/name' input: $ref: '#/components/schemas/DestinationInput' authenticationID: $ref: '#/components/schemas/authenticationID' transformationIDs: $ref: '#/components/schemas/transformationIDs' required: - type - name - input DestinationCreateResponse: type: object additionalProperties: false description: API response for creating a new destination. properties: destinationID: $ref: '#/components/schemas/destinationID' name: $ref: '#/components/schemas/name' createdAt: $ref: '#/components/schemas/CreatedAt' required: - destinationID - name - createdAt DestinationSearch: type: object additionalProperties: false description: API request body for searching destinations. properties: destinationIDs: type: array items: $ref: '#/components/schemas/destinationID' required: - destinationIDs DestinationUpdateInput: type: object additionalProperties: false properties: indexName: type: string description: Algolia index name (case-sensitive). recordType: $ref: '#/components/schemas/RecordType' attributesToExclude: $ref: '#/components/schemas/AttributesToExclude' DestinationUpdate: type: object additionalProperties: false description: API request body for updating a destination. properties: name: $ref: '#/components/schemas/name' input: $ref: '#/components/schemas/DestinationUpdateInput' authenticationID: $ref: '#/components/schemas/authenticationID' transformationIDs: $ref: '#/components/schemas/transformationIDs' DestinationUpdateResponse: type: object additionalProperties: false description: API response for updating a destination. properties: destinationID: $ref: '#/components/schemas/destinationID' name: $ref: '#/components/schemas/name' updatedAt: $ref: '#/components/schemas/updatedAt' required: - destinationID - name - updatedAt SourceType: type: string enum: - algoliaIndex - bigcommerce - bigquery - commercetools - csv - docker - ga4BigqueryExport - json - shopify - push sourceSortKeys: type: string description: Property by which to sort the list of sources. default: createdAt enum: - name - type - updatedAt - createdAt sourceID: type: string description: Universally uniqud identifier (UUID) of a source. example: 6c02aeb1-775e-418e-870b-1faccd4b2c0f CommercetoolsCustomFields: type: object additionalProperties: false description: > Custom fields from commercetools to add to the records. For more information, see [Using Custom Types and Custom Fields](https://docs.commercetools.com/tutorials/custom-types). properties: inventory: oneOf: - type: array description: Inventory custom fields. items: type: string - type: 'null' price: oneOf: - type: array description: Price custom fields. items: type: string - type: 'null' category: oneOf: - type: array description: Category custom fields. items: type: string - type: 'null' SourceCommercetools: type: object description: Specific configuration attributes of a `commercetools` source. additionalProperties: false properties: storeKeys: type: array items: description: Unique and immutable key of the referenced store. type: string locales: type: array description: Locales for your commercetools stores. items: type: string pattern: ^[a-z]{2}(-[A-Z]{2})?$ description: >- Locale specified as combination of a two-letter language code and an optional two-letter country code. example: fr-FR url: type: string projectKey: type: string fallbackIsInStockValue: type: boolean default: true description: > Whether a fallback value is stored in the Algolia record if there's no inventory information about the product. productQueryPredicate: type: string description: > Predicate to filter out specific products when indexing. For more information, see [Query Predicate](https://docs.commercetools.com/api/predicates/query). useImagesObjects: type: boolean description: > When set to true, the connector indexes objects with all images attributes instead of only the URLs. customFields: $ref: '#/components/schemas/CommercetoolsCustomFields' required: - url - projectKey x-discriminator-fields: - projectKey BigCommerceChannel: type: object additionalProperties: false properties: id: type: integer description: ID of the BigCommerce channel. currencies: type: array description: Currencies for the given channel. example: - usd - eur items: type: string description: Three-letter code for the currency. example: usd required: - id BigCommerceMetafield: type: object additionalProperties: false properties: namespace: type: string description: Namespace of the metafield. key: type: string description: Key identifier of the metafield. required: - namespace - key SourceBigCommerce: type: object description: Specific configuration attributes of a `bigcommerce` source. additionalProperties: false properties: storeHash: type: string description: Store hash identifying your BigCommerce store. channel: $ref: '#/components/schemas/BigCommerceChannel' customFields: type: array items: type: string productMetafields: type: array items: $ref: '#/components/schemas/BigCommerceMetafield' variantMetafields: type: array items: $ref: '#/components/schemas/BigCommerceMetafield' required: - storeHash x-discriminator-fields: - storeHash UniqueIDColumn: type: string description: >- Name of a column that contains a unique ID which will be used as `objectID` in Algolia. MethodType: type: string description: HTTP method to be used for retrieving your data. enum: - GET - POST SourceJSON: type: object description: Specific configuration attributes of a `json` source. additionalProperties: false properties: url: type: string description: URL of the file. uniqueIDColumn: $ref: '#/components/schemas/UniqueIDColumn' method: $ref: '#/components/schemas/MethodType' required: - url MappingTypeCSV: type: string enum: - string - integer - float - boolean - json SourceCSV: type: object description: Specific configuration attributes of a `csv` source. additionalProperties: false properties: url: type: string description: URL of the file. uniqueIDColumn: $ref: '#/components/schemas/UniqueIDColumn' mapping: type: object description: | Key-value pairs of column names and their expected types. x-additionalPropertyName: column name additionalProperties: $ref: '#/components/schemas/MappingTypeCSV' method: $ref: '#/components/schemas/MethodType' delimiter: type: string minLength: 1 maxLength: 1 default: ',' description: >- The character used to split the value on each line, default to a comma (\r, \n, 0xFFFD, and space are forbidden). required: - url BigQueryDataType: type: string enum: - ga4 - ga360 SourceBigQuery: type: object description: Specific configuration attributes of a `bigquery` source. additionalProperties: false properties: projectID: type: string description: Project ID of the BigQuery source. datasetID: type: string description: Dataset ID of the BigQuery source. dataType: $ref: '#/components/schemas/BigQueryDataType' table: type: string description: Table name for the BigQuery export. tablePrefix: type: string description: Table prefix for a Google Analytics 4 data export to BigQuery. customSQLRequest: type: string description: Custom SQL request to extract data from the BigQuery table. uniqueIDColumn: $ref: '#/components/schemas/UniqueIDColumn' required: - projectID - datasetID x-discriminator-fields: - projectID SourceGA4BigQueryExport: type: object description: Specific configuration attributes of a `ga4BigqueryExport` source. additionalProperties: false properties: projectID: type: string description: GCP project ID that the BigQuery export writes to. datasetID: type: string description: BigQuery dataset ID that the BigQuery export writes to. tablePrefix: type: string description: Prefix of the tables that the BigQuery Export writes to. example: events_intraday_ required: - projectID - datasetID - tablePrefix x-discriminator-fields: - projectID - datasetID - tablePrefix SourceDocker: type: object description: Specific configuration attributes of a `docker` source. additionalProperties: false properties: image: type: string description: Name of the connector. example: zendesk configuration: type: object description: Configuration of the spec. required: - image - configuration x-discriminator-fields: - image - configuration SourceUpdateShopify: type: object description: Specific configuration attributes of a `shopify` source. additionalProperties: false properties: featureFlags: type: object description: Feature flags for the Shopify source. additionalProperties: true sourceShopifyBase: type: object additionalProperties: false properties: shopURL: type: string description: URL of the Shopify store. required: - shopURL x-discriminator-fields: - shopURL SourceShopify: allOf: - $ref: '#/components/schemas/SourceUpdateShopify' - $ref: '#/components/schemas/sourceShopifyBase' SourceAlgoliaIndex: type: object description: Specific configuration attributes of an `algoliaIndex` source. additionalProperties: false properties: indexName: type: string description: Name of the Algolia index to read records from. filters: type: string description: > SQL-like filter expression applied while browsing the source index. See [filters](https://www.algolia.com/doc/api-reference/api-parameters/filters/). required: - indexName x-discriminator-fields: - indexName SourceInput: oneOf: - $ref: '#/components/schemas/SourceCommercetools' - $ref: '#/components/schemas/SourceBigCommerce' - $ref: '#/components/schemas/SourceJSON' - $ref: '#/components/schemas/SourceCSV' - $ref: '#/components/schemas/SourceBigQuery' - $ref: '#/components/schemas/SourceGA4BigQueryExport' - $ref: '#/components/schemas/SourceDocker' - $ref: '#/components/schemas/SourceShopify' - $ref: '#/components/schemas/SourceAlgoliaIndex' Source: type: object additionalProperties: false properties: sourceID: $ref: '#/components/schemas/sourceID' type: $ref: '#/components/schemas/SourceType' name: type: string owner: $ref: '#/components/schemas/owner' input: $ref: '#/components/schemas/SourceInput' authenticationID: $ref: '#/components/schemas/authenticationID' createdAt: $ref: '#/components/schemas/CreatedAt' updatedAt: $ref: '#/components/schemas/updatedAt' required: - sourceID - type - name - createdAt - updatedAt SourceCreate: type: object additionalProperties: false properties: type: $ref: '#/components/schemas/SourceType' name: type: string description: Descriptive name of the source. input: $ref: '#/components/schemas/SourceInput' authenticationID: $ref: '#/components/schemas/authenticationID' required: - type - name SourceCreateResponse: type: object additionalProperties: false properties: sourceID: $ref: '#/components/schemas/sourceID' name: type: string description: Descriptive name of the source. createdAt: $ref: '#/components/schemas/CreatedAt' required: - sourceID - name - createdAt SourceSearch: type: object additionalProperties: false properties: sourceIDs: type: array items: type: string required: - sourceIDs SourceUpdateCommercetools: type: object description: Specific configuration attributes of a `commercetools` source. additionalProperties: false properties: storeKeys: type: array items: description: Unique and immutable key of the referenced store. type: string locales: type: array description: Locales for your commercetools stores. items: type: string pattern: ^[a-z]{2}(-[A-Z]{2})?$ description: >- Locale specified as combination of a two-letter language code and an optional two-letter country code. example: fr-FR url: type: string fallbackIsInStockValue: type: boolean description: > Whether a fallback value is stored in the Algolia record if there's no inventory information about the product. productQueryPredicate: type: string description: > Predicate to filter out specific products when indexing. For more information, see [Query Predicate](https://docs.commercetools.com/api/predicates/query). useImagesObjects: type: boolean description: > When set to true, the connector indexes objects with all images attributes instead of only the URLs. categoriesCustomFieldsFullPath: type: boolean description: > When set to true, the connector uses the complete category path (e.g. "Root > Level 1 > Category name") in `categoriesCustomFields`. default: true customFields: $ref: '#/components/schemas/CommercetoolsCustomFields' SourceUpdateDocker: type: object description: Specific configuration attributes of a `docker` source. additionalProperties: false properties: configuration: type: object description: Configuration of the spec. required: - configuration x-discriminator-fields: - configuration SourceUpdateAlgoliaIndex: type: object description: Specific configuration attributes of an `algoliaIndex` source. additionalProperties: false properties: indexName: type: string description: Name of the Algolia index to read records from. filters: type: string description: > SQL-like filter expression applied while browsing the source index. See [filters](https://www.algolia.com/doc/api-reference/api-parameters/filters/). SourceUpdateInput: oneOf: - $ref: '#/components/schemas/SourceUpdateCommercetools' - $ref: '#/components/schemas/SourceJSON' - $ref: '#/components/schemas/SourceCSV' - $ref: '#/components/schemas/SourceBigQuery' - $ref: '#/components/schemas/SourceGA4BigQueryExport' - $ref: '#/components/schemas/SourceUpdateDocker' - $ref: '#/components/schemas/SourceUpdateShopify' - $ref: '#/components/schemas/SourceUpdateAlgoliaIndex' SourceUpdate: type: object additionalProperties: false properties: name: type: string description: Descriptive name of the source. input: $ref: '#/components/schemas/SourceUpdateInput' authenticationID: $ref: '#/components/schemas/authenticationID' SourceUpdateResponse: type: object additionalProperties: false properties: sourceID: $ref: '#/components/schemas/sourceID' name: type: string description: Descriptive name of the source. updatedAt: $ref: '#/components/schemas/updatedAt' required: - sourceID - name - updatedAt EntityType: type: string description: Type of entity to update. enum: - product - collection RunSourcePayload: type: object additionalProperties: false properties: indexToInclude: type: array description: List of index names to include in reindex/update. items: type: string indexToExclude: type: array description: List of index names to exclude in reindex/update. items: type: string entityIDs: type: array items: type: string description: List of entityIDs to update. entityType: $ref: '#/components/schemas/EntityType' runMetadata: type: object additionalProperties: true description: Additional information that will be passed to the created runs. ActionType: type: string description: Action to perform on the Algolia index. enum: - replace - save - partial - partialNoCreate - append TriggerType: type: string description: | Task trigger, describing when a task should run. - `onDemand`. Manually trigger the task with the `/run` endpoint. - `schedule`. Regularly trigger the task on a `cron` schedule. - `subscription`. Trigger the task after an event is received, such as, a webhook. - `streaming`. Run the task continuously. enum: - onDemand - schedule - subscription - streaming taskSortKeys: type: string description: Property by which to sort the list of tasks. default: createdAt enum: - enabled - triggerType - action - updatedAt - createdAt taskID: type: string description: Universally unique identifier (UUID) of a task. example: 6c02aeb1-775e-418e-870b-1faccd4b2c0f Cron: type: string description: Cron expression for the task's schedule. example: '* * 1 * *' LastRun: description: The last time the scheduled task ran in RFC 3339 format. type: string NextRun: description: The next scheduled run of the task in RFC 3339 format. type: string MappingFormatSchema: type: string description: Mapping format schema. enum: - mappingkit/v1 MappingFieldDirective: type: object additionalProperties: false description: >- Describes how a field should be resolved by applying a set of directives. properties: fieldKey: description: Destination field key. type: string value: type: object additionalProperties: true description: How the destination field should be resolved from the source. required: - fieldKey - value MappingKitAction: type: object additionalProperties: false description: >- Describes how a destination object should be resolved by means of applying a set of directives. properties: id: description: ID to uniquely identify this action. type: string enabled: description: Whether this action has any effect. type: boolean trigger: description: >- Condition which must be satisfied to apply the action. If this evaluates to false, the action is not applied, and the process attempts to apply the next action, if any. type: string fieldDirectives: type: array items: $ref: '#/components/schemas/MappingFieldDirective' required: - enabled - trigger - fieldDirectives MappingInput: type: object additionalProperties: false description: Transformations to apply to the source, serialized as a JSON string. properties: format: $ref: '#/components/schemas/MappingFormatSchema' actions: type: array items: $ref: '#/components/schemas/MappingKitAction' required: - format - actions x-discriminator-fields: - format - actions StreamingInput: title: Streaming input type: object additionalProperties: false description: >- Input for a `streaming` task whose source is of type `ga4BigqueryExport` and for which extracted data is continuously streamed. properties: mapping: $ref: '#/components/schemas/MappingInput' required: - mapping x-discriminator-fields: - mapping DockerStreamsSyncMode: type: string description: The strategy to use to fetch the data. enum: - incremental - fullTable DockerStreams: type: object properties: name: type: string description: The name of the stream to fetch the data from (e.g. table name). properties: type: array description: The properties of the stream to select (e.g. column). items: type: string syncMode: $ref: '#/components/schemas/DockerStreamsSyncMode' required: - name - syncMode DockerStreamsInput: title: Docker streams description: The selected streams of an airbyte connector. type: object properties: streams: type: array items: $ref: '#/components/schemas/DockerStreams' required: - streams x-discriminator-fields: - streams ShopifyMetafield: type: object additionalProperties: false description: Represents a metafield in Shopify. properties: namespace: type: string key: type: string value: type: string required: - namespace - key - value ShopifyMarket: type: object additionalProperties: false description: Represents a market in Shopify. properties: countries: type: array items: type: string currencies: type: array items: type: string locales: type: array items: type: string required: - countries - currencies - locales ShopifyInput: title: Shopify input type: object additionalProperties: false description: >- Represents the required elements of the task input when using a `shopify` source. properties: metafields: type: array items: $ref: '#/components/schemas/ShopifyMetafield' market: $ref: '#/components/schemas/ShopifyMarket' required: - metafields - market TaskInput: description: Configuration of the task, depending on its type. oneOf: - $ref: '#/components/schemas/StreamingInput' - $ref: '#/components/schemas/DockerStreamsInput' - $ref: '#/components/schemas/ShopifyInput' failureThreshold: type: integer minimum: 0 maximum: 100 description: >- Maximum accepted percentage of failures for a task run to finish successfully. cursor: type: string description: Date and time when the last cursor was created, in RFC 3339 format. Notifications: type: object additionalProperties: false description: Notifications settings for a task. properties: email: title: emailNotifications type: object additionalProperties: false properties: enabled: description: >- Whether to send email notifications, note that this doesn't prevent the task from being blocked. type: boolean required: - email Policies: type: object additionalProperties: false description: Set of rules for a task. properties: criticalThreshold: description: >- The number of critical failures in a row before blocking the task and sending a notification. type: integer minimum: 1 maximum: 10 Task: type: object additionalProperties: false properties: taskID: $ref: '#/components/schemas/taskID' sourceID: $ref: '#/components/schemas/sourceID' destinationID: $ref: '#/components/schemas/destinationID' cron: $ref: '#/components/schemas/Cron' lastRun: $ref: '#/components/schemas/LastRun' nextRun: $ref: '#/components/schemas/NextRun' owner: $ref: '#/components/schemas/owner' input: $ref: '#/components/schemas/TaskInput' enabled: type: boolean default: true description: Whether the task is enabled. failureThreshold: $ref: '#/components/schemas/failureThreshold' action: $ref: '#/components/schemas/ActionType' subscriptionAction: $ref: '#/components/schemas/ActionType' cursor: $ref: '#/components/schemas/cursor' notifications: $ref: '#/components/schemas/Notifications' policies: $ref: '#/components/schemas/Policies' createdAt: $ref: '#/components/schemas/CreatedAt' updatedAt: $ref: '#/components/schemas/updatedAt' required: - taskID - sourceID - destinationID - enabled - createdAt - updatedAt TaskCreate: type: object additionalProperties: false description: API request body for creating a task. properties: sourceID: $ref: '#/components/schemas/sourceID' destinationID: $ref: '#/components/schemas/destinationID' action: $ref: '#/components/schemas/ActionType' subscriptionAction: $ref: '#/components/schemas/ActionType' cron: $ref: '#/components/schemas/Cron' enabled: type: boolean description: Whether the task is enabled. failureThreshold: $ref: '#/components/schemas/failureThreshold' input: $ref: '#/components/schemas/TaskInput' cursor: $ref: '#/components/schemas/cursor' notifications: $ref: '#/components/schemas/Notifications' policies: $ref: '#/components/schemas/Policies' required: - sourceID - destinationID - action TaskCreateResponse: type: object additionalProperties: false description: API response for creating a task. properties: taskID: $ref: '#/components/schemas/taskID' createdAt: $ref: '#/components/schemas/CreatedAt' required: - taskID - createdAt TaskSearch: type: object additionalProperties: false properties: taskIDs: type: array items: $ref: '#/components/schemas/taskID' required: - taskIDs TaskReplace: type: object additionalProperties: false description: API request body for updating a task. properties: destinationID: $ref: '#/components/schemas/destinationID' action: $ref: '#/components/schemas/ActionType' subscriptionAction: $ref: '#/components/schemas/ActionType' cron: $ref: '#/components/schemas/Cron' enabled: type: boolean description: Whether the task is enabled. failureThreshold: $ref: '#/components/schemas/failureThreshold' input: $ref: '#/components/schemas/TaskInput' cursor: $ref: '#/components/schemas/cursor' notifications: $ref: '#/components/schemas/Notifications' policies: $ref: '#/components/schemas/Policies' required: - destinationID - action TaskUpdateResponse: type: object description: API response for updating a task. additionalProperties: false properties: taskID: $ref: '#/components/schemas/taskID' updatedAt: $ref: '#/components/schemas/updatedAt' required: - taskID - updatedAt TaskUpdate: type: object additionalProperties: false description: API request body for partially updating a task. properties: destinationID: $ref: '#/components/schemas/destinationID' cron: $ref: '#/components/schemas/Cron' input: $ref: '#/components/schemas/TaskInput' enabled: type: boolean description: Whether the task is enabled. subscriptionAction: $ref: '#/components/schemas/ActionType' failureThreshold: $ref: '#/components/schemas/failureThreshold' notifications: $ref: '#/components/schemas/Notifications' policies: $ref: '#/components/schemas/Policies' RunTaskPayload: type: object additionalProperties: false properties: runMetadata: type: object additionalProperties: true description: Additional information that will be passed to the created run. RunResponse: type: object additionalProperties: false description: API response for running a task. properties: runID: $ref: '#/components/schemas/RunID' createdAt: $ref: '#/components/schemas/CreatedAt' required: - runID - createdAt OnDemandTriggerType: type: string description: Task is run manually, with the `/run` endpoint. enum: - onDemand OnDemandTrigger: type: object additionalProperties: false description: Trigger information for manually-triggered tasks. properties: type: $ref: '#/components/schemas/OnDemandTriggerType' lastRun: $ref: '#/components/schemas/LastRun' required: - type ScheduleTriggerType: type: string description: Task runs on a schedule. enum: - schedule ScheduleTrigger: type: object additionalProperties: false description: Trigger information for scheduled tasks. properties: type: $ref: '#/components/schemas/ScheduleTriggerType' cron: $ref: '#/components/schemas/Cron' lastRun: $ref: '#/components/schemas/LastRun' nextRun: $ref: '#/components/schemas/NextRun' required: - type - cron - nextRun SubscriptionTriggerType: type: string description: Task runs after receiving subscribed event. enum: - subscription SubscriptionTrigger: type: object additionalProperties: false description: Trigger input for subscription tasks. properties: type: $ref: '#/components/schemas/SubscriptionTriggerType' required: - type StreamingTriggerType: type: string description: Task runs continuously. enum: - streaming StreamingTrigger: type: object additionalProperties: false description: Trigger input for continuously running tasks. properties: type: $ref: '#/components/schemas/StreamingTriggerType' required: - type Trigger: description: Trigger that runs the task. oneOf: - $ref: '#/components/schemas/OnDemandTrigger' - $ref: '#/components/schemas/ScheduleTrigger' - $ref: '#/components/schemas/SubscriptionTrigger' - $ref: '#/components/schemas/StreamingTrigger' TaskV1: type: object additionalProperties: false deprecated: true description: >- The V1 task object. Use methods and types that don't contain the V1 suffix. properties: taskID: $ref: '#/components/schemas/taskID' sourceID: $ref: '#/components/schemas/sourceID' destinationID: $ref: '#/components/schemas/destinationID' trigger: $ref: '#/components/schemas/Trigger' input: $ref: '#/components/schemas/TaskInput' enabled: type: boolean default: true description: Whether the task is enabled. failureThreshold: $ref: '#/components/schemas/failureThreshold' action: $ref: '#/components/schemas/ActionType' cursor: $ref: '#/components/schemas/cursor' notifications: $ref: '#/components/schemas/Notifications' policies: $ref: '#/components/schemas/Policies' createdAt: $ref: '#/components/schemas/CreatedAt' updatedAt: $ref: '#/components/schemas/updatedAt' required: - taskID - sourceID - destinationID - trigger - enabled - createdAt - updatedAt OnDemandTriggerInput: type: object additionalProperties: false description: Trigger information for manually-triggered tasks. properties: type: $ref: '#/components/schemas/OnDemandTriggerType' required: - type ScheduleTriggerInput: type: object additionalProperties: false description: Trigger input for scheduled tasks. properties: type: $ref: '#/components/schemas/ScheduleTriggerType' cron: $ref: '#/components/schemas/Cron' required: - type - cron x-discriminator-fields: - cron TaskCreateTrigger: oneOf: - $ref: '#/components/schemas/OnDemandTriggerInput' - $ref: '#/components/schemas/ScheduleTriggerInput' - $ref: '#/components/schemas/SubscriptionTrigger' - $ref: '#/components/schemas/StreamingTrigger' TaskCreateV1: type: object additionalProperties: false deprecated: true description: >- API request body for creating a task using the V1 shape. Use methods and types that don't contain the V1 suffix. properties: sourceID: $ref: '#/components/schemas/sourceID' destinationID: $ref: '#/components/schemas/destinationID' trigger: $ref: '#/components/schemas/TaskCreateTrigger' action: $ref: '#/components/schemas/ActionType' enabled: type: boolean description: Whether the task is enabled. failureThreshold: $ref: '#/components/schemas/failureThreshold' input: $ref: '#/components/schemas/TaskInput' cursor: $ref: '#/components/schemas/cursor' required: - sourceID - destinationID - trigger - action TriggerUpdateInput: type: object additionalProperties: false description: Trigger for a task update. properties: cron: $ref: '#/components/schemas/Cron' required: - cron Enabled: type: boolean description: Whether the task is enabled. TaskUpdateV1: type: object additionalProperties: false deprecated: true description: >- API request body for updating a task using the V1 shape. Use methods and types that don't contain the V1 suffix. properties: destinationID: $ref: '#/components/schemas/destinationID' trigger: $ref: '#/components/schemas/TriggerUpdateInput' input: $ref: '#/components/schemas/TaskInput' enabled: $ref: '#/components/schemas/Enabled' failureThreshold: $ref: '#/components/schemas/failureThreshold' transformationSortKeys: type: string description: Property by which to sort the list of transformations. default: createdAt enum: - name - updatedAt - createdAt TransformationType: type: string description: The type of transformation, which can be either 'code' or 'noCode'. enum: - code - noCode AuthenticationIDs: description: The authentications associated with the current transformation. type: array items: $ref: '#/components/schemas/authenticationID' Code: type: string deprecated: true description: >- It is deprecated. Use the `input` field with proper `type` instead to specify the transformation code. TransformationCode: title: Code type: object additionalProperties: false description: >- Input for a transformation that contains the source code of the transformation. properties: code: type: string description: The source code of the transformation. required: - code TransformationNoCodeStep: type: object description: A step in a no-code transformation. TransformationNoCode: title: No-code type: object additionalProperties: false description: Input for a no-code transformation that contains a series of steps. properties: steps: type: array items: $ref: '#/components/schemas/TransformationNoCodeStep' required: - steps TransformationInput: description: >- The input for the transformation, which can be either code or a no-code configuration. oneOf: - $ref: '#/components/schemas/TransformationCode' - $ref: '#/components/schemas/TransformationNoCode' Name: type: string description: The uniquely identified name of your transformation. Description: type: string description: A descriptive name for your transformation of what it does. Transformation: type: object additionalProperties: false properties: transformationID: $ref: '#/components/schemas/transformationID' authenticationIDs: $ref: '#/components/schemas/AuthenticationIDs' code: $ref: '#/components/schemas/Code' type: $ref: '#/components/schemas/TransformationType' input: $ref: '#/components/schemas/TransformationInput' name: $ref: '#/components/schemas/Name' description: $ref: '#/components/schemas/Description' owner: $ref: '#/components/schemas/owner' createdAt: $ref: '#/components/schemas/CreatedAt' updatedAt: $ref: '#/components/schemas/updatedAt' required: - transformationID - code - name - createdAt - updatedAt TransformationCreate: type: object additionalProperties: false description: API request body for creating a transformation. properties: code: $ref: '#/components/schemas/Code' name: $ref: '#/components/schemas/Name' type: $ref: '#/components/schemas/TransformationType' input: $ref: '#/components/schemas/TransformationInput' description: $ref: '#/components/schemas/Description' authenticationIDs: $ref: '#/components/schemas/AuthenticationIDs' required: - name TransformationCreateResponse: type: object additionalProperties: false description: API response for creating a transformation. properties: transformationID: $ref: '#/components/schemas/transformationID' createdAt: $ref: '#/components/schemas/CreatedAt' required: - transformationID - createdAt TransformationTry: type: object additionalProperties: false properties: code: $ref: '#/components/schemas/Code' type: $ref: '#/components/schemas/TransformationType' input: $ref: '#/components/schemas/TransformationInput' sampleRecord: description: The record to apply the given code to. type: object authentications: type: array items: $ref: '#/components/schemas/AuthenticationCreate' required: - sampleRecord TransformationTryResponse: type: object additionalProperties: false properties: payloads: type: array description: >- The array of stringified records returned by the transformation service. items: type: string error: title: transformationError type: object description: The error if the transformation failed. properties: code: description: The error status code. type: integer message: description: A descriptive message explaining the failure. type: string required: - payloads TransformationSearch: type: object additionalProperties: false properties: transformationIDs: type: array items: $ref: '#/components/schemas/transformationID' required: - transformationIDs TransformationUpdateResponse: type: object description: API response for updating a transformation. additionalProperties: false properties: transformationID: $ref: '#/components/schemas/transformationID' updatedAt: $ref: '#/components/schemas/updatedAt' required: - transformationID - updatedAt RunStatus: type: string description: Task run status. enum: - created - started - finished - skipped RunType: type: string description: Task run type. enum: - reindex - update - discover - validate - push runSortKeys: type: string description: Property by which to sort the list of task runs. default: createdAt enum: - status - updatedAt - createdAt RunOutcome: type: string description: Task run outcome. enum: - success - failure RunReasonCode: type: string description: >- A code for the task run's outcome. A readable description of the code is included in the `reason` response property. enum: - internal - cancelled - critical - no_events - too_many_errors - lacking_events - ok - blocking - idle startedAt: type: string description: Date and time when the task started, in RFC 3339 format. finishedAt: type: string description: Date and time when the task finished, in RFC 3339 format. Run: type: object additionalProperties: false properties: runID: $ref: '#/components/schemas/RunID' appID: type: string taskID: $ref: '#/components/schemas/taskID' status: $ref: '#/components/schemas/RunStatus' progress: title: runProgress type: object additionalProperties: false properties: expectedNbOfEvents: type: integer receivedNbOfEvents: type: integer required: - expectedNbOfEvents - receivedNbOfEvents outcome: $ref: '#/components/schemas/RunOutcome' failureThreshold: $ref: '#/components/schemas/failureThreshold' reason: type: string description: More information about the task run's outcome. reasonCode: $ref: '#/components/schemas/RunReasonCode' type: $ref: '#/components/schemas/RunType' createdAt: $ref: '#/components/schemas/CreatedAt' startedAt: $ref: '#/components/schemas/startedAt' finishedAt: $ref: '#/components/schemas/finishedAt' required: - runID - appID - taskID - status - type - createdAt Window: type: object additionalProperties: false description: Time window by which to filter the observability data. properties: startDate: type: string description: >- Date and time representing the oldest data in the time window, in RFC 3339 format. endDate: type: string description: >- Date and time representing the newest data in the time window, in RFC 3339 format. required: - startDate - endDate RunListResponse: type: object additionalProperties: false properties: runs: type: array items: $ref: '#/components/schemas/Run' pagination: $ref: '#/components/schemas/Pagination' window: $ref: '#/components/schemas/Window' required: - runs - pagination - window eventSortKeys: type: string description: Property by which to sort the list of task run events. enum: - status - type - publishedAt responses: BadRequest: description: Bad request or request arguments. content: application/json: schema: $ref: '#/components/schemas/ErrorBase' FeatureNotEnabled: description: This feature is not enabled on your Algolia account. content: application/json: schema: $ref: '#/components/schemas/ErrorBase' MethodNotAllowed: description: Method not allowed with this API key. content: application/json: schema: $ref: '#/components/schemas/ErrorBase' IndexNotFound: description: Index not found. content: application/json: schema: $ref: '#/components/schemas/ErrorBase' x-tagGroups: - name: Resources tags: - authentications - destinations - observability - sources - tasks - transformations x-timeouts: browser: connect: 25000 read: 25000 write: 25000 server: connect: 25000 read: 25000 write: 25000