Raw schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Absolute CDN URL of a PixelVault image, as returned by upload_image / get_image / list_images. Provide this OR id."
},
"id": {
"type": "string",
"description": "PixelVault image id (e.g. img_abc123); its CDN URL is resolved via the API. Provide this OR url. Requires an API key when used."
},
"size": {
"type": "string",
"enum": [
"s",
"m",
"l",
"social"
],
"description": "Named size preset: s=256px, m=640px, l=1280px, social=1200x630 OG card. Wins over width/height."
},
"width": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 4000,
"description": "Target width in px (1..4000). Snapped UP to the nearest allowed step. scale-down never upscales."
},
"height": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 4000,
"description": "Target height in px (1..4000). Snapped UP to the nearest allowed step."
},
"fit": {
"type": "string",
"enum": [
"scale-down",
"contain",
"cover",
"crop",
"pad"
],
"description": "Resize mode. scale-down (default) never enlarges; contain/cover/crop/pad resize to the exact box and may upscale. Only meaningful alongside width/height."
},
"format": {
"type": "string",
"enum": [
"auto",
"webp",
"avif",
"jpg",
"png"
],
"description": "Output format. auto negotiates WebP/AVIF from the client's Accept header."
},
"quality": {
"type": "string",
"enum": [
"auto",
"60",
"75",
"85"
],
"description": "Output quality. auto lets Cloudflare choose."
},
"segment": {
"type": "string",
"enum": [
"foreground"
],
"description": "AI background removal (BiRefNet): foreground keeps the subject and makes the background transparent. Output is forced to PNG unless an opaque background is set. Not available on anonymous/playground images."
},
"background": {
"type": "string",
"description": "Fill color behind a removed (segment) or padded (fit=pad) background: hex (#ffaa00), rgb()/rgba(), or a common CSS color name. No effect otherwise."
},
"gravity": {
"type": "string",
"description": "Crop anchor, only with fit=cover|crop: face, left, right, top, bottom, auto, or 'XxY' coords 0.0-1.0. face enables zoom."
},
"zoom": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Face-crop tightness 0.0-1.0, only with gravity=face."
},
"blur": {
"type": "number",
"minimum": 0,
"maximum": 250,
"description": "Gaussian blur (0-250); snapped to the nearest of 10/30/60/120. <=0 is ignored."
},
"sharpen": {
"type": "number",
"minimum": 0,
"maximum": 10,
"description": "Sharpen strength (0-10); snapped to the nearest of 1/3/5."
},
"rotate": {
"type": "number",
"description": "Rotate clockwise; rounded to the nearest right angle (90/180/270)."
},
"flip": {
"type": "string",
"enum": [
"h",
"v",
"hv"
],
"description": "Mirror horizontally (h), vertically (v), or both (hv)."
},
"brightness": {
"type": "number",
"minimum": 0,
"maximum": 2,
"description": "Brightness multiplier 0-2 (1=no change); snapped to 0.5/0.75/1.25/1.5/2."
},
"contrast": {
"type": "number",
"minimum": 0,
"maximum": 2,
"description": "Contrast multiplier 0-2 (1=no change); snapped to 0.5/0.75/1.25/1.5/2."
},
"saturation": {
"type": "number",
"minimum": 0,
"maximum": 2,
"description": "Saturation multiplier 0-2 (1=no change, 0=grayscale); snapped to 0/0.5/1.5/2."
},
"tile": {
"type": "string",
"description": "Filename (optionally folder-prefixed, with extension) of another image in the SAME project to tile edge-to-edge as a watermark, e.g. watermark.png."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}