API reference

GPU processing

Run watermarking and watermark detection on a GPU with accelerator=gpu on Business and Enterprise plans. GPU jobs cost 3x credits; CPU is the default.

On Business or Enterprise plans, you can ask any embedding or detection endpoint to run on a GPU (a graphics processor that can speed up the work). The output format, the watermark and the output check are the same as on CPU.

Default
CPU
GPU cost
3× normal credits
If GPU is not ready
CPU at normal cost

Request GPU processing

Add accelerator=gpu to a sync or async request. Use accelerator=cpu to request CPU explicitly.

Shell
curl --fail-with-body "https://api.etchv.com/watermarks/videos/async?accelerator=gpu" \
  -H "X-API-Key: $ETCHV_API_KEY" \
  -H "Idempotency-Key: launch-video-partner-42" \
  -F 'file=@launch.mp4' \
  -F 'data={"asset":"launch-video","recipient":"partner-42"}'
SDKOption
Pythonaccelerator="gpu"
Node.js{ accelerator: 'gpu' }
Goetchv.Options{Accelerator: etchv.AcceleratorGPU}
RustOptions::new().accelerator(Accelerator::Gpu)
C#new RequestOptions(Accelerator: Accelerator.Gpu)
Javaoptions.withAccelerator(EtchvClient.Accelerator.GPU)
Python
Option
accelerator="gpu"
Node.js
Option
{ accelerator: 'gpu' }
Go
Option
etchv.Options{Accelerator: etchv.AcceleratorGPU}
Rust
Option
Options::new().accelerator(Accelerator::Gpu)
C#
Option
new RequestOptions(Accelerator: Accelerator.Gpu)
Java
Option
options.withAccelerator(EtchvClient.Accelerator.GPU)

The dashboard, MCP and automation integrations offer the same choice. How much faster a GPU is depends on the file, because reading and writing the file still run on CPU. See performance benchmarks.

Credits and fallback

Etchv holds 3× the normal credits when the request starts. If the work runs on CPU instead, Etchv charges the normal amount and releases the rest. If the operation fails, all held credits are released.

GPU readiness

An active Business or Enterprise workspace keeps GPU capacity running and ready (“warm”). Extra capacity can take a few minutes to start. Requests run on CPU while it starts.

Check readiness

Shell
curl --fail-with-body "https://api.etchv.com/accelerators/gpu" \
  -H "X-API-Key: $ETCHV_API_KEY"
StatusMeaning
readyA GPU is running
startingStarting; requests use CPU meanwhile
idleNo GPU is running
unavailableGPU processing is unavailable
ready
Meaning
A GPU is running
starting
Meaning
Starting; requests use CPU meanwhile
idle
Meaning
No GPU is running
unavailable
Meaning
GPU processing is unavailable

Checking does not start a GPU. Use a key with watermarks:embed or watermarks:detect.

Start the GPU

Shell
curl --fail-with-body -X POST "https://api.etchv.com/accelerators/gpu/wake" \
  -H "X-API-Key: $ETCHV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"webhook_id":"wh_0123456789abcdef0123456789abcdef"}'

Waking costs no credits and needs a Business or Enterprise plan. Once ready, the GPU stays warm for 15 minutes. GPU work in progress keeps it running longer. Waking it again extends the 15 minutes.

If you pass the optional webhook_id, that endpoint receives accelerator.ready. It is sent right away if the GPU is already ready. Without a webhook, poll the readiness endpoint. Both endpoints return accelerator, status, warm_until and ready_at.

See which accelerator ran

ResponseField
Sync result or result downloadX-Etchv-Accelerator: cpu or gpu
Receipt, job status or webhookaccelerator_requested and actual accelerator (null before processing)
Completed jobcredits: actual charge
Sync result or result download
Field
X-Etchv-Accelerator: cpu or gpu
Receipt, job status or webhook
Field
accelerator_requested and actual accelerator (null before processing)
Completed job
Field
credits: actual charge

The Usage dashboard also shows the accelerator.

Errors

StatusReason
403Plan does not include GPU
404Webhook is missing or disabled
503GPU service unavailable; retry later or request CPU
409Same idempotency key used with a different accelerator
422Accelerator must be cpu or gpu
403
Reason
Plan does not include GPU
404
Reason
Webhook is missing or disabled
503
Reason
GPU service unavailable; retry later or request CPU
409
Reason
Same idempotency key used with a different accelerator
422
Reason
Accelerator must be cpu or gpu

GPU requests share your plan’s rate limits.

View source on GitHub

Your privacy, your choice

We use essential cookies to keep Etchv working. Optional analytics helps us improve the site. Analytics is on by default; you can turn it off in preferences. PostHog loads only if you accept all. Privacy policy

ETCHV

Privacy preferences

Choose what you allow on this browser. Analytics is enabled by default. You can turn it off, and change your choice at any time.

Essential

Always active

Supports secure sign-in, account sessions, site security, and remembering your privacy choice. These are needed for Etchv to work.

Analytics

Helps us understand visits and improve the website using page-view and device statistics, which do not use cookies. PostHog also measures visits and campaigns and may set cookies; it loads only after you save a choice with analytics on. Turning this off stops future analytics events.

We do not load advertising scripts. Meeting calendars load only when you open them. These preferences do not change your account, watermarking requests, or asset storage.

Your choice is remembered for 180 days on this browser. Privacy policy