Quick Start
This guide walks you through creating your first vector table and running a semantic search query in under 5 minutes.
Prerequisites
- An Embedd.to API key
- A source database (Snowflake or PostgreSQL) with a table containing text data
- An embedding provider API key (OpenAI or Google Gemini)
Step 1: Create an Environment
curl -X POST https://api.embedd.to/v1/environments \
-H "Authorization: Bearer sk_your_key" \
-H "Content-Type: application/json" \
-d '{"name": "production"}'
{
"id": "env_abc123",
"org_id": "org_xyz",
"name": "production",
"created_at": "2025-01-15T10:00:00Z"
}
Step 2: Create a Connection
curl -X POST https://api.embedd.to/v1/providers/snowflake/connections \
-H "Authorization: Bearer sk_your_key" \
-H "X-Environment-Id: env_abc123" \
-H "Content-Type: application/json" \
-d '{
"name": "my-snowflake",
"mode": "managed",
"credentials": {
"auth_method": "password",
"account": "myorg-account",
"user": "EMBEDD_USER",
"password": "secure_password",
"warehouse": "COMPUTE_WH",
"database": "ANALYTICS",
"schema": "PUBLIC",
"role": "EMBEDD_ROLE"
}
}'
Step 3: Test the Connection
curl -X POST https://api.embedd.to/v1/connections/{connection_id}/test \
-H "Authorization: Bearer sk_your_key" \
-H "X-Environment-Id: env_abc123"
{
"status": "connected",
"details": {"latency_ms": 245}
}
Step 4: Register an Embedding Provider
curl -X POST https://api.embedd.to/v1/embedding-providers \
-H "Authorization: Bearer sk_your_key" \
-H "X-Environment-Id: env_abc123" \
-H "Content-Type: application/json" \
-d '{
"name": "my-openai",
"provider": "openai",
"api_key": "sk-proj-...",
"default_model": "text-embedding-3-small"
}'
Step 5: Create a Vector Table
curl -X POST https://api.embedd.to/v1/vector-tables \
-H "Authorization: Bearer sk_your_key" \
-H "X-Environment-Id: env_abc123" \
-H "Content-Type: application/json" \
-d '{
"name": "product-search",
"connection_id": "conn_abc123",
"embedding_provider_id": "ep_abc123",
"source_table": "PRODUCTS",
"primary_key_column": "ID",
"columns": [
{"name": "DESCRIPTION", "role": "embedding", "ordinal": 1},
{"name": "CATEGORY", "role": "metadata", "filter_type": "keyword"},
{"name": "PRICE", "role": "metadata", "filter_type": "float"}
],
"embedding_model": "text-embedding-3-small",
"embedding_dimensions": 1536,
"mode": "managed",
"sync_mode": "cdc"
}'
Step 6: Trigger a Backfill
curl -X POST https://api.embedd.to/v1/vector-tables/{vector_table_id}/backfill \
-H "Authorization: Bearer sk_your_key" \
-H "X-Environment-Id: env_abc123"
The backfill runs asynchronously, reading all rows from the source table, generating embeddings, and storing the vectors.
Step 7: Query
curl -X POST https://api.embedd.to/v1/vector-tables/{vector_table_id}/query \
-H "Authorization: Bearer sk_your_key" \
-H "X-Environment-Id: env_abc123" \
-H "Content-Type: application/json" \
-d '{
"query": "comfortable running shoes",
"limit": 5,
"filters": {
"CATEGORY": {"$eq": "footwear"},
"PRICE": {"$lte": 150}
}
}'
{
"results": [
{
"id": 42,
"similarity_score": 0.92,
"metadata": {"CATEGORY": "footwear", "PRICE": 129.99},
"embedded_text": "Lightweight running shoe with cushioned sole..."
}
],
"query": "comfortable running shoes",
"model": "text-embedding-3-small",
"total_results": 1
}
Next Steps
- Snowflake Provider Guide — Snowflake-specific setup and platform mode
- PostgreSQL Provider Guide — PostgreSQL with pgvector
- API Reference — Full endpoint documentation