Skip to main content
POST
/
1
/
indexes
/
{indexName}
/
operation
curl
curl --request POST \
  --url https://algolia_application_id.algolia.net/1/indexes/ALGOLIA_INDEX_NAME/operation \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --header 'x-algolia-api-key: ALGOLIA_API_KEY' \
  --header 'x-algolia-application-id: ALGOLIA_APPLICATION_ID' \
  --data '
{
  "operation": "copy",
  "destination": "products",
  "scope": [
    "settings"
  ]
}
'
{
  "taskID": 1514562690001,
  "updatedAt": "2023-07-04T12:49:15Z"
}
Notes:
  • Existing destination indices are overwritten, except for their analytics data.
  • If the destination index doesn’t exist yet, it’s created.
  • This operation is resource-intensive.
Copy
  • If the source index doesn’t exist, copying creates a new index with 0 records and default settings.
  • API keys from the source index are merged with the existing keys in the destination index.
  • You can’t copy the enableReRanking, mode, and replicas settings.
  • You can’t copy to a destination index that already has replicas.
  • Be aware of the size limits.
  • For more information, see Copy indices.
Move
  • If the source index doesn’t exist, moving is ignored without returning an error.
  • When moving an index, the analytics data keeps its original name, and a new set of analytics data is started for the new name. To access the original analytics in the dashboard, create an index with the original name.
  • If the destination index has replicas, moving will overwrite the existing index and copy the data to the replica indices.
  • For more information, see Move indices.
This operation is subject to indexing rate limits. Required ACL: addObject

Authorizations

x-algolia-application-id
string
header
required

Your Algolia application ID.

x-algolia-api-key
string
header
required

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.

Path Parameters

indexName
string
required

Name of the index on which to perform the operation.

Example:

"ALGOLIA_INDEX_NAME"

Body

application/json
operation
enum<string>
required

Operation to perform on the index.

Available options:
move,
copy
Example:

"copy"

destination
string
required

Index name (case-sensitive).

Example:

"products"

scope
enum<string>[]

Only for copying.

If you specify a scope, only the selected scopes are copied. Records and the other scopes are left unchanged. If you omit the scope parameter, everything is copied: records, settings, synonyms, and rules.

Available options:
settings,
synonyms,
rules

Response

OK

Response, taskID, and update timestamp.

taskID
integer<int64>
required

Unique identifier of a task.

A successful API response means that a task was added to a queue. It might not run immediately. You can check the task's progress with the task operation and this task ID.

Example:

1514562690001

updatedAt
string
required

Date and time when the object was updated, in RFC 3339 format.

Example:

"2023-07-04T12:49:15Z"

Last modified on March 23, 2026