બેકગ્રાઉન્ડ રિમૂવલ API: એક રિક્વેસ્ટ મોકલો, તૈયાર PNG મેળવો.
ફાઇલ અપલોડ કરો, પબ્લિક ઇમેજ URL મોકલો, અથવા base64 આપો. મોટા ભાગની એકલ ઇમેજ એ જ HTTP રિસ્પોન્સમાં તૈયાર થઈને પાછી આવે છે, સામાન્ય રીતે થોડી સેકન્ડમાં. જો કોઈને વધુ સમય લાગે, તો ઇમેજ ફરી મોકલ્યા વગર પરિણામ મેળવવા તમને એક job id મળે છે. બલ્ક માટે batch એન્ડપૉઇન્ટ છે.
દરેક સફળ ઇમેજ પર 1 ક્રેડિટ · નિષ્ફળ ઇમેજ મફત · કી તમારા એકાઉન્ટમાં
$ curl -X POST https://removebackground.dev/v1/remove \
-H "x-api-key: $REMOVEBG_API_KEY" \
-F 'image_file=@dog.jpg' -o dog.png
← 200 OK · image/png · સામાન્ય રીતે થોડી સેકન્ડ
dog.png સેવ થયું (ટ્રાન્સપરન્ટ, ફુલ રિઝોલ્યુશન)ઝડપી શરૂઆત
કૉપી કરો, પેસ્ટ કરો, YOUR_API_KEY બદલો. દરેક ઉદાહરણ પરિણામ સીધું ફાઇલમાં સેવ કરે છે, અને JavaScript તથા Python વાળાં ઉદાહરણ 202 ની રાહ પણ જુએ છે.
curl -X POST https://removebackground.dev/v1/remove \
-H 'x-api-key: YOUR_API_KEY' \
-F 'image_file=@photo.jpg' \
-o photo-no-bg.pngતમારી ઇમેજ મોકલો
POST /v1/remove ચાર માંથી કોઈપણ રીતે ઇમેજ લે છે. તેમાંથી એક મોકલો; જો કોઈ રિક્વેસ્ટમાં એકથી વધુ હોય, તો image_file ને પ્રાથમિકતા મળે છે, પછી image_file_b64, પછી image_url, પછી raw બૉડી. આ ઉદાહરણો તમારી કી REMOVEBG_API_KEY એન્વાયર્નમેન્ટ વેરિએબલમાંથી વાંચે છે (export REMOVEBG_API_KEY=… વડે સેટ કરો); ડબલ ક્વોટ્સ પર ધ્યાન આપો, તેનાથી શેલ વેલ્યૂ ભરી દે છે.
curl -X POST https://removebackground.dev/v1/remove \
-H "x-api-key: $REMOVEBG_API_KEY" \
-F 'image_file=@photo.jpg' \
-o photo-no-bg.pngMultipart ફૉર્મ ડેટા, ફીલ્ડ image_file. JPG, PNG અથવા WebP, 25 MB સુધી.
દરેક ઉદાહરણ બૉડીને ફાઇલમાં સેવ કરે છે. સ્ટેટસ 200 હોય ત્યારે જ તે ફાઇલ ઇમેજ હોય છે; જુઓ રિસ્પોન્સ સંભાળો.
રિસ્પોન્સ સંભાળો
મોટા ભાગની એકલ ઇમેજ એ જ રિસ્પોન્સમાં તૈયાર થઈને પાછી આવે છે. જ્યારે કતાર અસામાન્ય રીતે વ્યસ્ત હોય અને કોઈ ઇમેજને લગભગ 55 સેકન્ડથી વધુ સમય લાગે, ત્યારે તેના બદલે તમને job id સાથે 202 Accepted મળે છે. જોબ ચાલુ રહે છે: id વડે તેનું પરિણામ મેળવો. ઇમેજ ફરી મોકલવાથી બીજી જોબ શરૂ થશે અને બીજી ક્રેડિટ વપરાઈ શકે છે.
| સ્ટેટસ | બૉડી | શું કરવું |
|---|---|---|
200 | ઇમેજ (image/png, image/jpeg અથવા image/webp) | તેને સેવ કરો. ફાઇલ એક્સ્ટેન્શન પસંદ કરવા Content-Type નો ઉપયોગ કરો. |
202 | JSON: { id, status, status_url, result_url } | આ ઇમેજ નથી. થોડી સેકન્ડ રાહ જુઓ, પછી result_url પર GET કરો. ઇમેજ ફરી ન મોકલો. |
4xx / 5xx | JSON: { "error": { "code", "message" } } | આ ઇમેજ નથી. કોડ વાંચો (એરર જુઓ) અને બૉડીને ચિત્ર તરીકે સેવ ન કરો. |
એક સંપૂર્ણ ઉદાહરણ
તૈયાર ઇમેજ, 202, નિષ્ફળ જોબ અને લોકલ સમય મર્યાદા સંભાળે છે. તે ઇમેજ એક જ વાર મોકલે છે અને ફક્ત સુરક્ષિત સ્ટેટસ ચેક જ ફરી અજમાવે છે.
import os
import time
import uuid
import requests
API = "https://removebackground.dev"
KEY = os.environ["REMOVEBG_API_KEY"] # keep the key on your server
EXT = {"image/png": ".png", "image/jpeg": ".jpg", "image/webp": ".webp"}
def save(res, stem):
"""Save an image response with the right extension; raise on anything else."""
mime = res.headers.get("Content-Type", "").split(";")[0]
if res.status_code != 200 or mime not in EXT:
raise RuntimeError(f"HTTP {res.status_code}: {res.text[:500]}")
path = stem + EXT[mime]
with open(path, "wb") as f:
f.write(res.content)
return path
def remove_background(image_url, stem="result", max_wait=300):
s = requests.Session()
s.headers["x-api-key"] = KEY
# One key per image: resending with the same key returns the same job, never a second
# charge, so this POST is safe to retry after a timeout or a dropped connection.
idem = {"Idempotency-Key": str(uuid.uuid4())}
for attempt in range(3):
try:
res = s.post(f"{API}/v1/remove", data={"image_url": image_url}, headers=idem, timeout=(10, 120))
break
except requests.ConnectionError:
if attempt == 2:
raise
time.sleep(2)
if res.status_code != 202:
return save(res, stem) # 200 = the image; anything else raises
# 202: still processing. Wait for the same job; never send the image again.
job_id = res.json()["id"]
deadline = time.monotonic() + max_wait
while time.monotonic() < deadline:
time.sleep(2) # the API sends Retry-After: 2
res = s.get(f"{API}/v1/jobs/{job_id}/result", timeout=30)
if res.status_code == 409 and res.json()["error"]["code"] == "not_ready":
continue
return save(res, stem) # the image, or the job's own error
raise TimeoutError(f"Job {job_id} is still running. Check it later at /v1/jobs/{job_id}.")
print(remove_background("https://example.com/photo.jpg"))Python 3 અને requests જરૂરી છે (pip install requests).
- તમારી સ્ક્રિપ્ટ અટકાવવાથી જોબ અટકતી નથી; તે હજી પૂર્ણ થઈ શકે છે અને ચાર્જ લાગી શકે છે. તેનું પરિણામ તમારા સ્ટુડિયોમાં દેખાશે.
- સમય મર્યાદા તમારી પસંદગી છે, અમારું વચન નથી; મોટા ભાગની ઇમેજ થોડી સેકન્ડમાં પૂર્ણ થાય છે.
- remove.bg-કૉમ્પેટિબલ એન્ડપૉઇન્ટ અલગ રીતે વર્તે છે: તે ક્યારેય 202 આપતો નથી (નીચે જુઓ).
ઑથેન્ટિકેશન
તમારી API કી x-api-key હેડરમાં મોકલો. તમારા એકાઉન્ટ પેજ પર કી બનાવો અને રદ કરો; દરેક કૉલ તે એકાઉન્ટની ક્રેડિટ વાપરે છે. બધા એન્ડપૉઇન્ટ https://removebackground.dev હેઠળ છે અને CORS રિક્વેસ્ટ સ્વીકારે છે, પણ CORS થી વેબ પેજમાં કી મૂકવી સુરક્ષિત બનતી નથી: તેને તમારા સર્વર પર રાખો (જુઓ સુરક્ષા). એરર JSON માં હોય છે: { "error": { "code": "…", "message": "…" } }.
સંપૂર્ણ કૉન્ટ્રૅક્ટ OpenAPI 3.1 (openapi.json) તરીકે પ્રકાશિત છે, ક્લાયન્ટ જનરેટર, Postman અથવા ટેસ્ટ માટે; AI કોડિંગ આસિસ્ટન્ટ llms.txt થી શરૂ કરી શકે છે.
POST /v1/remove
રિયલ-ટાઇમ. એક ઇમેજનું બેકગ્રાઉન્ડ દૂર કરો. સામાન્ય રીતે તૈયાર ઇમેજ જ રિસ્પોન્સ બૉડી હોય છે (image/png, image/jpeg અથવા image/webp), સામાન્ય રીતે થોડી સેકન્ડ પછી. પેરામીટર ફૉર્મ ફીલ્ડ, JSON કી અથવા query-string વેલ્યૂ હોઈ શકે છે; તમે Content-Type: image/jpeg, image/png, image/webp અથવા application/octet-stream સાથે raw ઇમેજ બાઇટ્સ પણ POST કરી શકો છો. વધુમાં વધુ 25 MB. દરેક ઇનપુટ રીત માટે જુઓ તમારી ઇમેજ મોકલો.
| પેરામીટર | ટાઇપ | વર્ણન |
|---|---|---|
image_file | file | ઇમેજ (JPG, PNG અથવા WebP), multipart ફૉર્મ ડેટા તરીકે. |
image_file_b64 | string | base64 તરીકે ઇમેજ, data:image/…;base64, પ્રીફિક્સ સાથે કે વગર (ડીકોડ કર્યા પછી 25 MB). JSON માંથી મોકલવા માટે સરળ. |
image_url | string | ઇમેજનું પબ્લિક http(s) URL. અમે તેને ડાઉનલોડ કરીએ છીએ (3 સુધી રીડાયરેક્ટ, 15 s). એકથી વધુ મોકલાય તો image_file ને પ્રાથમિકતા મળે છે, પછી image_file_b64, પછી image_url, પછી raw બૉડી. |
format | png | jpg | webp | આઉટપુટ ફૉર્મેટ. ડિફૉલ્ટ png. JPG માં ટ્રાન્સપરન્સી નથી: તેને bg_color પર, અથવા સફેદ પર મૂકવામાં આવે છે. |
bg_color | રંગ | બેકગ્રાઉન્ડ ભરો: hex (ffffff, #fff), rgb(255, 255, 255), અથવા white, black, red, green, blue, yellow, gray / grey. transparent (ડિફૉલ્ટ) તેને ટ્રાન્સપરન્ટ રાખે છે. |
size | preview | medium | hd | full | મેગાપિક્સેલ મર્યાદા, ઍસ્પેક્ટ રેશિયો જળવાય છે, ક્યારેય મોટું કરાતું નથી: preview ≤ 0.25 MP, medium ≤ 1.5 MP, hd ≤ 4 MP, full (ડિફૉલ્ટ) મૂળ રિઝોલ્યુશન (25 MP સુધી). width અથવા height સેટ હોય ત્યારે અવગણાય છે. |
crop | true | false | W:H | સબ્જેક્ટના બાઉન્ડિંગ બૉક્સ સુધી કાપો. ઍસ્પેક્ટ રેશિયો (1:1, 4:5, 4:3, 16:9…) સાથે, બૉક્સને સબ્જેક્ટની આસપાસ તે રેશિયો સુધી મોટું કરાય છે (ક્યારેય નાનું નહીં); ફોટાની બહારનો વિસ્તાર ટ્રાન્સપરન્ટ (અથવા bg_color) હોય છે. ડિફૉલ્ટ false. |
padding | px | અપૂર્ણાંક | % | crop સાથે: દરેક બાજુએ ઉમેરાતું માર્જિન. 0.1 અથવા 10% = સબ્જેક્ટની પહોળાઈ (ડાબે/જમણે) અને ઊંચાઈ (ઉપર/નીચે) નો દસમો ભાગ; "10%,7.5%" આડું અને ઊભું અલગ સેટ કરે છે; 24px (અથવા 1 થી મોટી પૂર્ણ સંખ્યા) પિક્સેલ છે, 500 સુધી. ડિફૉલ્ટ 0. |
channels | rgba | rgb | alpha | rgba (ડિફૉલ્ટ): ટ્રાન્સપરન્ટ કટ-આઉટ. rgb: અપારદર્શક, bg_color અથવા સફેદ પર મૂકેલું. alpha: ગ્રેસ્કેલ PNG માસ્ક (સફેદ = સબ્જેક્ટ), કટ-આઉટ જેટલી જ સાઇઝ અને ક્રૉપ. type=mask હજી પણ alpha ના બીજા નામ તરીકે કામ કરે છે. |
width / height | 1–6000 | પિક્સેલમાં ચોક્કસ આઉટપુટ સાઇઝ, crop પછી લાગુ થાય છે (size ને ઓવરરાઇડ કરે છે). ફક્ત એક આપો તો બીજી ઍસ્પેક્ટ રેશિયો મુજબ ગોઠવાય છે. ક્યારેય ખેંચાતું નથી. |
roi | x1 y1 x2 y2 | રસનો વિસ્તાર, px અથવા % માં (દા.ત. 0% 0% 50% 100%). ફક્ત તેની અંદરનો સબ્જેક્ટ રખાય છે; બહારનું બધું બેકગ્રાઉન્ડ બને છે. કોઓર્ડિનેટ મૂળ ઇમેજ મુજબ છે. ડિફૉલ્ટ: આખી ઇમેજ. |
fit | contain | cover | scale-down | width અને height સાથે. contain (ડિફૉલ્ટ): અંદર સમાય, વચ્ચે, બાકીનું ટ્રાન્સપરન્ટ (અથવા bg_color). cover: બૉક્સ ભરે, સબ્જેક્ટની આસપાસનો વધારાનો ભાગ ક્રૉપ કરીને. scale-down: contain જેવું, પણ ક્યારેય મોટું નહીં. |
વિકલ્પો આ ક્રમમાં લાગુ થાય છે: roi, size (અથવા પછી width/height), crop + padding + ઍસ્પેક્ટ રેશિયો, width/height + fit, પછી channels અથવા બેકગ્રાઉન્ડ રંગ, પછી format. દરેક વિકલ્પ માટે એ જ 1 ક્રેડિટ. અજાણ્યાં પેરામીટર અવગણાય છે.
ઉદાહરણ: સફેદ પર HD JPG, 40 px પૅડિંગ સાથે સબ્જેક્ટ મુજબ ક્રૉપ
curl -X POST https://removebackground.dev/v1/remove \
-H 'x-api-key: YOUR_API_KEY' \
-F 'image_file=@product.jpg' \
-F 'bg_color=ffffff' \
-F 'format=jpg' \
-F 'size=hd' \
-F 'crop=true' \
-F 'padding=40' \
-o product-no-bg.jpgઉદાહરણ: માર્કેટપ્લેસ માટે ચોરસ ઇમેજ, 10% પૅડિંગ સાથે સબ્જેક્ટ વચ્ચે
curl -X POST https://removebackground.dev/v1/remove \
-H 'x-api-key: YOUR_API_KEY' \
-F 'image_file=@product.jpg' \
-F 'crop=1:1' -F 'padding=10%' \
-F 'width=1000' -F 'height=1000' \
-F 'format=jpg' -F 'bg_color=white' \
-o product-square.jpgઉદાહરણ: base64 ઇનપુટ, આલ્ફા માસ્ક આઉટપુટ
printf '{"image_file_b64":"%s","channels":"alpha"}' "$(base64 < portrait.jpg | tr -d '\n')" > request.json
curl -X POST https://removebackground.dev/v1/remove \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
--data-binary @request.json \
-o portrait-mask.png200 OK
ઇમેજ બાઇટ્સ, આ હેડર સાથે:
| હેડર | અર્થ |
|---|---|
X-Image-Width / X-Image-Height | પરિણામની સાઇઝ પિક્સેલમાં (X-Width / X-Height તરીકે પણ મોકલાય છે). |
X-Request-ID | તમે X-Request-ID મોકલ્યો હોય તો તે, નહીંતર બનાવેલો id. સપોર્ટનો સંપર્ક કરો ત્યારે તે જણાવો. |
X-Processing-Time-Ms | રિક્વેસ્ટમાં લાગેલો સમય (X-Processing-Ms તરીકે પણ). |
X-Matte-Confidence | 0–1: માસ્ક કેટલું સ્પષ્ટ છે (પિક્સેલ પર |2a − 1| ની સરેરાશ, a = alpha). 1 ની નજીક એટલે સ્વચ્છ કટ-આઉટ; ઓછી વેલ્યૂ એટલે ઘણી નરમ અથવા અનિશ્ચિત કિનારીઓ. |
X-Matte-Ambiguous-Ratio | જેમનો alpha 0.1 અને 0.9 ની વચ્ચે હોય તેવા પિક્સેલનું પ્રમાણ (વાળ, કાચ, મોશન બ્લર). રિવ્યૂ માટે ઇમેજને ચિહ્નિત કરવામાં ઉપયોગી. |
X-Credits-Remaining | આ ઇમેજ પછી તમારું બૅલેન્સ. |
X-Removal-Id | સંગ્રહિત પરિણામનો id. |
X-Job-Id | રિક્વેસ્ટ પાછળની જોબનો id (/v1/jobs/:id સાથે વાપરી શકાય). |
202 Accepted (લાંબી કતાર માટે વૈકલ્પિક વ્યવસ્થા)
જો ઇમેજ લગભગ 55 સેકન્ડમાં તૈયાર ન થાય, ઉદાહરણ તરીકે જ્યારે કતાર અસામાન્ય રીતે વ્યસ્ત હોય, ત્યારે તમને JSON { id, status, status_url, result_url } સાથે 202 મળે છે (ઉપરાંત Location અને Retry-After: 2). done true થાય ત્યાં સુધી status_url પોલ કરો, પછી result_url ડાઉનલોડ કરો. ચાર્જ એક જ વાર લાગે છે, ફક્ત ઇમેજ સફળ થાય ત્યારે. Idempotency-Key વગર ઇમેજ ફરી ન મોકલો: તેનાથી બીજી જોબ શરૂ થાય છે. સંપૂર્ણ ઉદાહરણ માટે જુઓ રિસ્પોન્સ સંભાળો.
GET /v1/jobs/:id
/v1/remove અથવા /v1/batch વડે બનેલી જોબનું સ્ટેટસ. એ જ કી; તમે ફક્ત તમારી પોતાની જોબ જ જુઓ છો.
| ફીલ્ડ | અર્થ |
|---|---|
status | queued, processing, succeeded, partial, failed અથવા canceled |
done | ચલાવવાનું કંઈ બાકી ન રહે ત્યારે true |
total, succeeded, failed, skipped | ઇમેજની સંખ્યા |
credits_charged | આ જોબે વાપરેલી ક્રેડિટ (દરેક સફળ ઇમેજ પર 1) |
status_url, result_url | ક્યાં પોલ કરવું, અને ક્યાંથી ડાઉનલોડ કરવું |
items[] | દરેક ઇમેજ માટે: position, input, status, error { code, message }, અને સફળ થાય તો removal_id, width, height, format, result_url |
GET /v1/jobs/:id/result
પૂર્ણ થયેલી જોબની ઇમેજ બાઇટ્સ, /v1/remove જેવા જ હેડર સાથે. ?item=N બૅચ જોબની એક ઇમેજ પસંદ કરે છે (ડિફૉલ્ટ 0). જોબ ચાલુ હોય ત્યારે Retry-After: 2 સાથે 409 not_ready, અથવા નિષ્ફળ જાય તો ઇમેજની પોતાની એરર આપે છે.
POST /v1/batch
100 જેટલા ઇમેજ URL ને એક જોબ તરીકે કતારમાં મૂકો: JSON { "image_urls": ["https://…", …], "format": "jpg", "bg_color": "ffffff", "size": "hd", "crop": "1:1", "padding": "10%" }, /v1/remove જેવા જ વિકલ્પો સાથે (channels, width, height અને fit પણ). તરત જ { id, status, total, invalid, duplicates, status_url } સાથે 202 આપે છે. જોબ પોલ કરો, પછી દરેક આઇટમનું result_url મેળવો. સફળ થતી દરેક ઇમેજ પર 1 ક્રેડિટ; દરેક એકાઉન્ટ દીઠ વધુમાં વધુ 3 બૅચ જોબ ખુલ્લી. ઉદાહરણ રિસ્પોન્સ સાથેની વિગતવાર સમજ બૅચ, શરૂથી અંત સુધી માં.
remove.bg-કૉમ્પેટિબલ એન્ડપૉઇન્ટ
remove.bg નું સેલ્ફ-સર્વ API 1 December 2026, 09:00 CET એ બંધ થાય છે (જાહેરાત). હાલનાં remove.bg ઇન્ટિગ્રેશન અહીં એક લાઇન બદલીને કામ કરે છે: https://api.remove.bg/v1.0/removebg → https://removebackground.dev/v1.0/removebg, એ જ X-Api-Key હેડરમાં removebackground.dev કી સાથે. એ જ કતાર, દરેક સફળ ઇમેજ પર એ જ 1 ક્રેડિટ, /v1/remove જેવી જ આઉટપુટ ગુણવત્તા. માઇગ્રેશન ગાઇડ.
POST /v1.0/removebg
remove.bg નાં પેરામીટર નામ સાથે Multipart, urlencoded અથવા JSON બૉડી. ઇમેજ બાઇટ્સ અને remove.bg ના હેડર સાથે જવાબ આપે છે, અથવા તમે Accept: application/json મોકલો ત્યારે { "data": { "result_b64", "foreground_top", "foreground_left", "foreground_width", "foreground_height" } }. એરર remove.bg નું માળખું વાપરે છે: { "errors": [{ "title", "code", "detail" }] }. /v1/remove થી વિપરીત, તે ક્યારેય 202 આપતો નથી: તે 110 સેકન્ડ સુધી રાહ જુએ છે, પછી 503 timeout આપે છે. જોબ ચાલુ રહે છે અને સફળ થાય તો ચાર્જ થાય છે, એટલે તે રિક્વેસ્ટ ફરી મોકલવાથી બીજી જોબ શરૂ થાય છે.
| પેરામીટર | સ્ટેટસ | નોંધ |
|---|---|---|
image_file / image_file_b64 / image_url | સપોર્ટેડ | Multipart, urlencoded અથવા JSON બૉડી. 25 MB સુધીની JPG, PNG અથવા WebP. |
size | સપોર્ટેડ | auto, full, 4k અને 50MP મૂળ રિઝોલ્યુશન આપે છે (25 MP સુધી); preview, small અને regular ≈ 0.25 MP; medium 1.5 MP; hd 4 MP. હંમેશાં 1 ક્રેડિટ. |
format | સપોર્ટેડ | auto (ટ્રાન્સપરન્ટ હોય તો PNG, નહીંતર JPG), png, jpg, webp અને zip (color.jpg + alpha.png). |
crop / crop_margin | સપોર્ટેડ | સબ્જેક્ટના px અથવા %, CSS જેવી 1–4 વેલ્યૂ ("10% 20%" = ઊભું, આડું); દરેક બાજુએ વધુમાં વધુ 500px અથવા 50%. |
roi | સપોર્ટેડ | px અથવા % માં "x1 y1 x2 y2": ફક્ત એ વિસ્તારની અંદરનો સબ્જેક્ટ જ રાખવામાં આવે છે. |
scale / position | સપોર્ટેડ | scale 10%–100% અથવા original; position center, original અથવા "x% y%". |
channels | સપોર્ટેડ | rgba (કટ-આઉટ) અથવા alpha (ગ્રેસ્કેલ માસ્ક). |
bg_color | સપોર્ટેડ | # સાથે કે વગર હેક્સ (81d4fa), અથવા રંગનું નામ. 8-અંકનો હેક્સ રંગ રાખે છે અને તેનો આલ્ફા કાઢી નાખે છે. |
bg_image_url / bg_image_file | સપોર્ટેડ | કટ-આઉટને તમારી બેકગ્રાઉન્ડ ઇમેજ પર મૂકવામાં આવે છે, આઉટપુટ સાઇઝ મુજબ cover-fit કરીને. |
Accept: application/json | સપોર્ટેડ | પાછું આપે છે { data: { result_b64, foreground_top, foreground_left, foreground_width, foreground_height } }. |
type / type_level | સ્વીકારાય છે, અવગણાય છે | સબ્જેક્ટ આપમેળે ઓળખાય છે; X-Type હંમેશાં "other" હોય છે. |
semitransparency | સ્વીકારાય છે, અવગણાય છે | નરમ કિનારીઓ અને અર્ધ-પારદર્શક ભાગ મૉડલના મૅટમાંથી જેમ આવે તેમ જ રહે છે. |
shadow_type / shadow_opacity / add_shadow | સ્વીકારાય છે, અવગણાય છે | કોઈ પડછાયો ઉમેરવામાં આવતો નથી. |
લાંબી ચાલતી રિક્વેસ્ટ | તફાવત | અમે 110 સેકન્ડ સુધી રાહ જોઈએ છીએ; ત્યાં સુધીમાં ઇમેજ તૈયાર ન થાય તો તમને ફરી પ્રયાસ કરી શકાય તેવો 503 મળે છે (પૂર્ણ ન થાય ત્યાં સુધી ચાર્જ નહીં). |
ઉદાહરણ
curl -H "X-Api-Key: $REMOVEBG_API_KEY" \
-F 'image_file=@photo.jpg' -F 'size=auto' \
-F 'crop=true' -F 'crop_margin=10%' -F 'bg_color=ffffff' \
-o no-bg.jpg https://removebackground.dev/v1.0/removebgરિસ્પોન્સ હેડર
| હેડર | અર્થ |
|---|---|
X-Width / X-Height | પરિણામની સાઇઝ, પિક્સેલમાં. |
X-Credits-Charged | આ ઇમેજે વાપરેલી ક્રેડિટ: હંમેશાં 1 (નિષ્ફળ ઇમેજ માટે 0). |
X-Type | હંમેશાં "other" (સબ્જેક્ટની ઓળખ આપમેળે થાય છે). |
X-Foreground-Top / -Left / -Width / -Height | પરિણામમાં સબ્જેક્ટનું બાઉન્ડિંગ બૉક્સ, પિક્સેલમાં. |
X-Request-ID | તમારો X-Request-ID પાછો આપે છે, અથવા બનાવેલો id. વધારાનું. |
X-Matte-Confidence / X-Matte-Ambiguous-Ratio | માસ્ક કેટલું સ્વચ્છ છે (0–1), અને નરમ પિક્સેલનું પ્રમાણ. વધારાનું: રિવ્યૂ માટે ઇમેજને ચિહ્નિત કરવામાં ઉપયોગી. |
એરર
| સ્ટેટસ | અર્થ |
|---|---|
400 | અમાન્ય પેરામીટર અથવા ઇમેજ (invalid_size, invalid_crop_margin, missing_source, file_too_large, unknown_foreground જેવા કોડ). |
402 | insufficient_credits: કિંમત પેજ પર ટોપ-અપ કરો. |
403 | auth_failed: X-Api-Key ખૂટે છે અથવા અમાન્ય છે. |
429 | rate_limit_exceeded. |
500 / 503 | પ્રોસેસિંગ નિષ્ફળ થયું, સમય પૂરો થયો અથવા સર્વિસ થોડા સમય માટે ઉપલબ્ધ નથી. ફરી પ્રયાસ કરો; નિષ્ફળ ઇમેજ મફત છે. |
GET /v1.0/account
remove.bg ના એકાઉન્ટ માળખામાં તમારું બૅલેન્સ: { "data": { "attributes": { "credits": { "total", "subscription": 0, "payg", "enterprise": 0 }, "api": { "free_calls": 0, "sizes": "all" } } } }. બધી ક્રેડિટ જરૂર મુજબ ખરીદેલી છે અને તેની ક્યારેય મુદત પૂરી થતી નથી, એટલે total બરાબર payg. તમારી X-Api-Key સાથે GET https://removebackground.dev/v1.0/account કરો.
એરર (/v1 એન્ડપૉઇન્ટ)
નિષ્ફળ ઇમેજ ક્યારેય ચાર્જ થતી નથી.
| સ્ટેટસ | કોડ | અર્થ |
|---|---|---|
400 | missing_image, invalid_url, invalid_body, invalid_json, invalid_image_b64, invalid_format, invalid_bg_color, invalid_size, invalid_crop, invalid_padding, invalid_type, invalid_channels, invalid_width, invalid_height, invalid_fit, invalid_roi, fetch_failed, fetch_timeout, rejected, too_many_images, invalid_images | રિક્વેસ્ટ અથવા ઇમેજ URL વાપરી શકાય તેમ નથી. |
401 | unauthorized | x-api-key ખૂટે છે, ખોટી છે અથવા રદ થયેલી છે. |
402 | insufficient_credits, out_of_credits | તમારું બૅલેન્સ ખાલી છે. કિંમત પેજ પર ટોપ-અપ કરો. |
404 | not_found | આવી કોઈ જોબ નથી (અથવા તે તમારી નથી). |
409 | not_ready, canceled, idempotency_key_reused | જોબ ચાલુ હોય ત્યારે GET …/result (2 s પછી ફરી પ્રયાસ કરો), જોબ રદ થઈ, અથવા Idempotency-Key બીજી રિક્વેસ્ટ માટે ફરી વપરાઈ. |
410 | result_unavailable | પરિણામ ડિલીટ થઈ ગયું અથવા તેની મુદત પૂરી થઈ. |
413 | too_large | ઇમેજ 25 MB થી મોટી છે. |
422 | processing_failed, invalid_image, missing_upload | ફાઇલ વાંચી શકાય તેવી ઇમેજ નથી. ચાર્જ થયો નથી. |
429 | rate_limited, too_many_batches | એકાઉન્ટ દીઠ રિક્વેસ્ટ મર્યાદા વટાવી (Retry-After રાહ જુઓ), અથવા તમારી 3 બૅચ જોબ પહેલેથી ચાલુ છે. |
502 | model_unavailable, upstream_error, … | રીટ્રાય પછી પણ અમે ઇમેજ પ્રોસેસ કરી શક્યા નહીં. ચાર્જ થયો નથી. |
503 | server_paused, unavailable | API થોભાવેલું છે (લૉન્ચ પહેલાં) અથવા થોડા સમય માટે ઉપલબ્ધ નથી. પછી ફરી પ્રયાસ કરો. |
બૅચ, શરૂથી અંત સુધી
1. સબમિટ કરો
curl -X POST https://removebackground.dev/v1/batch \
-H "x-api-key: $REMOVEBG_API_KEY" \
-H 'Content-Type: application/json' \
-d '{ "image_urls": ["https://example.com/front.jpg", "https://example.com/back.jpg"], "format": "png", "size": "hd" }'100 જેટલા પબ્લિક ઇમેજ URL, ઉપરાંત /v1/remove ના કોઈપણ વિકલ્પો. ઉપરના બે પ્લેસહોલ્ડર URL જો વાસ્તવિક ઇમેજ હોત તો વધુમાં વધુ 2 ક્રેડિટ લાગત. જવાબ તરત જ આવે છે:
202 Accepted
{
"id": "3f6c2a9e-8d1b-4c7a-9e2f-5b8d0a1c4e77",
"status": "queued",
"total": 2,
"invalid": 0,
"duplicates": 0,
"status_url": "https://removebackground.dev/v1/jobs/3f6c2a9e-8d1b-4c7a-9e2f-5b8d0a1c4e77"
}invalid એવી એન્ટ્રી ગણે છે જે http(s) URL નથી અને duplicates પુનરાવર્તનો ગણે છે; બંને છોડી દેવાય છે અને ક્યારેય ચાર્જ થતાં નથી. id સેવ કરી રાખો: રીસ્ટાર્ટ પછી જોબ ફરી પકડવા માટે તે જ કામ લાગે છે.
2. જોબ પોલ કરો
done true ન થાય ત્યાં સુધી દર થોડી સેકન્ડે GET /v1/jobs/:id કરો. status queued થી processing માં જાય છે, પછી succeeded, partial (કેટલીક ઇમેજ નિષ્ફળ) અથવા failed તરીકે પૂર્ણ થાય છે. જે આઇટમ ફરી અજમાવાઈ રહી હોય તે retrying બતાવે છે.
{
"id": "3f6c2a9e-…",
"status": "partial",
"done": true,
"total": 2, "succeeded": 1, "failed": 1, "skipped": 0,
"credits_charged": 1,
"items": [
{ "position": 0, "input": "https://example.com/front.jpg", "status": "succeeded",
"removal_id": "…", "width": 1600, "height": 1200, "format": "png",
"result_url": "https://removebackground.dev/v1/jobs/3f6c2a9e-…/result?item=0" },
{ "position": 1, "input": "https://example.com/back.jpg", "status": "failed",
"error": { "code": "fetch_failed", "message": "…" } }
]
}3. દરેક પરિણામ ડાઉનલોડ કરો
દરેક સફળ આઇટમ માટે GET /v1/jobs/:id/result?item=N (અથવા તેનું result_url વાપરો). item એ શૂન્યથી શરૂ થતી position છે. અમાન્ય અને પુનરાવર્તિત URL દૂર થયા પછી પોઝિશન તમારી યાદીને અનુસરે છે, એટલે જ્યારે આમાંથી કોઈ ગણતરી 0 થી વધુ હોય, ત્યારે પરિણામો ઇન્ડેક્સથી નહીં પણ input થી મેળવો.
donetrue થાય પછી બૅચ 3 ખુલ્લા બૅચની મર્યાદામાં ગણાતો નથી.- API માં કોઈ cancel એન્ડપૉઇન્ટ, webhook કે ZIP ડાઉનલોડ નથી. બલ્ક પેજ પરથી શરૂ કરેલા બૅચ ત્યાં જ રદ કરી શકાય છે અથવા ZIP તરીકે ડાઉનલોડ કરી શકાય છે.
રીટ્રાય, ડુપ્લિકેટ અને બિલિંગ
Idempotency-Key મોકલો અને રીટ્રાયમાં બે વાર ચાર્જ નહીં લાગે. POST /v1/remove અથવા POST /v1/batch માં Idempotency-Key હેડર ઉમેરો (255 અક્ષર સુધીની કોઈપણ અનન્ય સ્ટ્રિંગ, જેમ કે UUID), દરેક ઇમેજ અથવા બૅચ માટે એક કી. જો તમે એ જ કી સાથે એ જ રિક્વેસ્ટ ફરી મોકલો, તો પહેલી રિક્વેસ્ટે બનાવેલી જોબ જ મળે છે, Idempotent-Replayed: true સાથે: કોઈ નવી જોબ નહીં અને કોઈ નવો ચાર્જ નહીં, ભલે પહેલી રિક્વેસ્ટ હજી ચાલુ હોય. અલગ ઇમેજ અથવા વિકલ્પો સાથે એ જ કી વાપરો તો જવાબ 409 idempotency_key_reused આવે છે. કી તમારા એકાઉન્ટની છે અને તેની મુદત પૂરી થતી નથી.
કી વગર, દરેક POST નવી જોબ બનાવે છે, અને સફળ થતી દરેક જોબ પર 1 ક્રેડિટ લાગે છે (remove.bg-કૉમ્પેટિબલ POST /v1.0/removebg માં કી નથી). જોબ વાંચવી (GET /v1/jobs/…) હંમેશાં મફત છે અને વારંવાર કરવી સુરક્ષિત છે.
IDEMPOTENCY_KEY=$(uuidgen) # one per image; send the same one on every retry
curl -X POST https://removebackground.dev/v1/remove \
-H "x-api-key: $REMOVEBG_API_KEY" \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-F 'image_file=@photo.jpg' \
-o photo-no-bg.pngશેમાં ક્રેડિટ લાગે છે
| પરિસ્થિતિ | ચાર્જ |
|---|---|
| પ્રોસેસિંગ પહેલાં જ રિક્વેસ્ટ નકારાઈ (ખોટી કી, ખોટો વિકલ્પ, ખૂબ મોટી, ક્રેડિટ પૂરી) | મફત. |
| ઇમેજ પ્રોસેસ થઈ શકતી નથી (422 અમાન્ય ઇમેજ, અમારા રીટ્રાય પછી 502) | મફત. |
| ઇમેજ સફળ થાય છે | 1 ક્રેડિટ, એક જ વાર, સફળ થાય ત્યારે ચાર્જ થાય છે. અમારા પોતાના આંતરિક રીટ્રાય વધારાનો ચાર્જ ઉમેરતા નથી. |
| તમને 202 મળે છે | હજી કંઈ નહીં. જોબ ચાલુ રહે છે અને સફળ થાય તો જ 1 ક્રેડિટ ચાર્જ થાય છે. |
| રાહ જોતી વખતે તમારા ક્લાયન્ટનો ટાઇમઆઉટ થાય છે અથવા કનેક્શન તૂટે છે | જોબ ચાલુ રહે છે અને સફળ થાય તો ચાર્જ થાય છે. પરિણામ તમારા સ્ટુડિયોમાં દેખાય છે. |
| તમે એ જ Idempotency-Key સાથે એ જ રિક્વેસ્ટ બે વાર મોકલો છો | એક જોબ, વધુમાં વધુ 1 ક્રેડિટ. પુનરાવર્તનને એ જ જોબ મળે છે (હેડર Idempotent-Replayed: true). |
| તમે કી વગર એ જ ઇમેજ બે વાર મોકલો છો | બે અલગ જોબ; સફળ થતી દરેક પર 1 ક્રેડિટ. |
| તમે તૈયાર પરિણામ ફરી ડાઉનલોડ કરો છો | મફત, સંગ્રહિત હોય ત્યાં સુધી જેટલી વાર જોઈએ તેટલી વાર. |
| બૅચ આંશિક રીતે સફળ થાય છે | સફળ થયેલી દરેક ઇમેજ પર 1 ક્રેડિટ; જોબ પરનું credits_charged કુલ બતાવે છે. |
| બૅચમાં એ જ URL બે વાર છે | એક બૅચની અંદરનાં પુનરાવર્તનો કતારમાં મૂકતાં પહેલાં જ છોડી દેવાય છે અને ક્યારેય ચાર્જ થતાં નથી. અલગ અલગ બૅચમાં સરખા URL અલગ જોબ છે. |
| બૅચ દરમિયાન ક્રેડિટ પૂરી થઈ જાય છે | પહેલેથી પૂર્ણ થયેલી ઇમેજની ચૂકવણી રહે છે; બાકીની skipped (out_of_credits) તરીકે ચિહ્નિત થાય છે અને મફત છે. ક્રેડિટ ખરીદો, પછી બાકીના URL નવા બૅચ તરીકે મોકલો. |
ક્યારે ફરી પ્રયાસ કરવો
| શું થયું | શું કરવું |
|---|---|
| GET /v1/jobs/:id અથવા …/result નિષ્ફળ જાય છે (નેટવર્ક એરર, 5xx) | ફરી પ્રયાસ કરવો સુરક્ષિત છે: જોબ વાંચવાથી ક્યારેય નવું કામ કે ચાર્જ બનતો નથી. પ્રયાસો વચ્ચે થોડું થોભો. |
| GET …/result નો જવાબ 409 not_ready | Retry-After (2 s) રાહ જુઓ અને ફરી પૂછો. ઇમેજ ફરી સબમિટ ન કરો. |
| GET …/result નો જવાબ 410 result_unavailable | સંગ્રહિત પરિણામ ડિલીટ થઈ ગયું છે. ઇમેજ ફરી પ્રોસેસ કરવી એ નવી જોબ છે અને તેમાં 1 ક્રેડિટ લાગે છે. |
| POST નો જવાબ 400, 413 અથવા 422 | પહેલાં રિક્વેસ્ટ અથવા ઇમેજ સુધારો; ફેરફાર વગર મોકલવાથી એ જ જવાબ મળશે. |
| POST નો જવાબ 401 અથવા 402 | કી સુધારો અથવા ટોપ-અપ કરો. લૂપમાં ન ફસાઓ. |
| POST નો જવાબ 429 rate_limited | Retry-After માં આપેલી સેકન્ડ રાહ જુઓ, પછી ફરી મોકલો (એ જ Idempotency-Key સાથે). મિનિટમાં 60 થી વધુ ઇમેજ? POST /v1/batch વાપરો: 100 જેટલી ઇમેજ માટે એક રિક્વેસ્ટ. |
| POST /v1/batch નો જવાબ 429 too_many_batches | તમારા 3 ખુલ્લા બૅચમાંથી એક પૂર્ણ થાય ત્યાં સુધી રાહ જુઓ (તેને પોલ કરો), પછી સબમિટ કરો. |
| POST /v1/… નો જવાબ 503 (unavailable, server_paused) | કોઈ જોબ બની નથી. થોડી રાહ જોઈને ફરી પ્રયાસ કરો. (remove.bg-કૉમ્પેટિબલ એન્ડપૉઇન્ટ અલગ છે: તેના 503 timeout નો અર્થ છે કે જોબ હજી ચાલુ છે.) |
| POST /v1/remove નો જવાબ 502 | તે જોબ નિષ્ફળ ગઈ અને ચાર્જ થઈ નથી. એક રીટ્રાય એટલે નવી જોબ. |
| POST નો ટાઇમઆઉટ થાય, કનેક્શન તૂટે, અથવા તમને 500 મળે | Idempotency-Key હોય તો: એ જ કી સાથે એ જ રિક્વેસ્ટ ફરી મોકલો; તમને મૂળ જોબ મળશે. કી ન હોય તો, જોબ કદાચ પહેલેથી બની ગઈ હોય અને ચાર્જ થઈ શકે: પહેલાં તમારો સ્ટુડિયો તપાસો. |
| POST નો જવાબ 409 idempotency_key_reused | તે કી પહેલેથી બીજી ઇમેજ અથવા વિકલ્પો માટે વપરાઈ ગઈ છે. દરેક નવી ઇમેજ માટે નવી કી બનાવો. |
મર્યાદાઓ અને સ્ટોરેજ
| મર્યાદા | વેલ્યૂ | મર્યાદા વટાવે ત્યારે એરર |
|---|---|---|
| ઇમેજ ફાઇલ | 25 MB (25 × 1024 × 1024 બાઇટ્સ); JPG, PNG અથવા WebP, ફાઇલના બાઇટ્સ પરથી ઓળખાય છે | 413 too_large · 422 processing_failed |
| Base64 / JSON બૉડી | ડીકોડ કર્યા પછી 25 MB (રિક્વેસ્ટ બૉડી લગભગ ત્રીજા ભાગ જેટલી મોટી હોઈ શકે) | 413 too_large |
| ઇનપુટ રિઝોલ્યુશન | 25 MP થી મોટી ઇમેજ પ્રોસેસિંગ પહેલાં 25 MP સુધી નાની કરાય છે | — |
| આઉટપુટ સાઇઝ | width અને height દરેક 1–6000 px | 400 invalid_width / invalid_height |
| image_url ડાઉનલોડ | ફક્ત http(s), 15 s ટાઇમઆઉટ, 3 સુધી રીડાયરેક્ટ; ખાનગી, loopback અને link-local સરનામાં દરેક રીડાયરેક્ટ પર નકારાય છે | 400 invalid_url · fetch_failed · fetch_timeout |
| POST /v1/remove માં રાહ | લગભગ 55 s, પછી job id સાથે 202 | 202 |
| બૅચની સાઇઝ | દરેક POST /v1/batch માં 100 ઇમેજ URL | 400 too_many_images |
| ખુલ્લા બૅચ | દરેક એકાઉન્ટ દીઠ 3 અપૂર્ણ મલ્ટિ-ઇમેજ જોબ (એકલ ઇમેજ ગણાતી નથી) | 429 too_many_batches |
| રિક્વેસ્ટ દર | દરેક એકાઉન્ટ દીઠ મિનિટમાં 60 રિક્વેસ્ટ, POST /v1/remove, /v1/batch અને /v1.0/removebg મળીને. બૅચ, ગમે તેટલી સાઇઝનો હોય, એક જ વાર ગણાય છે. જોબ વાંચવા પર કોઈ મર્યાદા નથી | 429 rate_limited (Retry-After સાથે) |
પરિણામો કેટલો સમય રખાય છે
દરેક પરિણામ બન્યા પછી 48 કલાક સુધી તમારા એકાઉન્ટમાં ખાનગી રીતે સંગ્રહિત રહે છે, પછી ડિલીટ કરવામાં આવે છે. ત્યાં સુધી તમે તેને GET /v1/jobs/:id/result વડે અથવા તમારા સ્ટુડિયોમાંથી મફતમાં ફરી ડાઉનલોડ કરી શકો છો. તે પછી પરિણામની લિંકનો જવાબ 410 result_unavailable આવે છે; ઇમેજ ફરી પ્રોસેસ કરવી એ નવી જોબ છે. ઇમેજ ગયા પછી પણ જોબ સ્ટેટસના રેકોર્ડ વાંચી શકાય છે. અપલોડ કેવી રીતે સંભાળાય છે તે માટે ગોપનીયતા નીતિ જુઓ; અમે મૉડલને તાલીમ આપવા તમારી ઇમેજ વાપરતા નથી.
સુરક્ષા
તમારી API કી તમારા નિયંત્રણ હેઠળના સર્વર પર રાખો. તેને બ્રાઉઝર કોડ, મોબાઇલ ઍપ, પબ્લિક રિપોઝિટરી કે URL માં ન મૂકો. તમારા પોતાના યુઝર્સને બેકગ્રાઉન્ડ દૂર કરવા દેવા, તેમની ઇમેજ તમારા બૅકએન્ડ દ્વારા મોકલો, અને ત્યાં તમારું પોતાનું સાઇન-ઇન અને ખર્ચ મર્યાદા ઉમેરો.
- API માં CORS ચાલુ છે જેથી તે ટૂલ અને સર્વર-સાઇડ કોડમાંથી કામ કરે. તેનો અર્થ એ નથી કે વેબ પેજમાં કી મૂકવી સુરક્ષિત છે: ત્યાં કોઈપણ તેને વાંચી શકે છે.
- એકાઉન્ટ પરની બધી કી એ જ ક્રેડિટ બૅલેન્સ વાપરે છે. તમારા એકાઉન્ટ પેજ પર દરેક ઍપ અથવા એન્વાયર્નમેન્ટ માટે અલગ કી બનાવો, જેથી એકને રદ કરવાથી બીજી બંધ ન થાય.
- જો કોઈ કી લીક થાય, તો તરત જ એકાઉન્ટ પેજ પર તેને રદ કરો (તે તરત કામ કરતી બંધ થઈ જાય છે) અને નવી બનાવો. અમે દરેક કીનો ફક્ત હૅશ સંગ્રહિત કરીએ છીએ, એટલે તે તમને ફરી બતાવી શકતા નથી.
સમસ્યા નિવારણ
| લક્ષણ | શું થઈ રહ્યું છે |
|---|---|
| મારું PNG ખૂલતું નથી | બૉડી JSON હતી (202 જોબ અથવા એરર), ઇમેજ નહીં. સેવ કરતા પહેલાં HTTP સ્ટેટસ અને Content-Type તપાસો. |
| મારી સ્ક્રિપ્ટનો ટાઇમઆઉટ થયો પણ ઇમેજ સ્ટુડિયોમાં દેખાય છે | તમે રાહ જોવાનું બંધ કર્યા પછી પણ જોબ ચાલુ રહી. ફરી મોકલવાને બદલે તેના job id વડે મેળવો. |
| એક ઇમેજ માટે મારી પાસેથી બે વાર ચાર્જ લેવાયો | તે Idempotency-Key વગર બે વાર મોકલાઈ હતી (ઘણી વાર ટાઇમઆઉટ પછી આપમેળે થતો રીટ્રાય). દરેક ઇમેજ માટે એક કી મોકલો અને રીટ્રાયમાં તે જ ફરી વાપરો. |
| URL મારા બ્રાઉઝરમાં ખૂલે છે પણ API તેને મેળવી શકતું નથી | હોસ્ટને કદાચ કૂકીઝ કે લૉગિનની જરૂર હોય, સર્વરને બ્લૉક કરતું હોય, 3 થી વધુ વાર રીડાયરેક્ટ કરતું હોય, 15 s થી વધુ સમય લેતું હોય, અથવા સાઇન કરેલા URL ની મુદત પૂરી થઈ હોય. તેના બદલે ફાઇલ અપલોડ કરો. |
| મારો બૅચ અધવચ્ચે અટકી ગયો | જોબમાં items[] જુઓ: નિષ્ફળ આઇટમમાં એરર કોડ હોય છે; out_of_credits સાથેની skipped આઇટમનો અર્થ છે કે બૅલેન્સ પૂરું થઈ ગયું. |
| કોઈ વિકલ્પ કંઈ કરતો હોય એવું લાગતું નથી | અજાણ્યાં પેરામીટર નામ ચૂપચાપ અવગણાય છે. પેરામીટર ટેબલ સાથે સ્પેલિંગ મેળવી જુઓ. /v1.0/removebg પર, remove.bg ના કેટલાક વિકલ્પો સ્વીકારાય છે પણ અવગણાય છે (તે ટેબલ જુઓ). |
| બેકગ્રાઉન્ડ ટ્રાન્સપરન્ટ નથી | JPG ટ્રાન્સપરન્ટ હોઈ શકતું નથી. format=png અથવા webp વાપરો અને bg_color સેટ ન કરો. |
| પરિણામની લિંક 410 આપે છે | સંગ્રહિત પરિણામ ડિલીટ થઈ ગયું છે. ફરી પ્રોસેસ કરવામાં 1 ક્રેડિટ લાગે છે. |