Skip to navigation

Image Management

The Vision API provides endpoints for managing images in your account. You can upload images for indexing, retrieve image details, list images with filters, and delete images when no longer needed. While video search is ideal for more complex use cases that require video context and understanding, for the majority of simple use cases, image upload and search has similiar accuracy to video search but with significantly faster processing and lower costs.

Upload Images

Upload one or more images to your account with optional indexing.

Endpoint

  • POST /v1/images/upload

Request

Bash

curl -X POST https://vision-agent.api.reka.ai/v1/images/upload \
-H "X-Api-Key: YOUR_API_KEY" \
-F "images=@/path/to/image1.jpg" \
-F "images=@/path/to/image2.jpg" \
-F 'metadata={"requests":[{"indexing_config":{"index":true},"metadata":{}},{"indexing_config":{"index":true},"metadata":{}}]}'

Python

import requests
import json
import io
url = f"{BASE_URL}/v1/images/upload"
headers = {
"X-Api-Key": REKA_API_KEY
}
images = [get_image() for _ in range(10)]
metadata = {
"requests": [
{
"indexing_config": {"index": True},
"metadata": {}
} for i in range(len(images))
]
}
# Prepare files and data
files = []
for i, image in enumerate(images):
file_obj = io.BytesIO(image)
files.append(
('images', (f'test_image_{i}.jpg', file_obj, 'image/jpeg'))
)
data = {'metadata': json.dumps(metadata)}
# Make request
response = requests.post(
url,
files=files,
data=data,
)
if response.status_code == 200:
result = response.json()
print("Upload successful:", result)
else:
raise ValueError(
"Error:", response.status_code, response.text
)

Parameters

  • images (required): Image file(s) to upload
  • metadata (optional): JSON object containing configuration for each image:
    • indexing_config: Configuration for indexing
      • index: Boolean indicating whether to index the image
    • metadata: Custom metadata for the image

Response

Returns an array of image upload results with:

  • image_id: Unique identifier for the uploaded image
  • image_url: URL to access the uploaded image
  • indexing_status: Indexing status (1 = indexing in progress, 2 = indexed)
  • image_metadata: Custom metadata fields for the image
  • upload_timestamp: Unix timestamp of when the image was uploaded

Get Image

Retrieve details for a specific image by its ID.

Endpoint

  • GET /v1/images/{image_id}

Request

Bash

curl -X GET https://vision-agent.api.reka.ai/v1/images/550e8400-e29b-41d4-a716-446655440000 \
-H "X-Api-Key: YOUR_API_KEY"

Python

import requests
image_id = "550e8400-e29b-41d4-a716-446655440000"
url = f"{BASE_URL}/v1/images/{image_id}"
headers = {
"X-Api-Key": REKA_API_KEY
}
response = requests.get(url, headers=headers)

Parameters

  • image_id (required, path): The unique identifier of the image to retrieve

Response

Returns the image object with the same structure as the upload response.

List Images

List images in your account with optional pagination.

Endpoint

  • GET /v1/images

Request

Bash

curl -X GET "https://vision-agent.api.reka.ai/v1/images?limit=20&offset=0" \
-H "X-Api-Key: YOUR_API_KEY"

Python

import requests
url = f"{BASE_URL}/v1/images"
params = {
"limit": 20,
"offset": 0,
}
headers = {
"X-Api-Key": REKA_API_KEY
}
response = requests.get(url, params=params, headers=headers)

Parameters

  • limit (optional, query): Maximum number of images to return
  • offset (optional, query): Number of images to skip for pagination

Response

Returns a paginated array of images with the same structure as the upload and get responses.

Delete Image

Delete an image from your account.

Endpoint

  • DELETE /v1/images/{image_id}

Request

Bash

curl -X DELETE https://vision-agent.api.reka.ai/v1/images/550e8400-e29b-41d4-a716-446655440000 \
-H "X-Api-Key: YOUR_API_KEY"

Python

import requests
image_id = "550e8400-e29b-41d4-a716-446655440000"
url = f"{BASE_URL}/v1/images/{image_id}"
headers = {
"X-Api-Key": REKA_API_KEY
}
response = requests.delete(url, headers=headers)
if response.status_code == 200:
result = response.json()
print("Delete successful:", result)
else:
raise ValueError("Error:", response.status_code, response.text)

Parameters

  • image_id (required, path): The unique identifier of the image to delete

Response

Returns a confirmation message indicating the image was deleted successfully.