Skip to navigation

Image Management

For chat over text, images and short videos, use the OpenAI-compatible Chat Completions API.

These endpoints manage the images in your account. You can upload images for indexing, retrieve image details, list images with filters, and delete images you no longer need. Video search fits use cases that need video context. For most simple use cases, image upload and search is about as accurate as video search, with faster processing and lower cost.

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 message confirming the deletion.