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.
Output from cv-enhance-v2. Photograph by Sea to Sky Gondola.
Add image enhancement and restoration wherever you need it. Your API keys are available from within the web app.
POST /v1/uploads hands back a presigned URL and a key.
A plain PUT to that URL. Nothing proxies your file.
POST /v1/jobs with the key and your parameters. Add
?wait=30 and a fast job comes back finished in the same response.
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();
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.
$45 for 500 credits
$0.09 a credit
For a steady week of work, at 10% off the starter rate.
Buy 500 credits$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$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].