Documentation & API

pixelseo.ai docs

Two tools, one SEO package. Upload your own images to get SEO metadata, or generate new images with metadata built in. Both are available via REST API and work with n8n, Make, Zapier, and custom workflows.

Quick start

  1. 1
    Create an account

    Go to /sign-up. Every new account includes 3 free credits — no credit card required.

  2. 2
    Choose your path

    Optimize images you already have — upload brand photos, stock, or AI-generated images at /process and get an SEO package for each one. Or generate new images at /generate — pick from 36 art styles and the SEO metadata is included automatically.

  3. 3
    Add a page URL (optional)

    If you know the page the image will appear on, add its URL. Pixel Vision will pre-fill the contentUrl in your schema so it's ready to publish without edits.

  4. 4
    Review and download

    Every field is editable — filename, alt text, and schema. Download a ZIP with renamed images and a CSV of all metadata, ready for your CMS.

Optimize images

The optimizer at /process runs Pixel Vision on any image you upload and returns a complete SEO package. Works with brand photos, stock images, client photos, and AI-generated images from any platform.

Naming modes

Pixel Vision — AI picks the name

Pixel Vision analyzes the image content and generates a keyword-rich, kebab-case filename, descriptive alt text, and ImageObject schema. Best when you want to move fast or don't have a keyword strategy for each image.

Formula builder — I control the name

Build a combinatorial keyword formula using word groups (e.g. [color] + [material] + [product] + [room]). The formula generates the filenames; Pixel Vision handles the alt text and schema. Best for product images, real estate photos, or any image set with a consistent naming convention.

Page URL context

You can provide a URL at two levels:

  • Site / fallback URL — applies to all images in the batch that don't have a specific URL
  • Per-image URL — set in each file row, overrides the site URL for that image

The URL is pre-filled as contentUrl in the ImageObject schema. If you provide the URL the image will actually live on, your schema is ready to publish without edits.

URL context does not change how Pixel Vision names the file or writes the alt text — it only populates contentUrl in the schema.

Supported formats & limits

PropertyValue
Input formatsJPEG, PNG, WebP, GIF
Max file size5 MB per image (oversized images can be compressed to WebP in-browser)
Max batch size20 images per run
Output formatsWebP (recommended), JPG, PNG
Cost1 credit per image (charged only on success)

Generate images

The generator at /generate creates new images using Google Imagen and returns the full SEO package automatically. Three prompt modes:

Style mode

Choose one of 36 curated styles. Optionally describe a subject. pixelseo handles the prompt engineering to match the style's visual characteristics.

Custom mode

Write your own prompt from scratch. Full control over every word. SEO metadata is still generated automatically from the resulting image content.

Hybrid mode

Start with the style preset prompt and edit it directly. Structured foundation with manual fine-tuning.

Orientations & formats

OptionValuesDefault
Orientationlandscape, portrait, squarelandscape
Output formatwebp, jpeg, pngwebp

The underlying AI model returns PNG internally. Format conversion happens automatically on download.

SEO output

Every image — whether uploaded or generated — includes the same three-piece SEO package. All fields are editable before download.

SEO Filename

A descriptive, hyphen-separated filename based on the image content or your formula. Example: red-oak-hardwood-flooring-living-room.webp. Search engines use filenames as a relevance signal before a user ever clicks.

Alt Text

A natural-language description of the image written for both screen readers and image search. Under 125 characters, keyword-relevant, and not stuffed. Pixel Vision reads the actual image pixels — not just the filename — to write this.

ImageObject Schema (JSON-LD)

A structured data block ready to paste into your page's <head> or CMS schema field. Tells Google the image's name, description, content URL, and encoding format. If you provided a page URL, contentUrl is pre-filled — schema is ready to publish as-is.

The ZIP export contains renamed image files and a seo-data.csv with original filename, new filename, alt text, and schema for every image — useful for bulk importing into a CMS.

Dashboard

Your dashboard at /dashboard shows your 12 most recent generations. From there you can:

  • Download images in the original requested format (WebP, JPEG, or PNG)
  • Copy alt text or schema markup for any past generation
  • View your current credit balance
  • Create, name, and revoke API keys

Generated images are stored for 12 months. Uploaded images are processed in-memory and never stored. Download anything you want to keep permanently.

API

The pixelseo.ai REST API exposes two endpoints — one for optimizing uploaded images and one for generating new ones. Both return the same SEO package structure and use the same credit system.

Base URL
https://pixelseo.ai

Authentication

All API requests require an API key passed as a header. Create and manage keys in your dashboard.

Header
X-API-Key: px_live_your_key_here

API keys start with px_live_. Keep them secret — they carry your credit balance. Keys can be revoked from the dashboard at any time.

POST /api/v1/process-images

Upload one or more images and receive the full SEO package for each. Costs 1 credit per successfully processed image. Uses multipart/form-data.

Form fields

FieldTypeRequiredDescription
imagesFile (repeatable)YesImage files to process. Up to 20 per request. JPEG, PNG, WebP, or GIF. Max 5 MB each.
site_urlstringNoFallback page URL — used as contentUrl in schema for images without a per-image URL.
page_urlsstring (repeatable)NoPer-image page URLs, parallel to the images array. Empty string to fall back to site_url.
provided_namesstring (repeatable)NoFormula mode: pre-built kebab-case filenames, one per image. When provided, Pixel Vision writes alt text and schema only — it does not rename.

Example request

curl
curl -X POST https://pixelseo.ai/api/v1/process-images \
  -H "X-API-Key: px_live_your_key_here" \
  -F "[email protected]" \
  -F "[email protected]" \
  -F "site_url=https://yoursite.com/flooring" \
  -F "page_urls=https://yoursite.com/flooring/oak" \
  -F "page_urls="

Response

200 OK
{
  "results": [
    {
      "index": 0,
      "original_filename": "product-photo.jpg",
      "seo_filename": "red-oak-hardwood-flooring-living-room.webp",
      "alt_text": "Red oak hardwood flooring installed in a bright living room",
      "name": "Red Oak Hardwood Flooring Living Room",
      "description": "Wide-plank red oak hardwood floors with natural grain detail in a sunlit living room setting.",
      "schema": {
        "@context": "https://schema.org",
        "@type": "ImageObject",
        "name": "Red Oak Hardwood Flooring Living Room",
        "description": "Wide-plank red oak hardwood floors...",
        "contentUrl": "https://yoursite.com/flooring/oak",
        "encodingFormat": "image/webp"
      },
      "error": null
    }
  ],
  "credits_used": 1,
  "credits_remaining": 23,
  "total_input_tokens": 2168,
  "total_output_tokens": 135
}

total_input_tokens and total_output_tokens reflect Pixel Vision usage across the batch — informational only, no additional cost.

POST /api/v1/generate

Generates a new image using Google Imagen and returns the image URL plus the full SEO package. Costs 1 credit per call. Uses application/json.

Request body

FieldTypeRequiredDescription
prompt_modestringNostyle, custom, or hybrid. Default: style
style_slugstringIf mode is styleStyle identifier e.g. ancient-egyptian. See gallery for all slugs.
subjectstringNoWhat to depict e.g. mountain village at sunset
custom_promptstringIf mode is custom or hybridYour full image prompt
orientationstringNolandscape, portrait, or square. Default: landscape
output_formatstringNowebp, jpeg, or png. Default: webp

Example request

curl
curl -X POST https://pixelseo.ai/api/v1/generate \
  -H "Content-Type: application/json" \
  -H "X-API-Key: px_live_your_key_here" \
  -d '{
    "prompt_mode": "style",
    "style_slug": "impressionism",
    "subject": "coastal town at golden hour",
    "orientation": "landscape",
    "output_format": "webp"
  }'

Response

200 OK
{
  "generation_id": "7d59d295-d124-400a-aa87-c6d450e955ac",
  "image_url": "https://images.pixelseo.ai/gen/user_abc/7d59d295.webp",
  "filename": "impressionism-coastal-town-golden-hour-landscape.webp",
  "alt_text": "Impressionist painting of a coastal town at golden hour with soft brushstrokes and warm light",
  "schema": {
    "@context": "https://schema.org",
    "@type": "ImageObject",
    "name": "Impressionism Coastal Town Golden Hour",
    "description": "...",
    "contentUrl": "https://images.pixelseo.ai/gen/..."
  },
  "credits_remaining": 22
}

Rate limits

Maximum 10 requests per minute per account. Exceeding this returns a 429 response.

Error responses

Both endpoints use the same error structure:

StatusCodeMeaning
400Invalid request — check required fields, file types, and size limits
401Missing or invalid API key
402NO_CREDITSInsufficient credits — purchase more at /pricing
429RATE_LIMITEDRate limit exceeded — max 10 requests/min
502Upstream AI error — retry the request

For /process-images, individual image failures are returned inline in the results array with "error": "Analysis failed — please try again". Credits are only charged for images that succeed.

Credits & pricing

  • 1 credit per image — whether optimizing an uploaded image or generating a new one
  • For batch optimization, credits are charged only for images that process successfully
  • Credits never expire
  • New accounts get 3 free credits — no credit card required
  • Credits are purchased as one-time packs — no subscription
Have more questions?

The FAQ covers common questions about image SEO, the tools, and billing in more depth.

Read the FAQ →