Get Started
Milvus offers RESTful API for you to manipulate your collections and data stored in them. Before you dive in, there are several things that are worth noting:
Understanding the API endpoints
These API endpoints involve manipulating collections in a specified cluster as well as the data in a specific collection.
The prefix of an API endpoint should always be the URI of your Milvus instance, such as localhost:19530.
The following is the API endpoint used to list collections in a Milvus cluster.
export CLUSTER_ENDPOINT="http://localhost:19530"curl --request POST \--url "${CLUSTER_ENDPOINT}/v2/vectordb/collections/list" \--header 'accept: application/json' \--header 'content-type: application/json' \-d '{"dbName": "_default"}'
Authentication credentials
With default settings, you do not need to provide any authentication credentials to access the API endpoints. However, if you have enabled authentication in your Milvus instance, you need to provide the correct credentials in the request header. You can use a token as the authentication method when you access the API endpoints. To obtain a token, you should use a colon (:) to concatenate the username and password that you use to access your Milvus instance. For example, root:milvus.
export CLUSTER_ENDPOINT="http://localhost:19530"export TOKEN="root:milvus"curl --request POST \--url "${CLUSTER_ENDPOINT}/v2/vectordb/collections/list" \--header "Authorization: Bearer ${TOKEN}" \--header 'accept: application/json' \--header 'content-type: application/json' \-d '{"dbName": "_default"}'
Request Timeout
You can set a Request-Timeout header for a request RESTful request to determine the timeout duration for it at the server side. For example, the following request has its request timeout set to 5, indicating that the request fails with HTTP 408 if no response is received 5 seconds after the request is sent.
A proper request timeout may help your Zilliz Cloud clusters to release resources in time. In common cases, a timeout duration of 5 to 10 seconds suffices. However, you should set it based on your actual situations, such as network conditions and service payload.
export CLUSTER_ENDPOINT="http://localhost:19530"export TOKEN="root:milvus"curl --request GET \--url "${CLUSTER_ENDPOINT}/v2/vectordb/collections/list" \--header "Authorization: Bearer ${TOKEN}" \--header "Request-Timeout: 10"--header "Content-Type: application/json" \-d '{}'
API endpoint versioning
Milvus offers two sets of API endpoints, namely v1 and v2. The v1 endpoints only covers collection and vector operations, while the v2 endpoints cover more operations such as index management, partition management, and role-based access control (RBAC) operations. The v1 endpoints are to be deprecated in the near future, and the v2 endpoints are the recommended ones to use.