curl --request POST \
--url https://api.egp.scale.com/v5/vector-stores/create \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"embedding_config": {
"type": "models_api",
"model_deployment_id": "<string>"
},
"dimensions": 1,
"indexed_metadata_fields": {}
}
'import requests
url = "https://api.egp.scale.com/v5/vector-stores/create"
payload = {
"name": "<string>",
"embedding_config": {
"type": "models_api",
"model_deployment_id": "<string>"
},
"dimensions": 1,
"indexed_metadata_fields": {}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
embedding_config: {type: 'models_api', model_deployment_id: '<string>'},
dimensions: 1,
indexed_metadata_fields: {}
})
};
fetch('https://api.egp.scale.com/v5/vector-stores/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.egp.scale.com/v5/vector-stores/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'embedding_config' => [
'type' => 'models_api',
'model_deployment_id' => '<string>'
],
'dimensions' => 1,
'indexed_metadata_fields' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.egp.scale.com/v5/vector-stores/create"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"embedding_config\": {\n \"type\": \"models_api\",\n \"model_deployment_id\": \"<string>\"\n },\n \"dimensions\": 1,\n \"indexed_metadata_fields\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.egp.scale.com/v5/vector-stores/create")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"embedding_config\": {\n \"type\": \"models_api\",\n \"model_deployment_id\": \"<string>\"\n },\n \"dimensions\": 1,\n \"indexed_metadata_fields\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.egp.scale.com/v5/vector-stores/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"embedding_config\": {\n \"type\": \"models_api\",\n \"model_deployment_id\": \"<string>\"\n },\n \"dimensions\": 1,\n \"indexed_metadata_fields\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"embedding_dimensions": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"embedding_config": {
"type": "models_api",
"model_deployment_id": "<string>"
},
"indexed_metadata_fields": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Create Vector Store
Create a new vector store for storing and querying document embeddings.
The vector store name must be unique within your account and follow naming conventions (3-63 characters, alphanumeric with hyphens/underscores). Once created, the embedding configuration and dimensions are immutable and cannot be changed. To use a different model, you must create a new vector store.
Embedding Configuration: Provide embedding_config (for base or custom model deployments),
embedding_model (shorthand for a base model), or dimensions only (raw embeddings).
- With
embedding_configorembedding_model: dimensions are auto-derived, and documents can be upserted with text content (auto-embedded) or with pre-computed embeddings. - With
dimensionsonly: the store accepts only pre-computed embeddings. Semantic/hybrid queries are not supported (lexical search only).
Indexed Fields: Optionally specify metadata fields to index at creation time. Only indexed fields can be used for filtering — indexing is required, not just a performance optimization. Additional indexed fields can be added later using the configure endpoint, but cannot be removed once added. Keep in mind that each indexed field increases write latency and storage overhead, so only index fields you actively filter on.
curl --request POST \
--url https://api.egp.scale.com/v5/vector-stores/create \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"embedding_config": {
"type": "models_api",
"model_deployment_id": "<string>"
},
"dimensions": 1,
"indexed_metadata_fields": {}
}
'import requests
url = "https://api.egp.scale.com/v5/vector-stores/create"
payload = {
"name": "<string>",
"embedding_config": {
"type": "models_api",
"model_deployment_id": "<string>"
},
"dimensions": 1,
"indexed_metadata_fields": {}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
embedding_config: {type: 'models_api', model_deployment_id: '<string>'},
dimensions: 1,
indexed_metadata_fields: {}
})
};
fetch('https://api.egp.scale.com/v5/vector-stores/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.egp.scale.com/v5/vector-stores/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'embedding_config' => [
'type' => 'models_api',
'model_deployment_id' => '<string>'
],
'dimensions' => 1,
'indexed_metadata_fields' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.egp.scale.com/v5/vector-stores/create"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"embedding_config\": {\n \"type\": \"models_api\",\n \"model_deployment_id\": \"<string>\"\n },\n \"dimensions\": 1,\n \"indexed_metadata_fields\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.egp.scale.com/v5/vector-stores/create")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"embedding_config\": {\n \"type\": \"models_api\",\n \"model_deployment_id\": \"<string>\"\n },\n \"dimensions\": 1,\n \"indexed_metadata_fields\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.egp.scale.com/v5/vector-stores/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"embedding_config\": {\n \"type\": \"models_api\",\n \"model_deployment_id\": \"<string>\"\n },\n \"dimensions\": 1,\n \"indexed_metadata_fields\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"embedding_dimensions": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"embedding_config": {
"type": "models_api",
"model_deployment_id": "<string>"
},
"indexed_metadata_fields": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Body
Request to create a vector store.
The base embedding model to use. Shorthand for embedding_config with type 'base'. Provide either embedding_config or embedding_model, not both.
sentence-transformers/all-MiniLM-L12-v2, sentence-transformers/multi-qa-distilbert-cos-v1, openai/text-embedding-ada-002, openai/text-embedding-3-small, openai/text-embedding-3-large, embed-english-v3.0, embed-english-light-v3.0, embed-multilingual-v3.0, gemini/text-embedding-005, gemini/text-multilingual-embedding-002, gemini/gemini-embedding-001 Response
Successful Response
Response model for vector store operations.

