The API to turn your images to 3D in seconds

Integrating photogrammetry into your applications has never been so easy. Create 3D reconstructions programmatically with simple HTTP requests.

Get started in minutes

Get your API key

Sign up and generate your API key from the dashboard. No credit card required to start.

Make your first request

Upload images or videos and create a 3D reconstruction with a single API call.

Get results instantly

Receive your 3D model URL and metadata as soon as processing completes.

API Reference

Authentication

All API requests require authentication using an API key. Include your key in the request header:

Authorization: Bearer YOUR_API_KEY

Create Reconstruction

Upload images or videos and create a 3D reconstruction. Use multipart/form-data to upload files:

import requests

url = "https://api.reali3.net/v1/reconstruction"
headers = {
    "Authorization": "Bearer YOUR_API_KEY"
}

# Prepare files for upload
files = [
    ("files", ("image1.jpg", open("image1.jpg", "rb"), "image/jpeg")),
    ("files", ("image2.jpg", open("image2.jpg", "rb"), "image/jpeg")),
    ("files", ("image3.jpg", open("image3.jpg", "rb"), "image/jpeg"))
]

response = requests.post(url, headers=headers, files=files)
print(response.json())
const FormData = require('form-data');
const fs = require('fs');
const axios = require('axios');

const form = new FormData();
form.append('files', fs.createReadStream('image1.jpg'));
form.append('files', fs.createReadStream('image2.jpg'));
form.append('files', fs.createReadStream('image3.jpg'));

axios.post('https://api.reali3.net/v1/reconstruction', form, {
  headers: {
    ...form.getHeaders(),
    'Authorization': 'Bearer YOUR_API_KEY'
  }
})
.then(response => console.log(response.data))
.catch(error => console.error(error));
curl -X POST https://api.reali3.net/v1/reconstruction \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "files=@image1.jpg" \
  -F "files=@image2.jpg" \
  -F "files=@image3.jpg"

Request Example

POST /v1/reconstruction HTTP/1.1
Host: api.reali3.net
Authorization: Bearer YOUR_API_KEY
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="files"; filename="image1.jpg"
Content-Type: image/jpeg

[binary file data]
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="files"; filename="image2.jpg"
Content-Type: image/jpeg

[binary file data]
------WebKitFormBoundary7MA4YWxkTrZu0gW--

Response Example

HTTP/1.1 202 Accepted
Content-Type: application/json

{
  "id": "rec_abc123xyz",
  "status": "pending",
  "created_at": "2024-01-15T10:30:00Z",
  "estimated_completion": "2024-01-15T10:32:00Z",
  "files_uploaded": 3,
  "status_url": "https://api.reali3.net/v1/reconstruction/rec_abc123xyz/status"
}

Get Reconstruction Status

Check the status of your reconstruction:

GET https://api.reali3.net/v1/reconstruction/{id}/status

Authorization: Bearer YOUR_API_KEY

Response Example

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "rec_abc123xyz",
  "status": "processing",
  "progress": 65,
  "created_at": "2024-01-15T10:30:00Z",
  "started_at": "2024-01-15T10:30:05Z",
  "estimated_completion": "2024-01-15T10:32:00Z",
  "files_processed": 2,
  "total_files": 3
}

Status values: pending, processing, completed, failed

Download Model

Download your completed 3D model. Supported formats: obj, ply, gltf, glb, stl

GET https://api.reali3.net/v1/reconstruction/{id}/download/{file-type}

Authorization: Bearer YOUR_API_KEY

Response Example

HTTP/1.1 200 OK
Content-Type: application/json

{
  "download_url": "https://cdn.reali3.net/models/rec_abc123xyz/model.gltf",
  "expires_at": "2024-01-22T10:35:00Z",
  "file_size": 5242880,
  "format": "gltf"
}

Frequently Asked Questions

Can I test the Reali3 API for free?

We encourage all customers to test their data for free in the Reali3 studio.

How do I authenticate with the Reali3 API?

All API requests require authentication using a Bearer token. Include your API key in the Authorization header: Authorization: Bearer YOUR_API_KEY. You can get your API key from the dashboard after signing up.

What file formats does the photogrammetry API support?

The Reali3 API supports all common image formats (JPEG, PNG, HEIC) and video formats (MP4, MOV). You can upload multiple files in a single request using multipart/form-data.

What are the API rate limits?

Rate limits vary by plan. Check your dashboard for current rate limit information. Rate limit headers are included in all API responses.

How long does API processing take?

Processing time varies based on the number of images and complexity, but most reconstructions complete in seconds to a few minutes. Use the status endpoint to check progress. The API returns a job ID immediately upon submission.

How do I download my 3D model from the API?

Once processing is complete, use the download endpoint: GET /v1/reconstruction/{id}/download/{file-type}. Supported formats include OBJ, PLY, GLTF, and more. The response includes a direct download URL.

Can I process videos through the API?

Yes, the API supports video files (MP4, MOV). Videos are automatically processed frame by frame, extracting keyframes for photogrammetry. Upload videos the same way you upload images using multipart/form-data.

What happens if my API request fails?

The API returns standard HTTP status codes. 400 for bad requests, 401 for authentication errors, 429 for rate limit exceeded, and 500 for server errors. All error responses include a JSON body with error details and suggested fixes.

How do I check the status of my reconstruction?

Use the status endpoint: GET /v1/reconstruction/{id}/status. It returns the current status (pending, processing, completed, failed) along with progress information and estimated completion time.

Ready to integrate?

Start building with the Reali3 API today. Get your API key in seconds.