Skip to content

Get Images API

Retrieve a list of your uploaded images with pagination and filtering options.

Endpoint

http
GET /get/

Authentication

Required. Include your API key in the Authorization header.

Query Parameters

ParameterTypeDefaultDescription
pageInteger1Page number for pagination
page_sizeInteger10Number of items per page
tagsArray-Filter by specific tags (can be used multiple times)

Response

json
{
  "page": 1,
  "page_size": 10,
  "objects": [
    "https://files.reimage.dev/abc123/xyz789/",
    "https://files.reimage.dev/abc123/abc456/"
  ],
  "urls": [
    "https://files.reimage.dev/abc123/xyz789/original.webp",
    "https://files.reimage.dev/abc123/abc456/original.webp"
  ],
  "thumbnails": [
    "https://files.reimage.dev/abc123/xyz789/h-200_w-200.webp",
    "https://files.reimage.dev/abc123/abc456/h-200_w-200.webp"
  ]
}

Code Examples

javascript
async function getImages(page = 1, pageSize = 10) {
  const response = await fetch(
    `https://api.reimage.dev/get/?page=${page}&page_size=${pageSize}`,
    {
      headers: {
        'Authorization': `Bearer ${process.env.REIMAGE_API_KEY}`
      }
    }
  );

  return await response.json();
}

// Usage
const images = await getImages(1, 20);
console.log(`Retrieved ${images.urls.length} images`);

// Display thumbnails
images.thumbnails.forEach(url => {
  console.log(url);
});
python
import requests
import os

def get_images(page=1, page_size=10):
    """Retrieve paginated list of images"""
    headers = {
        'Authorization': f'Bearer {os.environ.get("REIMAGE_API_KEY")}'
    }
    params = {
        'page': page,
        'page_size': page_size
    }

    response = requests.get(
        'https://api.reimage.dev/get/',
        headers=headers,
        params=params
    )
    response.raise_for_status()

    return response.json()

# Usage
result = get_images(page=1, page_size=20)
print(f"Page {result['page']}: {len(result['urls'])} images")

for url in result['thumbnails']:
    print(url)
php
<?php
function getImages($page = 1, $pageSize = 10) {
    $apiKey = getenv('REIMAGE_API_KEY');
    $url = "https://api.reimage.dev/get/?page=$page&page_size=$pageSize";

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Authorization: Bearer ' . $apiKey
    ]);

    $response = curl_exec($ch);
    curl_close($ch);

    return json_decode($response, true);
}

// Usage
$result = getImages(1, 20);
echo "Retrieved " . count($result['urls']) . " images\n";

foreach ($result['thumbnails'] as $thumbnail) {
    echo $thumbnail . "\n";
}
?>
go
package main

import (
    "encoding/json"
    "fmt"
    "io"
    "net/http"
    "os"
)

type ImagesResponse struct {
    Page       int      `json:"page"`
    PageSize   int      `json:"page_size"`
    Objects    []string `json:"objects"`
    URLs       []string `json:"urls"`
    Thumbnails []string `json:"thumbnails"`
}

func getImages(apiKey string, page, pageSize int) (*ImagesResponse, error) {
    url := fmt.Sprintf("https://api.reimage.dev/get/?page=%d&page_size=%d", page, pageSize)

    req, err := http.NewRequest("GET", url, nil)
    if err != nil {
        return nil, err
    }

    req.Header.Set("Authorization", "Bearer "+apiKey)

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        return nil, err
    }
    defer resp.Body.Close()

    var result ImagesResponse
    if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
        return nil, err
    }

    return &result, nil
}

func main() {
    apiKey := os.Getenv("REIMAGE_API_KEY")
    result, err := getImages(apiKey, 1, 20)

    if err != nil {
        fmt.Printf("Error: %v\n", err)
        return
    }

    fmt.Printf("Page %d: %d images\n", result.Page, len(result.URLs))
    for _, url := range result.Thumbnails {
        fmt.Println(url)
    }
}
rust
use reqwest::header::{HeaderMap, HeaderValue, AUTHORIZATION};
use serde::{Deserialize, Serialize};

#[derive(Debug, Deserialize)]
struct ImagesResponse {
    page: u32,
    page_size: u32,
    objects: Vec<String>,
    urls: Vec<String>,
    thumbnails: Vec<String>,
}

async fn get_images(
    api_key: &str,
    page: u32,
    page_size: u32,
) -> Result<ImagesResponse, Box<dyn std::error::Error>> {
    let url = format!(
        "https://api.reimage.dev/get/?page={}&page_size={}",
        page, page_size
    );

    let mut headers = HeaderMap::new();
    headers.insert(
        AUTHORIZATION,
        HeaderValue::from_str(&format!("Bearer {}", api_key))?,
    );

    let client = reqwest::Client::new();
    let response = client
        .get(&url)
        .headers(headers)
        .send()
        .await?;

    let result = response.json::<ImagesResponse>().await?;
    Ok(result)
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let api_key = std::env::var("REIMAGE_API_KEY")?;
    let result = get_images(&api_key, 1, 20).await?;

    println!("Page {}: {} images", result.page, result.urls.len());
    for url in result.thumbnails {
        println!("{}", url);
    }

    Ok(())
}

Filter by Tags

Filter images that have specific tags:

http
GET /get/tags?tags=product&tags=featured
javascript
async function getImagesByTags(tags) {
  const params = new URLSearchParams();
  tags.forEach(tag => params.append('tags', tag));

  const response = await fetch(
    `https://api.reimage.dev/get/?${params}`,
    {
      headers: {
        'Authorization': `Bearer ${process.env.REIMAGE_API_KEY}`
      }
    }
  );

  return await response.json();
}

// Get images with both "product" AND "hero" tags
const images = await getImagesByTags(['product', 'hero']);
python
def get_images_by_tags(tags):
    """Retrieve images filtered by tags"""
    headers = {
        'Authorization': f'Bearer {os.environ.get("REIMAGE_API_KEY")}'
    }
    params = [('tags', tag) for tag in tags]

    response = requests.get(
        'https://api.reimage.dev/get/',
        headers=headers,
        params=params
    )
    return response.json()

# Get images with both "product" AND "hero" tags
result = get_images_by_tags(['product', 'hero'])
php
<?php
function getImagesByTags($tags) {
    $apiKey = getenv('REIMAGE_API_KEY');
    $queryParams = http_build_query(['tags' => $tags]);
    $url = "https://api.reimage.dev/get/?$queryParams";

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Authorization: Bearer ' . $apiKey
    ]);

    $response = curl_exec($ch);
    return json_decode($response, true);
}

$result = getImagesByTags(['product', 'hero']);
?>

Complete Pagination Example

javascript
async function getAllImages() {
  const allImages = [];
  let page = 1;
  const pageSize = 100;

  while (true) {
    const response = await fetch(
      `https://api.reimage.dev/get/?page=${page}&page_size=${pageSize}`,
      {
        headers: {
          'Authorization': `Bearer ${process.env.REIMAGE_API_KEY}`
        }
      }
    );

    const data = await response.json();
    allImages.push(...data.urls);

    // If we got fewer results than page_size, we're on the last page
    if (data.urls.length < pageSize) {
      break;
    }

    page++;
  }

  return allImages;
}

Response Field Descriptions

FieldDescription
pageCurrent page number
page_sizeNumber of items per page
objectsArray of base URLs for each image
urlsArray of optimized WebP URLs
thumbnailsArray of 200x200 thumbnail URLs

Next Steps

Released under the MIT License.