{"openapi":"3.1.0","info":{"title":"removebackground.dev API","version":"1.0.0","summary":"Remove image backgrounds with one HTTP request.","description":"Send an image (file, URL, base64 or raw bytes) and get the cut-out back. Most single images finish in the same response; if one takes longer than about 55 seconds you get 202 with a job id to poll instead. 1 credit per successfully processed image; failed images are free. Up to 60 processing requests a minute per account (429 rate_limited with Retry-After). Send an Idempotency-Key header with POST /v1/remove and POST /v1/batch so a retry returns the same job instead of charging again. Human-readable docs: https://removebackground.dev/api","contact":{"url":"https://removebackground.dev/api"},"license":{"name":"Terms of service","url":"https://removebackground.dev/terms"}},"externalDocs":{"description":"Guides, examples and limits","url":"https://removebackground.dev/api"},"servers":[{"url":"https://removebackground.dev"}],"security":[{"apiKey":[]}],"tags":[{"name":"Remove","description":"Process images."},{"name":"Jobs","description":"Status and results of queued work. Reading jobs is free and not rate limited."},{"name":"remove.bg compatible","description":"Drop-in endpoints for remove.bg integrations. Different responses from /v1; see the docs."}],"paths":{"/v1/remove":{"post":{"tags":["Remove"],"operationId":"removeBackground","summary":"Remove the background from one image","description":"Precedence when several are sent: image_file, then image_file_b64, then image_url, then the raw body. Options may also be sent as query parameters. Unknown parameters are ignored.","parameters":[{"$ref":"#/components/parameters/IdempotencyKey"},{"$ref":"#/components/parameters/RequestId"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"image_file":{"type":"string","format":"binary","description":"JPG, PNG or WebP, up to 25 MB."},"image_url":{"type":"string","format":"uri","maxLength":2000,"description":"A public http(s) image URL. Downloaded with a 15 s timeout and up to 3 redirects; private, loopback and link-local addresses are refused."},"image_file_b64":{"type":"string","description":"The image as base64, optionally with a data:image/…;base64, prefix. Up to 25 MB after decoding."},"format":{"type":"string","enum":["png","jpg","webp"],"default":"png","description":"Output format. JPG has no transparency: it is flattened onto bg_color, or white."},"bg_color":{"type":"string","description":"Background fill: hex (ffffff, #fff), rgb(255, 255, 255), or white, black, red, green, blue, yellow, gray / grey. transparent (the default) keeps it transparent.","examples":["ffffff","#000","rgb(255, 255, 255)","white"]},"size":{"type":"string","enum":["preview","medium","hd","full"],"default":"full","description":"Megapixel cap, aspect ratio kept, never upscaled: preview ≤ 0.25 MP, medium ≤ 1.5 MP, hd ≤ 4 MP, full = the original (up to 25 MP). Ignored when width or height is set."},"crop":{"oneOf":[{"type":"boolean"},{"type":"string","pattern":"^(true|false|\\d+(\\.\\d+)?:\\d+(\\.\\d+)?)$"}],"default":false,"description":"Trim to the subject. A ratio such as 1:1 or 4:5 then expands the box (never shrinks it) to that shape around the subject."},"padding":{"oneOf":[{"type":"number","minimum":0},{"type":"string"}],"default":0,"description":"With crop: margin per side. A fraction (0.1) or percentage (10%, or \"10%,7.5%\" for horizontal,vertical) of the subject, or pixels (24px, or a whole number above 1, up to 500)."},"channels":{"type":"string","enum":["rgba","rgb","alpha"],"default":"rgba","description":"rgba: transparent cut-out. rgb: opaque on bg_color or white. alpha: grayscale PNG mask (white = subject)."},"type":{"type":"string","enum":["cutout","mask"],"deprecated":true,"description":"type=mask is an alias of channels=alpha."},"width":{"type":"integer","minimum":1,"maximum":6000,"description":"Exact output width in pixels, applied after crop (overrides size). Never stretched."},"height":{"type":"integer","minimum":1,"maximum":6000,"description":"Exact output height in pixels, applied after crop (overrides size). Never stretched."},"fit":{"type":"string","enum":["contain","cover","scale-down"],"default":"contain","description":"With width and height: contain (fit inside), cover (fill, cropping around the subject), scale-down (contain, never enlarged)."},"roi":{"type":"string","description":"Region of interest, x1 y1 x2 y2 in px or % of the original image. Only the subject inside is kept.","examples":["0% 0% 50% 100%"]}}},"encoding":{"image_file":{"contentType":"image/png, image/jpeg, image/webp"}}},"application/json":{"schema":{"type":"object","properties":{"image_url":{"type":"string","format":"uri","maxLength":2000,"description":"A public http(s) image URL. Downloaded with a 15 s timeout and up to 3 redirects; private, loopback and link-local addresses are refused."},"image_file_b64":{"type":"string","description":"The image as base64, optionally with a data:image/…;base64, prefix. Up to 25 MB after decoding."},"format":{"type":"string","enum":["png","jpg","webp"],"default":"png","description":"Output format. JPG has no transparency: it is flattened onto bg_color, or white."},"bg_color":{"type":"string","description":"Background fill: hex (ffffff, #fff), rgb(255, 255, 255), or white, black, red, green, blue, yellow, gray / grey. transparent (the default) keeps it transparent.","examples":["ffffff","#000","rgb(255, 255, 255)","white"]},"size":{"type":"string","enum":["preview","medium","hd","full"],"default":"full","description":"Megapixel cap, aspect ratio kept, never upscaled: preview ≤ 0.25 MP, medium ≤ 1.5 MP, hd ≤ 4 MP, full = the original (up to 25 MP). Ignored when width or height is set."},"crop":{"oneOf":[{"type":"boolean"},{"type":"string","pattern":"^(true|false|\\d+(\\.\\d+)?:\\d+(\\.\\d+)?)$"}],"default":false,"description":"Trim to the subject. A ratio such as 1:1 or 4:5 then expands the box (never shrinks it) to that shape around the subject."},"padding":{"oneOf":[{"type":"number","minimum":0},{"type":"string"}],"default":0,"description":"With crop: margin per side. A fraction (0.1) or percentage (10%, or \"10%,7.5%\" for horizontal,vertical) of the subject, or pixels (24px, or a whole number above 1, up to 500)."},"channels":{"type":"string","enum":["rgba","rgb","alpha"],"default":"rgba","description":"rgba: transparent cut-out. rgb: opaque on bg_color or white. alpha: grayscale PNG mask (white = subject)."},"type":{"type":"string","enum":["cutout","mask"],"deprecated":true,"description":"type=mask is an alias of channels=alpha."},"width":{"type":"integer","minimum":1,"maximum":6000,"description":"Exact output width in pixels, applied after crop (overrides size). Never stretched."},"height":{"type":"integer","minimum":1,"maximum":6000,"description":"Exact output height in pixels, applied after crop (overrides size). Never stretched."},"fit":{"type":"string","enum":["contain","cover","scale-down"],"default":"contain","description":"With width and height: contain (fit inside), cover (fill, cropping around the subject), scale-down (contain, never enlarged)."},"roi":{"type":"string","description":"Region of interest, x1 y1 x2 y2 in px or % of the original image. Only the subject inside is kept.","examples":["0% 0% 50% 100%"]}}}},"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"image_url":{"type":"string","format":"uri","maxLength":2000,"description":"A public http(s) image URL. Downloaded with a 15 s timeout and up to 3 redirects; private, loopback and link-local addresses are refused."},"image_file_b64":{"type":"string","description":"The image as base64, optionally with a data:image/…;base64, prefix. Up to 25 MB after decoding."},"format":{"type":"string","enum":["png","jpg","webp"],"default":"png","description":"Output format. JPG has no transparency: it is flattened onto bg_color, or white."},"bg_color":{"type":"string","description":"Background fill: hex (ffffff, #fff), rgb(255, 255, 255), or white, black, red, green, blue, yellow, gray / grey. transparent (the default) keeps it transparent.","examples":["ffffff","#000","rgb(255, 255, 255)","white"]},"size":{"type":"string","enum":["preview","medium","hd","full"],"default":"full","description":"Megapixel cap, aspect ratio kept, never upscaled: preview ≤ 0.25 MP, medium ≤ 1.5 MP, hd ≤ 4 MP, full = the original (up to 25 MP). Ignored when width or height is set."},"crop":{"oneOf":[{"type":"boolean"},{"type":"string","pattern":"^(true|false|\\d+(\\.\\d+)?:\\d+(\\.\\d+)?)$"}],"default":false,"description":"Trim to the subject. A ratio such as 1:1 or 4:5 then expands the box (never shrinks it) to that shape around the subject."},"padding":{"oneOf":[{"type":"number","minimum":0},{"type":"string"}],"default":0,"description":"With crop: margin per side. A fraction (0.1) or percentage (10%, or \"10%,7.5%\" for horizontal,vertical) of the subject, or pixels (24px, or a whole number above 1, up to 500)."},"channels":{"type":"string","enum":["rgba","rgb","alpha"],"default":"rgba","description":"rgba: transparent cut-out. rgb: opaque on bg_color or white. alpha: grayscale PNG mask (white = subject)."},"type":{"type":"string","enum":["cutout","mask"],"deprecated":true,"description":"type=mask is an alias of channels=alpha."},"width":{"type":"integer","minimum":1,"maximum":6000,"description":"Exact output width in pixels, applied after crop (overrides size). Never stretched."},"height":{"type":"integer","minimum":1,"maximum":6000,"description":"Exact output height in pixels, applied after crop (overrides size). Never stretched."},"fit":{"type":"string","enum":["contain","cover","scale-down"],"default":"contain","description":"With width and height: contain (fit inside), cover (fill, cropping around the subject), scale-down (contain, never enlarged)."},"roi":{"type":"string","description":"Region of interest, x1 y1 x2 y2 in px or % of the original image. Only the subject inside is kept.","examples":["0% 0% 50% 100%"]}}}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/png":{"schema":{"type":"string","format":"binary"}},"image/webp":{"schema":{"type":"string","format":"binary"}},"application/octet-stream":{"schema":{"type":"string","format":"binary","description":"Raw JPG, PNG or WebP bytes; the type is detected from the bytes."}}}},"responses":{"200":{"$ref":"#/components/responses/Image"},"202":{"$ref":"#/components/responses/Accepted"},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/RateLimited"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/v1/batch":{"post":{"tags":["Remove"],"operationId":"createBatch","summary":"Queue up to 100 image URLs as one job","description":"Answers 202 at once. Poll GET /v1/jobs/{id}, then fetch each item's result. At most 3 unfinished multi-image jobs per account. Invalid and repeated URLs are dropped (counted in invalid and duplicates) and never charged.","parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["image_urls"],"properties":{"image_urls":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"string","format":"uri"}},"format":{"type":"string","enum":["png","jpg","webp"],"default":"png","description":"Output format. JPG has no transparency: it is flattened onto bg_color, or white."},"bg_color":{"type":"string","description":"Background fill: hex (ffffff, #fff), rgb(255, 255, 255), or white, black, red, green, blue, yellow, gray / grey. transparent (the default) keeps it transparent.","examples":["ffffff","#000","rgb(255, 255, 255)","white"]},"size":{"type":"string","enum":["preview","medium","hd","full"],"default":"full","description":"Megapixel cap, aspect ratio kept, never upscaled: preview ≤ 0.25 MP, medium ≤ 1.5 MP, hd ≤ 4 MP, full = the original (up to 25 MP). Ignored when width or height is set."},"crop":{"oneOf":[{"type":"boolean"},{"type":"string","pattern":"^(true|false|\\d+(\\.\\d+)?:\\d+(\\.\\d+)?)$"}],"default":false,"description":"Trim to the subject. A ratio such as 1:1 or 4:5 then expands the box (never shrinks it) to that shape around the subject."},"padding":{"oneOf":[{"type":"number","minimum":0},{"type":"string"}],"default":0,"description":"With crop: margin per side. A fraction (0.1) or percentage (10%, or \"10%,7.5%\" for horizontal,vertical) of the subject, or pixels (24px, or a whole number above 1, up to 500)."},"channels":{"type":"string","enum":["rgba","rgb","alpha"],"default":"rgba","description":"rgba: transparent cut-out. rgb: opaque on bg_color or white. alpha: grayscale PNG mask (white = subject)."},"type":{"type":"string","enum":["cutout","mask"],"deprecated":true,"description":"type=mask is an alias of channels=alpha."},"width":{"type":"integer","minimum":1,"maximum":6000,"description":"Exact output width in pixels, applied after crop (overrides size). Never stretched."},"height":{"type":"integer","minimum":1,"maximum":6000,"description":"Exact output height in pixels, applied after crop (overrides size). Never stretched."},"fit":{"type":"string","enum":["contain","cover","scale-down"],"default":"contain","description":"With width and height: contain (fit inside), cover (fill, cropping around the subject), scale-down (contain, never enlarged)."},"roi":{"type":"string","description":"Region of interest, x1 y1 x2 y2 in px or % of the original image. Only the subject inside is kept.","examples":["0% 0% 50% 100%"]}}},"example":{"image_urls":["https://example.com/front.jpg","https://example.com/back.jpg"],"format":"png","size":"hd"}}}},"responses":{"202":{"description":"Queued.","headers":{"Location":{"$ref":"#/components/headers/Location"},"X-Job-Id":{"$ref":"#/components/headers/JobId"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchAccepted"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Error"}}}},"/v1/jobs/{id}":{"get":{"tags":["Jobs"],"operationId":"getJob","summary":"Status of a job","parameters":[{"$ref":"#/components/parameters/JobId"}],"responses":{"200":{"description":"The job.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/jobs/{id}/result":{"get":{"tags":["Jobs"],"operationId":"getJobResult","summary":"The finished image of a job","description":"Free to download again while the result is stored.","parameters":[{"$ref":"#/components/parameters/JobId"},{"name":"item","in":"query","schema":{"type":"integer","minimum":0,"default":0},"description":"Zero-based position of an image in a batch job."}],"responses":{"200":{"$ref":"#/components/responses/Image"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"description":"not_ready (still running; retry after Retry-After) or canceled.","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/v1.0/removebg":{"post":{"tags":["remove.bg compatible"],"operationId":"removeBgCompatible","summary":"remove.bg-compatible removal","description":"remove.bg's parameter names and response shapes; some remove.bg parameters are accepted but ignored (see the docs). Never answers 202: waits up to 110 s, then 503 timeout, and the job keeps running. No Idempotency-Key support.","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":true}},"application/x-www-form-urlencoded":{"schema":{"type":"object","additionalProperties":true}},"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"The image, or with Accept: application/json, { data: { result_b64, foreground_top, foreground_left, foreground_width, foreground_height } }.","content":{"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/webp":{"schema":{"type":"string","format":"binary"}},"application/zip":{"schema":{"type":"string","format":"binary"}},"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"400":{"$ref":"#/components/responses/CompatError"},"402":{"$ref":"#/components/responses/CompatError"},"403":{"$ref":"#/components/responses/CompatError"},"429":{"$ref":"#/components/responses/CompatError"},"503":{"$ref":"#/components/responses/CompatError"}}}},"/v1.0/account":{"get":{"tags":["remove.bg compatible"],"operationId":"removeBgAccount","summary":"Credit balance in remove.bg's account shape","responses":{"200":{"description":"Balance.","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"$ref":"#/components/responses/CompatError"}}}}},"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"x-api-key","description":"Create keys on https://removebackground.dev/account. Keep them on your server."}},"parameters":{"IdempotencyKey":{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[\\x21-\\x7e]+$"},"description":"One per image or batch. A repeat with the same key and request returns the first job (Idempotent-Replayed: true), never a second charge; the same key with a different request answers 409 idempotency_key_reused."},"RequestId":{"name":"X-Request-ID","in":"header","required":false,"schema":{"type":"string","maxLength":128},"description":"Echoed back; quote it to support."},"JobId":{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}},"headers":{"Location":{"schema":{"type":"string","format":"uri"},"description":"The job's status URL."},"JobId":{"schema":{"type":"string","format":"uuid"}},"IdempotentReplayed":{"schema":{"type":"string","enum":["true"]},"description":"Present when the answer is the job of an earlier request with the same Idempotency-Key."},"RateLimitLimit":{"schema":{"type":"integer"},"description":"Requests allowed per minute for this account."},"RateLimitRemaining":{"schema":{"type":"integer"},"description":"Requests left in the current minute window."},"RateLimitReset":{"schema":{"type":"integer"},"description":"Unix time (seconds) when the window resets."}},"responses":{"Image":{"description":"The finished image.","headers":{"X-Image-Width":{"schema":{"type":"integer"}},"X-Image-Height":{"schema":{"type":"integer"}},"X-Credits-Remaining":{"schema":{"type":"integer"}},"X-Removal-Id":{"schema":{"type":"string","format":"uuid"}},"X-Job-Id":{"$ref":"#/components/headers/JobId"},"X-Request-ID":{"schema":{"type":"string"}},"X-Processing-Time-Ms":{"schema":{"type":"integer"}},"X-Matte-Confidence":{"schema":{"type":"number","minimum":0,"maximum":1}},"X-Matte-Ambiguous-Ratio":{"schema":{"type":"number","minimum":0,"maximum":1}},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"image/png":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/webp":{"schema":{"type":"string","format":"binary"}}}},"Accepted":{"description":"Still processing after about 55 s. Not an image: poll status_url, then fetch result_url. Don't resend the image.","headers":{"Location":{"$ref":"#/components/headers/Location"},"Retry-After":{"schema":{"type":"integer"}},"X-Job-Id":{"$ref":"#/components/headers/JobId"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"},"X-RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pending"}}}},"Error":{"description":"An error. Failed images are never charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"RateLimited":{"description":"Over 60 processing requests a minute for this account (default). Nothing was queued or charged.","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the window resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Unix time (seconds) when the window resets."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"CompatError":{"description":"remove.bg's error shape.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatErrors"}}}}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","examples":["too_large","rate_limited","idempotency_key_reused","not_ready"]},"message":{"type":"string"}}},"id":{"type":"string","format":"uuid","description":"The job, when the error belongs to one."}}},"CompatErrors":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"code":{"type":"string"},"detail":{"type":"string"}}}}}},"JobStatus":{"type":"string","enum":["queued","processing","succeeded","partial","failed","canceled"]},"Pending":{"type":"object","required":["id","status","status_url","result_url"],"properties":{"id":{"type":"string","format":"uuid"},"status":{"$ref":"#/components/schemas/JobStatus"},"status_url":{"type":"string","format":"uri"},"result_url":{"type":"string","format":"uri"},"message":{"type":"string"}}},"BatchAccepted":{"type":"object","required":["id","status","total","status_url"],"properties":{"id":{"type":"string","format":"uuid"},"status":{"const":"queued"},"total":{"type":"integer"},"invalid":{"type":"integer","description":"Entries dropped because they weren't http(s) URLs."},"duplicates":{"type":"integer","description":"Repeated URLs dropped."},"status_url":{"type":"string","format":"uri"}}},"Job":{"type":"object","required":["id","status","done","items"],"properties":{"id":{"type":"string","format":"uuid"},"status":{"$ref":"#/components/schemas/JobStatus"},"done":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"finished_at":{"type":["string","null"],"format":"date-time"},"total":{"type":"integer"},"succeeded":{"type":"integer"},"failed":{"type":"integer"},"skipped":{"type":"integer","description":"Not run because the account ran out of credits; not charged."},"credits_charged":{"type":"integer"},"status_url":{"type":"string","format":"uri"},"result_url":{"type":"string","format":"uri"},"items":{"type":"array","items":{"type":"object","required":["position","status"],"properties":{"position":{"type":"integer","description":"Zero-based; use as ?item=N."},"input":{"type":["string","null"],"description":"The URL or file name."},"status":{"type":"string","enum":["queued","retrying","processing","succeeded","failed","skipped","canceled"]},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}},"removal_id":{"type":"string","format":"uuid"},"width":{"type":["integer","null"]},"height":{"type":["integer","null"]},"format":{"type":["string","null"]},"result_url":{"type":"string","format":"uri"}}}}}}}}}