Skip to main content
Use the Push to Algolia connector to transform your data and send it to Algolia using an API client.

Create a new Push to Algolia connector

  1. Go to the Algolia dashboard and select your Algolia .
  2. On the left sidebar, select Data sources.
  3. On the Connectors page, select Push to Algolia, then click Connect.
  4. Configure your transformation: create a new one or reuse an existing one.
  5. Configure your destination: create a new one or reuse an existing one.
  6. Create the task to generate a taskID.

Usage

Update your API client implementation to use either the WithTransformation helper methods of the Search API client or the pushTask method of the Ingestion API client.

Search API client WithTransformation helper methods

These helper methods of the Search API replace the standard API clients methods (saveObjects, partialUpdateObjects, replaceAllObjects) but use the push method of the Ingestion API. They’re subject to the connector limits. Use the helper methods if:
  • You only have one destination linked to the you’re targeting.
  • You already have an existing implementation using an API client.
  • You only have one Push to Algolia connector.
If you’re using Collections, the feature created one Push connector for you. That means you can’t use the WithTransformation helper methods if you’re using collections and created an additional Push to Algolia connector.
  • Supported:
  • Not supported:
    • 1 Push to Algolia connector and collections
    • Multiple Push to Algolia connectors
If you have more than one Push to Algolia connector, or you’re using a Push to Algolia connector with the Collections feature, use the pushTask method instead.

Save records with transformation

Replace saveObjects with saveObjectsWithTransformation.
var response = await client.SaveObjectsWithTransformationAsync(
  "ALGOLIA_INDEX_NAME",
  new List<Object>
  {
    new Dictionary<string, string> { { "objectID", "1" }, { "name", "Adam" } },
    new Dictionary<string, string> { { "objectID", "2" }, { "name", "Benoit" } },
  },
  true
);

Add or update attributes of multiple records with transformation

Replace partialUpdateObjects with partialUpdateObjectsWithTransformation.
var response = await client.PartialUpdateObjectsWithTransformationAsync(
  "ALGOLIA_INDEX_NAME",
  new List<Object>
  {
    new Dictionary<string, string> { { "objectID", "1" }, { "name", "Adam" } },
    new Dictionary<string, string> { { "objectID", "2" }, { "name", "Benoit" } },
  },
  true,
  true
);

Replace all records with transformation

Replace replaceAllObjects with replaceAllObjectsWithTransformation.
var response = await client.ReplaceAllObjectsWithTransformationAsync(
  "ALGOLIA_INDEX_NAME",
  new List<Object>
  {
    new Dictionary<string, string> { { "objectID", "1" }, { "name", "Adam" } },
    new Dictionary<string, string> { { "objectID", "2" }, { "name", "Benoit" } },
    new Dictionary<string, string> { { "objectID", "3" }, { "name", "Cyril" } },
    new Dictionary<string, string> { { "objectID", "4" }, { "name", "David" } },
    new Dictionary<string, string> { { "objectID", "5" }, { "name", "Eva" } },
    new Dictionary<string, string> { { "objectID", "6" }, { "name", "Fiona" } },
    new Dictionary<string, string> { { "objectID", "7" }, { "name", "Gael" } },
    new Dictionary<string, string> { { "objectID", "8" }, { "name", "Hugo" } },
    new Dictionary<string, string> { { "objectID", "9" }, { "name", "Igor" } },
    new Dictionary<string, string> { { "objectID", "10" }, { "name", "Julia" } },
  },
  3
);

Ingestion API pushTask method

Use the pushTask method of the Ingestion API client if
  • You have multiple destinations linked to the index you’re targeting.
  • You have multiple Push to Algolia connectors, or a Push to Algolia connector and Collections.
var response = await client.PushTaskAsync(
  "6c02aeb1-775e-418e-870b-1faccd4b2c0f",
  new PushTaskPayload
  {
    Action = Enum.Parse<Action>("AddObject"),
    Records = new List<PushTaskRecords>
    {
      new PushTaskRecords
      {
        ObjectID = "o",
        AdditionalProperties = new Dictionary<string, object>
        {
          { "key", "bar" },
          { "foo", "1" },
        },
      },
      new PushTaskRecords
      {
        ObjectID = "k",
        AdditionalProperties = new Dictionary<string, object>
        {
          { "key", "baz" },
          { "foo", "2" },
        },
      },
    },
  }
);

Performance considerations

If you don’t need an Algolia-managed transformation, send records in batches using the regular API client methods to avoid processing overhead.

Supported indexing actions

The Push to Algolia connector supports all action types for batch indexing operations. For deleteObject, delete, and clear actions, it skips the transformation and uses traditional indexing instead.

Connector Debugger

To check and debug pushTask operations:
  • Check incoming events in the Connector Debugger on the Algolia dashboard. The eventID returned by a successful pushTask API call shows the status of the indexing operation.
  • To get real-time feedback, add the watch parameter to the pushTask API call. The response body reports errors and successes.

Limitations

This connector is subject to the following limitations:
Last modified on February 25, 2026