Your photos.
Your quality.
Our API.

Export from Lightroom, upload pre-optimized images. We handle storage, EXIF extraction, and a fast API — you keep full control over every pixel.

GET /api/tenants/{tenantId}/photos/{photoId}
{
  "original": {
    "photo_id": "IMG_8113",
    "filename": "IMG_8113__original.jpg",
    "width": 6000, "height": 4000,
    "exif": {
      "camera_model": "Canon EOS R5",
      "iso": 400, "aperture": 2.8
    },
    ...
  },
  "variants": [
    { "filename": "...__large.jpg", "width": 2400, ... },
    { "filename": "...__thumb.jpg", "width": 400,  ... }
  ]
}
Direct S3
Zero processing overhead
64 KB
EXIF extraction per photo
3 Lines
Vue.js embed code
100%
RESTful API coverage

Everything you need to serve photos

Built for photographers who care about image quality and developers who need a reliable API.

Variant System

Upload multiple sizes of the same photo. Our filename pattern groups original, large, and thumbnail variants together automatically.

EXIF Metadata

Camera, lens, ISO, aperture, shutter speed — automatically extracted using just 64KB per photo. Fully searchable via the API.

Direct S3 Uploads

Upload via presigned URLs straight to S3. No server bottleneck, no re-encoding. Your files arrive exactly as exported.

Albums & Taxonomies

Organize photos into albums and tag them with custom taxonomies. Filter and query your library with flexible API endpoints.

Vue.js Display Library

Pre-built Vue 3 components and composables for photos, albums, and taxonomies. Install photo-service-vue via npm — includes Nuxt module with SSR support.

Teams & Multi-Tenant

Invite team members, manage roles, and keep each studio's data fully isolated. Bring your own S3 bucket or use ours.

How it works

From Lightroom to your website in four steps.

1

Export

Export from Lightroom at whatever sizes and quality you want. Name files with our simple pattern.

2

Upload

Drag and drop into our uploader. Files go straight to S3 — no server-side bottleneck.

3

Auto-process

We extract EXIF metadata, group variants, and index everything. Real-time progress via WebSocket.

4

Embed

Use our Vue.js library or REST API to display photos on your website with responsive variant selection.

A clean, predictable API

RESTful endpoints for photos, albums, taxonomies, and more. Token-based auth via Laravel Sanctum.

Request
Terminal
$ curl "https://api.photoservice.com/api/tenants/1/\
     photos/IMG_8113"
Response
200 OK · application/json
{
  "original": {
    "photo_id": "IMG_8113",
    "filename": "IMG_8113__original.jpg",
    "url": "https://s3.../original.jpg",
    "width": 6000, "height": 4000,
    "file_size": 5242880,
    "mime_type": "image/jpeg",
    "exif": {
      "camera_make": "Canon",
      "camera_model": "Canon EOS R5",
      "lens": "RF 24-70mm f/2.8",
      "iso": 400, "aperture": 2.8,
      "shutter_speed": "1/250",
      "focal_length": "50mm"
    },
    "created_at": "2026-01-15T14:30:00+00:00",
    ...
  },
  "variants": [
    { "filename": "...__large.jpg", "width": 2400, "height": 1600, ... },
    { "filename": "...__thumb.jpg", "width": 400,  "height": 267,  ... }
  ]
}

Drop-in Vue.js components

Install our Vue 3 library and start displaying photos, albums, and taxonomies with minimal setup.

  • Components: PhotoGallery, AlbumList, TaxonomyTerms, and more
  • Composables: usePhotos(), useAlbum(), useTaxonomy(), and more
  • Full slot customization for loading, error, and default states
  • Nuxt module with SSR, SPA, and SSG support
Terminal
$ npm install photo-service-vue

// main.js
import { PhotoServicePlugin } from 'photo-service-vue'
import 'photo-service-vue/dist/style.css'

app.use(PhotoServicePlugin, {
  baseUrl: 'https://photoservice.ibexel.com',
  tenantId: 1,
})

Simple, transparent pricing

Start with a 30-day free trial. No credit card required.

Starter

$10.00 /month
$100.00 /year

30-day free trial

  • 50 GB storage
  • Up to 5 team members
  • Email support
  • API access
Start Free Trial
Most Popular

Professional

$30.00 /month
$300.00 /year

30-day free trial

  • 250 GB storage
  • Up to 15 team members
  • Priority support
  • API access
Start Free Trial

Studio

$80.00 /month
$800.00 /year
  • 1 TB storage
  • Up to 50 team members
  • Dedicated support
  • API access
Get Started

Ready to get started?

Free 30-day trial on Starter and Professional plans. No credit card required.