Let CraterView.ai restore and enhance your images, and soon your videos

The scan that came out soft, the phone shot that fell apart when you zoomed in, the print that faded in the album — CraterView.ai brings back what was lost. Drop a file in our Web App, or wire it into your product with our API. Video is coming soon.

Drop your files in our web app

No signup, no card. Your guest workspace awaits.

Open Web App iOS Appsoon
A photograph of two hikers climbing a rocky trail through tall forest
The same photograph after CraterView.ai enhancement: four times the resolution, with the bark, moss and wet rock resolved
Source CraterView.ai · 4× upscale

Output from cv-enhance-v2. Photograph by Sea to Sky Gondola.

Where people put it to work

See what it recovers from scanned photographs, and what it will not do — or browse all the guides.

Wire it into your own product, agent or service

Add image enhancement and restoration wherever you need it. Your API keys are available from within the web app.

The HTTP API

Ask for somewhere to put it

POST /v1/uploads hands back a presigned URL and a key.

Upload directly

A plain PUT to that URL. Nothing proxies your file.

Submit the job

POST /v1/jobs with the key and your parameters. Add ?wait=30 and a fast job comes back finished in the same response.

Connect an assistant over MCP

Add CraterView as an MCP server in Claude, or any MCP client. Your client signs you in, and you connect your CraterView account once with a short code from the dashboard. After that the assistant enhances images itself — same models, same queues, and the work runs on your account and your credits.

https://mcp.craterview.ai/mcp
# 1 — ask for somewhere to put the file
LEN=$(wc -c < image.jpg)
curl -X POST "https://api.craterview.ai/v1/uploads" \
  -H "Authorization: Bearer $CV_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"content_type\": \"image/jpeg\", \"content_length\": $LEN}"
# -> {"upload_url": "...", "input_key": "..."}

# 2 — upload the bytes straight to storage. The content type is signed,
#     so it has to match what step 1 was told.
curl -X PUT "$UPLOAD_URL" \
  -H "Content-Type: image/jpeg" \
  --data-binary @image.jpg

# 3 — submit, and wait for a fast job in the same response
curl -X POST "https://api.craterview.ai/v1/jobs?wait=30" \
  -H "Authorization: Bearer $CV_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"model\": \"cv-enhance-v3\", \"input_key\": \"$INPUT_KEY\",
       \"params\": {\"scale\": 4}}"
# pip install craterview
from craterview import CraterView

# a client, once
cv = CraterView(api_key="cv_...", base_url="https://api.craterview.ai")

# steps 1, 2 and 3 in a single call
job = cv.run(
    "image.jpg", model="cv-enhance-v3",
    scale=4, wait=30,
)

job.save("image-restored.jpg")
// npm install craterview
import { CraterView } from "craterview";

// a client, once
const cv = new CraterView({ apiKey: "cv_...", baseUrl: "https://api.craterview.ai" });

// steps 1, 2 and 3 in a single call
const job = await cv.run(file, {
  model: "cv-enhance-v3",
  scale: 4, wait: 30,
});

const blob = await job.blob();

Upgrade to do more

Once signed in you can upgrade from the community queue to the priority queue for a shorter turnaround and fewer limits. Choose from starter bundles to unlimited monthly plans that work for you and your agent.

Starter

$10 for 100 credits

$0.10 a credit

Trying out the web app and API.

Buy 100 credits

Scale

$160 for 2,000 credits

$0.08 a credit

For batch work and production API traffic, at 20% off the starter rate.

Buy 2,000 credits

Unlimited

$29 / month

Founding rate for early adopters helping us build the product

For steady work, with no credits to count.

Subscribe

Payment and card details are handled by Stripe; they never reach us. Prices are in US dollars and exclude tax — sales tax, VAT, or GST is added to the total at checkout where your jurisdiction requires it, and a business can enter its VAT or other tax ID there. Buying needs a signed-in account. Signing in keeps that account, its history and its API key. Credits never expire and a purchase is a grant on the balance. A subscription is not credit: it renews on its own until you cancel it, and while it runs your work goes to the paid queue whatever the balance says. A founding rate is an introductory price rather than a permanent one — we will tell you before it changes, and you can cancel before it does. Every model publishes its own price in the workspace and in GET /v1/models, which is where a client should read it rather than from this page. Video is priced by the second of clip and is not switched on yet. Larger volumes or an invoice: [email protected]. Anything else, including a refund: [email protected].

Your workspace is already open

No email, no card, no confirmation link to try it out.

Open Web App