[{"data":1,"prerenderedAt":3749},["ShallowReactive",2],{"navigation_docs_en":3,"-en-media-upload":179,"-en-media-upload-surround":3744},[4,36,57,87,107,127,143,154,162],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":35},"Getting Started","i-lucide-rocket","/en/getting-started","en/1.getting-started",[10,15,20,25,30],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","/en/getting-started/introduction","en/1.getting-started/1.introduction","i-lucide-info",{"title":16,"path":17,"stem":18,"icon":19},"Agency Setup","/en/getting-started/agency-setup","en/1.getting-started/2.agency-setup","i-lucide-building-2",{"title":21,"path":22,"stem":23,"icon":24},"Authentication","/en/getting-started/authentication","en/1.getting-started/3.authentication","i-lucide-key",{"title":26,"path":27,"stem":28,"icon":29},"Quick Start","/en/getting-started/quick-start","en/1.getting-started/4.quick-start","i-lucide-zap",{"title":31,"path":32,"stem":33,"icon":34},"Postman Collection","/en/getting-started/postman","en/1.getting-started/5.postman","i-lucide-download",false,{"title":37,"icon":38,"path":39,"stem":40,"children":41,"page":35},"Concepts","i-lucide-lightbulb","/en/concepts","en/2.concepts",[42,47,52],{"title":43,"path":44,"stem":45,"icon":46},"External ID","/en/concepts/external-ids","en/2.concepts/1.external-ids","i-lucide-link",{"title":48,"path":49,"stem":50,"icon":51},"Upsert Pattern","/en/concepts/upsert-pattern","en/2.concepts/2.upsert-pattern","i-lucide-refresh-cw",{"title":53,"path":54,"stem":55,"icon":56},"Async Jobs","/en/concepts/async-jobs","en/2.concepts/3.async-jobs","i-lucide-clock",{"title":58,"icon":59,"path":60,"stem":61,"children":62,"page":35},"Listings","i-lucide-home","/en/listings","en/3.listings",[63,68,73,78,83],{"title":64,"path":65,"stem":66,"icon":67},"Listings Overview","/en/listings/overview","en/3.listings/1.overview","i-lucide-layout-list",{"title":69,"path":70,"stem":71,"icon":72},"Create and Update","/en/listings/create-update","en/3.listings/2.create-update","i-lucide-plus",{"title":74,"path":75,"stem":76,"icon":77},"Retrieve Listings","/en/listings/retrieve","en/3.listings/3.retrieve","i-lucide-search",{"title":79,"path":80,"stem":81,"icon":82},"Bulk Operations","/en/listings/bulk","en/3.listings/4.bulk","i-lucide-layers",{"title":84,"path":85,"stem":86,"icon":46},"External ID Linking","/en/listings/external-id-linking","en/3.listings/5.external-id-linking",{"title":88,"icon":89,"path":90,"stem":91,"children":92,"page":35},"Users","i-lucide-users","/en/users","en/4.users",[93,98,103],{"title":94,"path":95,"stem":96,"icon":97},"Users Overview","/en/users/overview","en/4.users/1.overview","i-lucide-user",{"title":99,"path":100,"stem":101,"icon":102},"Update Profile","/en/users/update","en/4.users/2.update","i-lucide-user-pen",{"title":104,"path":105,"stem":106,"icon":77},"Retrieve Users","/en/users/retrieve","en/4.users/3.retrieve",{"title":108,"icon":109,"path":110,"stem":111,"children":112,"page":35},"Media","i-lucide-image","/en/media","en/5.media",[113,117,122],{"title":114,"path":115,"stem":116,"icon":109},"Media Overview","/en/media/overview","en/5.media/1.overview",{"title":118,"path":119,"stem":120,"icon":121},"Upload Files","/en/media/upload","en/5.media/2.upload","i-lucide-upload",{"title":123,"path":124,"stem":125,"icon":126},"Manage Files","/en/media/manage","en/5.media/3.manage","i-lucide-folder",{"title":128,"icon":129,"path":130,"stem":131,"children":132,"page":35},"Reference","i-lucide-book-open","/en/reference","en/6.reference",[133,138],{"title":134,"path":135,"stem":136,"icon":137},"Field Schema","/en/reference/schema","en/6.reference/1.schema","i-lucide-file-json",{"title":139,"path":140,"stem":141,"icon":142},"Currencies and Rates","/en/reference/currencies","en/6.reference/2.currencies","i-lucide-wallet",{"title":144,"icon":145,"path":146,"stem":147,"children":148,"page":35},"Errors","i-lucide-alert-triangle","/en/errors","en/7.errors",[149],{"title":150,"path":151,"stem":152,"icon":153},"Error Handling","/en/errors/error-handling","en/7.errors/1.error-handling","i-lucide-shield-alert",{"title":155,"path":156,"stem":157,"children":158,"icon":161},"Changelog","/en/changelog","en/8.changelog/1.index",[159],{"title":155,"path":156,"stem":157,"icon":160},"i-lucide-scroll-text","i-lucide-history",{"title":163,"path":164,"stem":165,"children":166,"page":35},"Guides","/en/guides","en/9.guides",[167,171,175],{"title":168,"path":169,"stem":170,"icon":129},"Integration Guides","/en/guides/overview","en/9.guides/1.overview",{"title":172,"path":173,"stem":174,"icon":121},"Initial Sync","/en/guides/first-sync","en/9.guides/2.first-sync",{"title":176,"path":177,"stem":178,"icon":51},"Continuous Sync","/en/guides/continuous-sync","en/9.guides/3.continuous-sync",{"id":180,"title":118,"body":181,"description":3737,"extension":3738,"links":3739,"meta":3740,"navigation":3741,"path":119,"seo":3742,"stem":120,"__hash__":3743},"docs_en/en/5.media/2.upload.md",{"type":182,"value":183,"toc":3715},"minimark",[184,188,211,214,219,227,525,531,533,536,539,544,968,1048,1057,1061,1068,1558,1765,1767,1770,1773,1777,2172,2289,2297,2301,2304,2347,2351,2357,2820,2822,2826,2829,2833,2895,2899,2968,2972,3073,3075,3079,3085,3153,3157,3327,3330,3336,3637,3639,3643,3711],[185,186,187],"p",{},"Three ways to upload photos, from simple to advanced:",[189,190,191,199,205],"ol",{},[192,193,194,198],"li",{},[195,196,197],"strong",{},"URL in listing"," — pass links directly when creating a listing",[192,200,201,204],{},[195,202,203],{},"Import by URL"," — upload photos separately, then link to listing",[192,206,207,210],{},[195,208,209],{},"Signed URL"," — for uploading files from client",[212,213],"hr",{},[215,216,218],"h2",{"id":217},"url-in-listing-recommended","URL in Listing (Recommended)",[185,220,221,222,226],{},"The simplest way — pass photo URLs directly when creating or updating a listing. Adding ",[223,224,225],"code",{},"externalFileId"," is recommended for tracking:",[228,229,234],"pre",{"className":230,"code":231,"language":232,"meta":233,"style":233},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"externalId\": \"apt-001\",\n  \"announcementStatus\": \"active\",\n  \"announcementType\": \"rent\",\n  \"propertyType\": \"residential\",\n  \"propertySecondaryType\": \"apartment\",\n  \"announcementValue\": 500,\n  \"files\": [\n    { \"url\": \"https://placehold.co/1920x1080/jpg?text=Living+Room\", \"externalFileId\": \"apt-001-photo-1\" },\n    { \"url\": \"https://placehold.co/1920x1080/jpg?text=Bedroom\", \"externalFileId\": \"apt-001-photo-2\" },\n    { \"url\": \"https://placehold.co/1920x1080/jpg?text=Kitchen\", \"externalFileId\": \"apt-001-photo-3\" }\n  ]\n}\n","json","",[223,235,236,245,273,294,315,336,357,375,390,434,473,513,519],{"__ignoreMap":233},[237,238,241],"span",{"class":239,"line":240},"line",1,[237,242,244],{"class":243},"sMK4o","{\n",[237,246,248,251,255,258,261,264,268,270],{"class":239,"line":247},2,[237,249,250],{"class":243},"  \"",[237,252,254],{"class":253},"spNyl","externalId",[237,256,257],{"class":243},"\"",[237,259,260],{"class":243},":",[237,262,263],{"class":243}," \"",[237,265,267],{"class":266},"sfazB","apt-001",[237,269,257],{"class":243},[237,271,272],{"class":243},",\n",[237,274,276,278,281,283,285,287,290,292],{"class":239,"line":275},3,[237,277,250],{"class":243},[237,279,280],{"class":253},"announcementStatus",[237,282,257],{"class":243},[237,284,260],{"class":243},[237,286,263],{"class":243},[237,288,289],{"class":266},"active",[237,291,257],{"class":243},[237,293,272],{"class":243},[237,295,297,299,302,304,306,308,311,313],{"class":239,"line":296},4,[237,298,250],{"class":243},[237,300,301],{"class":253},"announcementType",[237,303,257],{"class":243},[237,305,260],{"class":243},[237,307,263],{"class":243},[237,309,310],{"class":266},"rent",[237,312,257],{"class":243},[237,314,272],{"class":243},[237,316,318,320,323,325,327,329,332,334],{"class":239,"line":317},5,[237,319,250],{"class":243},[237,321,322],{"class":253},"propertyType",[237,324,257],{"class":243},[237,326,260],{"class":243},[237,328,263],{"class":243},[237,330,331],{"class":266},"residential",[237,333,257],{"class":243},[237,335,272],{"class":243},[237,337,339,341,344,346,348,350,353,355],{"class":239,"line":338},6,[237,340,250],{"class":243},[237,342,343],{"class":253},"propertySecondaryType",[237,345,257],{"class":243},[237,347,260],{"class":243},[237,349,263],{"class":243},[237,351,352],{"class":266},"apartment",[237,354,257],{"class":243},[237,356,272],{"class":243},[237,358,360,362,365,367,369,373],{"class":239,"line":359},7,[237,361,250],{"class":243},[237,363,364],{"class":253},"announcementValue",[237,366,257],{"class":243},[237,368,260],{"class":243},[237,370,372],{"class":371},"sbssI"," 500",[237,374,272],{"class":243},[237,376,378,380,383,385,387],{"class":239,"line":377},8,[237,379,250],{"class":243},[237,381,382],{"class":253},"files",[237,384,257],{"class":243},[237,386,260],{"class":243},[237,388,389],{"class":243}," [\n",[237,391,393,396,398,402,404,406,408,411,413,416,418,420,422,424,426,429,431],{"class":239,"line":392},9,[237,394,395],{"class":243},"    {",[237,397,263],{"class":243},[237,399,401],{"class":400},"sBMFI","url",[237,403,257],{"class":243},[237,405,260],{"class":243},[237,407,263],{"class":243},[237,409,410],{"class":266},"https://placehold.co/1920x1080/jpg?text=Living+Room",[237,412,257],{"class":243},[237,414,415],{"class":243},",",[237,417,263],{"class":243},[237,419,225],{"class":400},[237,421,257],{"class":243},[237,423,260],{"class":243},[237,425,263],{"class":243},[237,427,428],{"class":266},"apt-001-photo-1",[237,430,257],{"class":243},[237,432,433],{"class":243}," },\n",[237,435,437,439,441,443,445,447,449,452,454,456,458,460,462,464,466,469,471],{"class":239,"line":436},10,[237,438,395],{"class":243},[237,440,263],{"class":243},[237,442,401],{"class":400},[237,444,257],{"class":243},[237,446,260],{"class":243},[237,448,263],{"class":243},[237,450,451],{"class":266},"https://placehold.co/1920x1080/jpg?text=Bedroom",[237,453,257],{"class":243},[237,455,415],{"class":243},[237,457,263],{"class":243},[237,459,225],{"class":400},[237,461,257],{"class":243},[237,463,260],{"class":243},[237,465,263],{"class":243},[237,467,468],{"class":266},"apt-001-photo-2",[237,470,257],{"class":243},[237,472,433],{"class":243},[237,474,476,478,480,482,484,486,488,491,493,495,497,499,501,503,505,508,510],{"class":239,"line":475},11,[237,477,395],{"class":243},[237,479,263],{"class":243},[237,481,401],{"class":400},[237,483,257],{"class":243},[237,485,260],{"class":243},[237,487,263],{"class":243},[237,489,490],{"class":266},"https://placehold.co/1920x1080/jpg?text=Kitchen",[237,492,257],{"class":243},[237,494,415],{"class":243},[237,496,263],{"class":243},[237,498,225],{"class":400},[237,500,257],{"class":243},[237,502,260],{"class":243},[237,504,263],{"class":243},[237,506,507],{"class":266},"apt-001-photo-3",[237,509,257],{"class":243},[237,511,512],{"class":243}," }\n",[237,514,516],{"class":239,"line":515},12,[237,517,518],{"class":243},"  ]\n",[237,520,522],{"class":239,"line":521},13,[237,523,524],{"class":243},"}\n",[185,526,527,528,530],{},"The system automatically downloads, optimizes, and links the photos to the listing. On repeat requests with the same ",[223,529,225],{},", the system uses the already uploaded file, avoiding duplication.",[212,532],{},[215,534,203],{"id":535},"import-by-url",[185,537,538],{},"Use this method if you want to upload photos in advance or manage them separately from listings.",[540,541,543],"h3",{"id":542},"upload-single-photo","Upload Single Photo",[545,546,547,810,886],"code-group",{},[228,548,553],{"className":549,"code":550,"filename":551,"language":552,"meta":233,"style":233},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const response = await fetch('https://crm.rentix.md/api/v1/media/upload-from-url', {\n  method: 'POST',\n  headers: {\n    'Authorization': 'ApiKey YOUR_API_KEY',\n    'Content-Type': 'application/json'\n  },\n  body: JSON.stringify({\n    url: 'https://placehold.co/1920x1080/jpg?text=Living+Room',\n    externalId: 'apt-001-photo-1'\n  })\n});\n\nconst result = await response.json();\nconsole.log(`Media ID: ${result.mediaId}, Status: ${result.status}`);\n","Node.js","js",[223,554,555,591,609,618,639,658,663,683,698,711,719,730,736,759],{"__ignoreMap":233},[237,556,557,560,564,567,571,575,578,581,584,586,588],{"class":239,"line":240},[237,558,559],{"class":253},"const",[237,561,563],{"class":562},"sTEyZ"," response ",[237,565,566],{"class":243},"=",[237,568,570],{"class":569},"s7zQu"," await",[237,572,574],{"class":573},"s2Zo4"," fetch",[237,576,577],{"class":562},"(",[237,579,580],{"class":243},"'",[237,582,583],{"class":266},"https://crm.rentix.md/api/v1/media/upload-from-url",[237,585,580],{"class":243},[237,587,415],{"class":243},[237,589,590],{"class":243}," {\n",[237,592,593,597,599,602,605,607],{"class":239,"line":247},[237,594,596],{"class":595},"swJcz","  method",[237,598,260],{"class":243},[237,600,601],{"class":243}," '",[237,603,604],{"class":266},"POST",[237,606,580],{"class":243},[237,608,272],{"class":243},[237,610,611,614,616],{"class":239,"line":275},[237,612,613],{"class":595},"  headers",[237,615,260],{"class":243},[237,617,590],{"class":243},[237,619,620,623,626,628,630,632,635,637],{"class":239,"line":296},[237,621,622],{"class":243},"    '",[237,624,625],{"class":595},"Authorization",[237,627,580],{"class":243},[237,629,260],{"class":243},[237,631,601],{"class":243},[237,633,634],{"class":266},"ApiKey YOUR_API_KEY",[237,636,580],{"class":243},[237,638,272],{"class":243},[237,640,641,643,646,648,650,652,655],{"class":239,"line":317},[237,642,622],{"class":243},[237,644,645],{"class":595},"Content-Type",[237,647,580],{"class":243},[237,649,260],{"class":243},[237,651,601],{"class":243},[237,653,654],{"class":266},"application/json",[237,656,657],{"class":243},"'\n",[237,659,660],{"class":239,"line":338},[237,661,662],{"class":243},"  },\n",[237,664,665,668,670,673,676,679,681],{"class":239,"line":359},[237,666,667],{"class":595},"  body",[237,669,260],{"class":243},[237,671,672],{"class":562}," JSON",[237,674,675],{"class":243},".",[237,677,678],{"class":573},"stringify",[237,680,577],{"class":562},[237,682,244],{"class":243},[237,684,685,688,690,692,694,696],{"class":239,"line":377},[237,686,687],{"class":595},"    url",[237,689,260],{"class":243},[237,691,601],{"class":243},[237,693,410],{"class":266},[237,695,580],{"class":243},[237,697,272],{"class":243},[237,699,700,703,705,707,709],{"class":239,"line":392},[237,701,702],{"class":595},"    externalId",[237,704,260],{"class":243},[237,706,601],{"class":243},[237,708,428],{"class":266},[237,710,657],{"class":243},[237,712,713,716],{"class":239,"line":436},[237,714,715],{"class":243},"  }",[237,717,718],{"class":562},")\n",[237,720,721,724,727],{"class":239,"line":475},[237,722,723],{"class":243},"}",[237,725,726],{"class":562},")",[237,728,729],{"class":243},";\n",[237,731,732],{"class":239,"line":515},[237,733,735],{"emptyLinePlaceholder":734},true,"\n",[237,737,738,740,743,745,747,750,752,754,757],{"class":239,"line":521},[237,739,559],{"class":253},[237,741,742],{"class":562}," result ",[237,744,566],{"class":243},[237,746,570],{"class":569},[237,748,749],{"class":562}," response",[237,751,675],{"class":243},[237,753,232],{"class":573},[237,755,756],{"class":562},"()",[237,758,729],{"class":243},[237,760,762,765,767,770,772,775,778,781,784,786,789,791,794,796,798,800,803,806,808],{"class":239,"line":761},14,[237,763,764],{"class":562},"console",[237,766,675],{"class":243},[237,768,769],{"class":573},"log",[237,771,577],{"class":562},[237,773,774],{"class":243},"`",[237,776,777],{"class":266},"Media ID: ",[237,779,780],{"class":243},"${",[237,782,783],{"class":562},"result",[237,785,675],{"class":243},[237,787,788],{"class":562},"mediaId",[237,790,723],{"class":243},[237,792,793],{"class":266},", Status: ",[237,795,780],{"class":243},[237,797,783],{"class":562},[237,799,675],{"class":243},[237,801,802],{"class":562},"status",[237,804,805],{"class":243},"}`",[237,807,726],{"class":562},[237,809,729],{"class":243},[228,811,816],{"className":812,"code":813,"filename":814,"language":815,"meta":233,"style":233},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -X POST https://crm.rentix.md/api/v1/media/upload-from-url \\\n  -H \"Authorization: ApiKey YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"url\": \"https://placehold.co/1920x1080/jpg?text=Living+Room\",\n    \"externalId\": \"apt-001-photo-1\"\n  }'\n","curl","bash",[223,817,818,834,848,861,870,875,880],{"__ignoreMap":233},[237,819,820,822,825,828,831],{"class":239,"line":240},[237,821,814],{"class":400},[237,823,824],{"class":266}," -X",[237,826,827],{"class":266}," POST",[237,829,830],{"class":266}," https://crm.rentix.md/api/v1/media/upload-from-url",[237,832,833],{"class":562}," \\\n",[237,835,836,839,841,844,846],{"class":239,"line":247},[237,837,838],{"class":266},"  -H",[237,840,263],{"class":243},[237,842,843],{"class":266},"Authorization: ApiKey YOUR_API_KEY",[237,845,257],{"class":243},[237,847,833],{"class":562},[237,849,850,852,854,857,859],{"class":239,"line":275},[237,851,838],{"class":266},[237,853,263],{"class":243},[237,855,856],{"class":266},"Content-Type: application/json",[237,858,257],{"class":243},[237,860,833],{"class":562},[237,862,863,866,868],{"class":239,"line":296},[237,864,865],{"class":266},"  -d",[237,867,601],{"class":243},[237,869,244],{"class":266},[237,871,872],{"class":239,"line":317},[237,873,874],{"class":266},"    \"url\": \"https://placehold.co/1920x1080/jpg?text=Living+Room\",\n",[237,876,877],{"class":239,"line":338},[237,878,879],{"class":266},"    \"externalId\": \"apt-001-photo-1\"\n",[237,881,882,884],{"class":239,"line":359},[237,883,715],{"class":266},[237,885,657],{"class":243},[228,887,891],{"className":888,"code":889,"filename":890,"language":890,"meta":233,"style":233},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","$data = [\n  'url' => 'https://placehold.co/1920x1080/jpg?text=Living+Room',\n  'externalId' => 'apt-001-photo-1'\n];\n\n$ch = curl_init('https://crm.rentix.md/api/v1/media/upload-from-url');\ncurl_setopt($ch, CURLOPT_POST, true);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n  'Authorization: ApiKey YOUR_API_KEY',\n  'Content-Type: application/json'\n]);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n$response = curl_exec($ch);\n$result = json_decode($response, true);\n","php",[223,892,893,898,903,908,913,917,922,927,932,937,942,947,952,957,962],{"__ignoreMap":233},[237,894,895],{"class":239,"line":240},[237,896,897],{},"$data = [\n",[237,899,900],{"class":239,"line":247},[237,901,902],{},"  'url' => 'https://placehold.co/1920x1080/jpg?text=Living+Room',\n",[237,904,905],{"class":239,"line":275},[237,906,907],{},"  'externalId' => 'apt-001-photo-1'\n",[237,909,910],{"class":239,"line":296},[237,911,912],{},"];\n",[237,914,915],{"class":239,"line":317},[237,916,735],{"emptyLinePlaceholder":734},[237,918,919],{"class":239,"line":338},[237,920,921],{},"$ch = curl_init('https://crm.rentix.md/api/v1/media/upload-from-url');\n",[237,923,924],{"class":239,"line":359},[237,925,926],{},"curl_setopt($ch, CURLOPT_POST, true);\n",[237,928,929],{"class":239,"line":377},[237,930,931],{},"curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));\n",[237,933,934],{"class":239,"line":392},[237,935,936],{},"curl_setopt($ch, CURLOPT_HTTPHEADER, [\n",[237,938,939],{"class":239,"line":436},[237,940,941],{},"  'Authorization: ApiKey YOUR_API_KEY',\n",[237,943,944],{"class":239,"line":475},[237,945,946],{},"  'Content-Type: application/json'\n",[237,948,949],{"class":239,"line":515},[237,950,951],{},"]);\n",[237,953,954],{"class":239,"line":521},[237,955,956],{},"curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n",[237,958,959],{"class":239,"line":761},[237,960,961],{},"$response = curl_exec($ch);\n",[237,963,965],{"class":239,"line":964},15,[237,966,967],{},"$result = json_decode($response, true);\n",[228,969,972],{"className":230,"code":970,"filename":971,"language":232,"meta":233,"style":233},"{\n  \"mediaId\": 123,\n  \"status\": \"pending\",\n  \"externalId\": \"apt-001-photo-1\",\n  \"jobId\": 456\n}\n","Response",[223,973,974,978,993,1012,1030,1044],{"__ignoreMap":233},[237,975,976],{"class":239,"line":240},[237,977,244],{"class":243},[237,979,980,982,984,986,988,991],{"class":239,"line":247},[237,981,250],{"class":243},[237,983,788],{"class":253},[237,985,257],{"class":243},[237,987,260],{"class":243},[237,989,990],{"class":371}," 123",[237,992,272],{"class":243},[237,994,995,997,999,1001,1003,1005,1008,1010],{"class":239,"line":275},[237,996,250],{"class":243},[237,998,802],{"class":253},[237,1000,257],{"class":243},[237,1002,260],{"class":243},[237,1004,263],{"class":243},[237,1006,1007],{"class":266},"pending",[237,1009,257],{"class":243},[237,1011,272],{"class":243},[237,1013,1014,1016,1018,1020,1022,1024,1026,1028],{"class":239,"line":296},[237,1015,250],{"class":243},[237,1017,254],{"class":253},[237,1019,257],{"class":243},[237,1021,260],{"class":243},[237,1023,263],{"class":243},[237,1025,428],{"class":266},[237,1027,257],{"class":243},[237,1029,272],{"class":243},[237,1031,1032,1034,1037,1039,1041],{"class":239,"line":317},[237,1033,250],{"class":243},[237,1035,1036],{"class":253},"jobId",[237,1038,257],{"class":243},[237,1040,260],{"class":243},[237,1042,1043],{"class":371}," 456\n",[237,1045,1046],{"class":239,"line":338},[237,1047,524],{"class":243},[185,1049,1050,1051,1053,1054,1056],{},"Status ",[223,1052,1007],{}," means the file is queued for download and optimization. The ",[223,1055,1036],{}," field lets you track processing status.",[540,1058,1060],{"id":1059},"bulk-upload","Bulk Upload",[185,1062,1063,1064,1067],{},"For uploading multiple files, use the bulk endpoint with ",[223,1065,1066],{},"upload-from-url"," operation:",[545,1069,1070,1410,1485],{},[228,1071,1073],{"className":549,"code":1072,"filename":551,"language":552,"meta":233,"style":233},"const response = await fetch('https://crm.rentix.md/api/v1/media/bulk', {\n  method: 'POST',\n  headers: {\n    'Authorization': 'ApiKey YOUR_API_KEY',\n    'Content-Type': 'application/json'\n  },\n  body: JSON.stringify({\n    operations: [\n      { op: 'upload-from-url', url: 'https://placehold.co/1920x1080/jpg?text=Photo+1', externalId: 'apt-001-photo-1' },\n      { op: 'upload-from-url', url: 'https://placehold.co/1920x1080/jpg?text=Photo+2', externalId: 'apt-001-photo-2' },\n      { op: 'upload-from-url', url: 'https://placehold.co/1920x1080/jpg?text=Photo+3', externalId: 'apt-001-photo-3' }\n    ]\n  })\n});\n\nconst result = await response.json();\nconsole.log(`Uploaded: ${result.summary.succeeded} of ${result.summary.total}`);\n",[223,1074,1075,1100,1114,1122,1140,1156,1160,1176,1185,1230,1271,1312,1317,1323,1331,1335,1356],{"__ignoreMap":233},[237,1076,1077,1079,1081,1083,1085,1087,1089,1091,1094,1096,1098],{"class":239,"line":240},[237,1078,559],{"class":253},[237,1080,563],{"class":562},[237,1082,566],{"class":243},[237,1084,570],{"class":569},[237,1086,574],{"class":573},[237,1088,577],{"class":562},[237,1090,580],{"class":243},[237,1092,1093],{"class":266},"https://crm.rentix.md/api/v1/media/bulk",[237,1095,580],{"class":243},[237,1097,415],{"class":243},[237,1099,590],{"class":243},[237,1101,1102,1104,1106,1108,1110,1112],{"class":239,"line":247},[237,1103,596],{"class":595},[237,1105,260],{"class":243},[237,1107,601],{"class":243},[237,1109,604],{"class":266},[237,1111,580],{"class":243},[237,1113,272],{"class":243},[237,1115,1116,1118,1120],{"class":239,"line":275},[237,1117,613],{"class":595},[237,1119,260],{"class":243},[237,1121,590],{"class":243},[237,1123,1124,1126,1128,1130,1132,1134,1136,1138],{"class":239,"line":296},[237,1125,622],{"class":243},[237,1127,625],{"class":595},[237,1129,580],{"class":243},[237,1131,260],{"class":243},[237,1133,601],{"class":243},[237,1135,634],{"class":266},[237,1137,580],{"class":243},[237,1139,272],{"class":243},[237,1141,1142,1144,1146,1148,1150,1152,1154],{"class":239,"line":317},[237,1143,622],{"class":243},[237,1145,645],{"class":595},[237,1147,580],{"class":243},[237,1149,260],{"class":243},[237,1151,601],{"class":243},[237,1153,654],{"class":266},[237,1155,657],{"class":243},[237,1157,1158],{"class":239,"line":338},[237,1159,662],{"class":243},[237,1161,1162,1164,1166,1168,1170,1172,1174],{"class":239,"line":359},[237,1163,667],{"class":595},[237,1165,260],{"class":243},[237,1167,672],{"class":562},[237,1169,675],{"class":243},[237,1171,678],{"class":573},[237,1173,577],{"class":562},[237,1175,244],{"class":243},[237,1177,1178,1181,1183],{"class":239,"line":377},[237,1179,1180],{"class":595},"    operations",[237,1182,260],{"class":243},[237,1184,389],{"class":562},[237,1186,1187,1190,1193,1195,1197,1199,1201,1203,1206,1208,1210,1213,1215,1217,1220,1222,1224,1226,1228],{"class":239,"line":392},[237,1188,1189],{"class":243},"      {",[237,1191,1192],{"class":595}," op",[237,1194,260],{"class":243},[237,1196,601],{"class":243},[237,1198,1066],{"class":266},[237,1200,580],{"class":243},[237,1202,415],{"class":243},[237,1204,1205],{"class":595}," url",[237,1207,260],{"class":243},[237,1209,601],{"class":243},[237,1211,1212],{"class":266},"https://placehold.co/1920x1080/jpg?text=Photo+1",[237,1214,580],{"class":243},[237,1216,415],{"class":243},[237,1218,1219],{"class":595}," externalId",[237,1221,260],{"class":243},[237,1223,601],{"class":243},[237,1225,428],{"class":266},[237,1227,580],{"class":243},[237,1229,433],{"class":243},[237,1231,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1255,1257,1259,1261,1263,1265,1267,1269],{"class":239,"line":436},[237,1233,1189],{"class":243},[237,1235,1192],{"class":595},[237,1237,260],{"class":243},[237,1239,601],{"class":243},[237,1241,1066],{"class":266},[237,1243,580],{"class":243},[237,1245,415],{"class":243},[237,1247,1205],{"class":595},[237,1249,260],{"class":243},[237,1251,601],{"class":243},[237,1253,1254],{"class":266},"https://placehold.co/1920x1080/jpg?text=Photo+2",[237,1256,580],{"class":243},[237,1258,415],{"class":243},[237,1260,1219],{"class":595},[237,1262,260],{"class":243},[237,1264,601],{"class":243},[237,1266,468],{"class":266},[237,1268,580],{"class":243},[237,1270,433],{"class":243},[237,1272,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1296,1298,1300,1302,1304,1306,1308,1310],{"class":239,"line":475},[237,1274,1189],{"class":243},[237,1276,1192],{"class":595},[237,1278,260],{"class":243},[237,1280,601],{"class":243},[237,1282,1066],{"class":266},[237,1284,580],{"class":243},[237,1286,415],{"class":243},[237,1288,1205],{"class":595},[237,1290,260],{"class":243},[237,1292,601],{"class":243},[237,1294,1295],{"class":266},"https://placehold.co/1920x1080/jpg?text=Photo+3",[237,1297,580],{"class":243},[237,1299,415],{"class":243},[237,1301,1219],{"class":595},[237,1303,260],{"class":243},[237,1305,601],{"class":243},[237,1307,507],{"class":266},[237,1309,580],{"class":243},[237,1311,512],{"class":243},[237,1313,1314],{"class":239,"line":515},[237,1315,1316],{"class":562},"    ]\n",[237,1318,1319,1321],{"class":239,"line":521},[237,1320,715],{"class":243},[237,1322,718],{"class":562},[237,1324,1325,1327,1329],{"class":239,"line":761},[237,1326,723],{"class":243},[237,1328,726],{"class":562},[237,1330,729],{"class":243},[237,1332,1333],{"class":239,"line":964},[237,1334,735],{"emptyLinePlaceholder":734},[237,1336,1338,1340,1342,1344,1346,1348,1350,1352,1354],{"class":239,"line":1337},16,[237,1339,559],{"class":253},[237,1341,742],{"class":562},[237,1343,566],{"class":243},[237,1345,570],{"class":569},[237,1347,749],{"class":562},[237,1349,675],{"class":243},[237,1351,232],{"class":573},[237,1353,756],{"class":562},[237,1355,729],{"class":243},[237,1357,1359,1361,1363,1365,1367,1369,1372,1374,1376,1378,1381,1383,1386,1388,1391,1393,1395,1397,1399,1401,1404,1406,1408],{"class":239,"line":1358},17,[237,1360,764],{"class":562},[237,1362,675],{"class":243},[237,1364,769],{"class":573},[237,1366,577],{"class":562},[237,1368,774],{"class":243},[237,1370,1371],{"class":266},"Uploaded: ",[237,1373,780],{"class":243},[237,1375,783],{"class":562},[237,1377,675],{"class":243},[237,1379,1380],{"class":562},"summary",[237,1382,675],{"class":243},[237,1384,1385],{"class":562},"succeeded",[237,1387,723],{"class":243},[237,1389,1390],{"class":266}," of ",[237,1392,780],{"class":243},[237,1394,783],{"class":562},[237,1396,675],{"class":243},[237,1398,1380],{"class":562},[237,1400,675],{"class":243},[237,1402,1403],{"class":562},"total",[237,1405,805],{"class":243},[237,1407,726],{"class":562},[237,1409,729],{"class":243},[228,1411,1413],{"className":812,"code":1412,"filename":814,"language":815,"meta":233,"style":233},"curl -X POST https://crm.rentix.md/api/v1/media/bulk \\\n  -H \"Authorization: ApiKey YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"operations\": [\n      { \"op\": \"upload-from-url\", \"url\": \"https://placehold.co/1920x1080/jpg?text=Photo+1\", \"externalId\": \"apt-001-photo-1\" },\n      { \"op\": \"upload-from-url\", \"url\": \"https://placehold.co/1920x1080/jpg?text=Photo+2\", \"externalId\": \"apt-001-photo-2\" }\n    ]\n  }'\n",[223,1414,1415,1428,1440,1452,1460,1465,1470,1475,1479],{"__ignoreMap":233},[237,1416,1417,1419,1421,1423,1426],{"class":239,"line":240},[237,1418,814],{"class":400},[237,1420,824],{"class":266},[237,1422,827],{"class":266},[237,1424,1425],{"class":266}," https://crm.rentix.md/api/v1/media/bulk",[237,1427,833],{"class":562},[237,1429,1430,1432,1434,1436,1438],{"class":239,"line":247},[237,1431,838],{"class":266},[237,1433,263],{"class":243},[237,1435,843],{"class":266},[237,1437,257],{"class":243},[237,1439,833],{"class":562},[237,1441,1442,1444,1446,1448,1450],{"class":239,"line":275},[237,1443,838],{"class":266},[237,1445,263],{"class":243},[237,1447,856],{"class":266},[237,1449,257],{"class":243},[237,1451,833],{"class":562},[237,1453,1454,1456,1458],{"class":239,"line":296},[237,1455,865],{"class":266},[237,1457,601],{"class":243},[237,1459,244],{"class":266},[237,1461,1462],{"class":239,"line":317},[237,1463,1464],{"class":266},"    \"operations\": [\n",[237,1466,1467],{"class":239,"line":338},[237,1468,1469],{"class":266},"      { \"op\": \"upload-from-url\", \"url\": \"https://placehold.co/1920x1080/jpg?text=Photo+1\", \"externalId\": \"apt-001-photo-1\" },\n",[237,1471,1472],{"class":239,"line":359},[237,1473,1474],{"class":266},"      { \"op\": \"upload-from-url\", \"url\": \"https://placehold.co/1920x1080/jpg?text=Photo+2\", \"externalId\": \"apt-001-photo-2\" }\n",[237,1476,1477],{"class":239,"line":377},[237,1478,1316],{"class":266},[237,1480,1481,1483],{"class":239,"line":392},[237,1482,715],{"class":266},[237,1484,657],{"class":243},[228,1486,1488],{"className":888,"code":1487,"filename":890,"language":890,"meta":233,"style":233},"$data = [\n  'operations' => [\n    ['op' => 'upload-from-url', 'url' => 'https://placehold.co/1920x1080/jpg?text=Photo+1', 'externalId' => 'apt-001-photo-1'],\n    ['op' => 'upload-from-url', 'url' => 'https://placehold.co/1920x1080/jpg?text=Photo+2', 'externalId' => 'apt-001-photo-2']\n  ]\n];\n\n$ch = curl_init('https://crm.rentix.md/api/v1/media/bulk');\ncurl_setopt($ch, CURLOPT_POST, true);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n  'Authorization: ApiKey YOUR_API_KEY',\n  'Content-Type: application/json'\n]);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n$response = curl_exec($ch);\n",[223,1489,1490,1494,1499,1504,1509,1513,1517,1521,1526,1530,1534,1538,1542,1546,1550,1554],{"__ignoreMap":233},[237,1491,1492],{"class":239,"line":240},[237,1493,897],{},[237,1495,1496],{"class":239,"line":247},[237,1497,1498],{},"  'operations' => [\n",[237,1500,1501],{"class":239,"line":275},[237,1502,1503],{},"    ['op' => 'upload-from-url', 'url' => 'https://placehold.co/1920x1080/jpg?text=Photo+1', 'externalId' => 'apt-001-photo-1'],\n",[237,1505,1506],{"class":239,"line":296},[237,1507,1508],{},"    ['op' => 'upload-from-url', 'url' => 'https://placehold.co/1920x1080/jpg?text=Photo+2', 'externalId' => 'apt-001-photo-2']\n",[237,1510,1511],{"class":239,"line":317},[237,1512,518],{},[237,1514,1515],{"class":239,"line":338},[237,1516,912],{},[237,1518,1519],{"class":239,"line":359},[237,1520,735],{"emptyLinePlaceholder":734},[237,1522,1523],{"class":239,"line":377},[237,1524,1525],{},"$ch = curl_init('https://crm.rentix.md/api/v1/media/bulk');\n",[237,1527,1528],{"class":239,"line":392},[237,1529,926],{},[237,1531,1532],{"class":239,"line":436},[237,1533,931],{},[237,1535,1536],{"class":239,"line":475},[237,1537,936],{},[237,1539,1540],{"class":239,"line":515},[237,1541,941],{},[237,1543,1544],{"class":239,"line":521},[237,1545,946],{},[237,1547,1548],{"class":239,"line":761},[237,1549,951],{},[237,1551,1552],{"class":239,"line":964},[237,1553,956],{},[237,1555,1556],{"class":239,"line":1337},[237,1557,961],{},[228,1559,1561],{"className":230,"code":1560,"filename":971,"language":232,"meta":233,"style":233},"{\n  \"results\": [\n    { \"op\": \"upload-from-url\", \"externalId\": \"apt-001-photo-1\", \"mediaId\": 123, \"success\": true },\n    { \"op\": \"upload-from-url\", \"externalId\": \"apt-001-photo-2\", \"mediaId\": 124, \"success\": true }\n  ],\n  \"summary\": { \"total\": 2, \"succeeded\": 2, \"failed\": 0 }\n}\n",[223,1562,1563,1567,1580,1643,1704,1709,1761],{"__ignoreMap":233},[237,1564,1565],{"class":239,"line":240},[237,1566,244],{"class":243},[237,1568,1569,1571,1574,1576,1578],{"class":239,"line":247},[237,1570,250],{"class":243},[237,1572,1573],{"class":253},"results",[237,1575,257],{"class":243},[237,1577,260],{"class":243},[237,1579,389],{"class":243},[237,1581,1582,1584,1586,1589,1591,1593,1595,1597,1599,1601,1603,1605,1607,1609,1611,1613,1615,1617,1619,1621,1623,1625,1627,1629,1631,1634,1636,1638,1641],{"class":239,"line":275},[237,1583,395],{"class":243},[237,1585,263],{"class":243},[237,1587,1588],{"class":400},"op",[237,1590,257],{"class":243},[237,1592,260],{"class":243},[237,1594,263],{"class":243},[237,1596,1066],{"class":266},[237,1598,257],{"class":243},[237,1600,415],{"class":243},[237,1602,263],{"class":243},[237,1604,254],{"class":400},[237,1606,257],{"class":243},[237,1608,260],{"class":243},[237,1610,263],{"class":243},[237,1612,428],{"class":266},[237,1614,257],{"class":243},[237,1616,415],{"class":243},[237,1618,263],{"class":243},[237,1620,788],{"class":400},[237,1622,257],{"class":243},[237,1624,260],{"class":243},[237,1626,990],{"class":371},[237,1628,415],{"class":243},[237,1630,263],{"class":243},[237,1632,1633],{"class":400},"success",[237,1635,257],{"class":243},[237,1637,260],{"class":243},[237,1639,1640],{"class":243}," true",[237,1642,433],{"class":243},[237,1644,1645,1647,1649,1651,1653,1655,1657,1659,1661,1663,1665,1667,1669,1671,1673,1675,1677,1679,1681,1683,1685,1687,1690,1692,1694,1696,1698,1700,1702],{"class":239,"line":296},[237,1646,395],{"class":243},[237,1648,263],{"class":243},[237,1650,1588],{"class":400},[237,1652,257],{"class":243},[237,1654,260],{"class":243},[237,1656,263],{"class":243},[237,1658,1066],{"class":266},[237,1660,257],{"class":243},[237,1662,415],{"class":243},[237,1664,263],{"class":243},[237,1666,254],{"class":400},[237,1668,257],{"class":243},[237,1670,260],{"class":243},[237,1672,263],{"class":243},[237,1674,468],{"class":266},[237,1676,257],{"class":243},[237,1678,415],{"class":243},[237,1680,263],{"class":243},[237,1682,788],{"class":400},[237,1684,257],{"class":243},[237,1686,260],{"class":243},[237,1688,1689],{"class":371}," 124",[237,1691,415],{"class":243},[237,1693,263],{"class":243},[237,1695,1633],{"class":400},[237,1697,257],{"class":243},[237,1699,260],{"class":243},[237,1701,1640],{"class":243},[237,1703,512],{"class":243},[237,1705,1706],{"class":239,"line":317},[237,1707,1708],{"class":243},"  ],\n",[237,1710,1711,1713,1715,1717,1719,1722,1724,1726,1728,1730,1733,1735,1737,1739,1741,1743,1745,1747,1749,1752,1754,1756,1759],{"class":239,"line":338},[237,1712,250],{"class":243},[237,1714,1380],{"class":253},[237,1716,257],{"class":243},[237,1718,260],{"class":243},[237,1720,1721],{"class":243}," {",[237,1723,263],{"class":243},[237,1725,1403],{"class":400},[237,1727,257],{"class":243},[237,1729,260],{"class":243},[237,1731,1732],{"class":371}," 2",[237,1734,415],{"class":243},[237,1736,263],{"class":243},[237,1738,1385],{"class":400},[237,1740,257],{"class":243},[237,1742,260],{"class":243},[237,1744,1732],{"class":371},[237,1746,415],{"class":243},[237,1748,263],{"class":243},[237,1750,1751],{"class":400},"failed",[237,1753,257],{"class":243},[237,1755,260],{"class":243},[237,1757,1758],{"class":371}," 0",[237,1760,512],{"class":243},[237,1762,1763],{"class":239,"line":359},[237,1764,524],{"class":243},[212,1766],{},[215,1768,209],{"id":1769},"signed-url",[185,1771,1772],{},"Use this method for uploading files directly from the client or when files aren't available via public URL.",[540,1774,1776],{"id":1775},"step-1-request-upload-url","Step 1. Request Upload URL",[545,1778,1779,2030,2100],{},[228,1780,1782],{"className":549,"code":1781,"filename":551,"language":552,"meta":233,"style":233},"const response = await fetch('https://crm.rentix.md/api/v1/media/request-upload-url', {\n  method: 'POST',\n  headers: {\n    'Authorization': 'ApiKey YOUR_API_KEY',\n    'Content-Type': 'application/json'\n  },\n  body: JSON.stringify({\n    files: [\n      { fileName: 'living-room.jpg', size: 245000, contentType: 'image/jpeg', externalId: 'apt-001-photo-1' }\n    ]\n  })\n});\n\nconst result = await response.json();\nconsole.log(`Upload URL: ${result.upload[0].url}`);\n",[223,1783,1784,1809,1823,1831,1849,1865,1869,1885,1894,1948,1952,1958,1966,1970,1990],{"__ignoreMap":233},[237,1785,1786,1788,1790,1792,1794,1796,1798,1800,1803,1805,1807],{"class":239,"line":240},[237,1787,559],{"class":253},[237,1789,563],{"class":562},[237,1791,566],{"class":243},[237,1793,570],{"class":569},[237,1795,574],{"class":573},[237,1797,577],{"class":562},[237,1799,580],{"class":243},[237,1801,1802],{"class":266},"https://crm.rentix.md/api/v1/media/request-upload-url",[237,1804,580],{"class":243},[237,1806,415],{"class":243},[237,1808,590],{"class":243},[237,1810,1811,1813,1815,1817,1819,1821],{"class":239,"line":247},[237,1812,596],{"class":595},[237,1814,260],{"class":243},[237,1816,601],{"class":243},[237,1818,604],{"class":266},[237,1820,580],{"class":243},[237,1822,272],{"class":243},[237,1824,1825,1827,1829],{"class":239,"line":275},[237,1826,613],{"class":595},[237,1828,260],{"class":243},[237,1830,590],{"class":243},[237,1832,1833,1835,1837,1839,1841,1843,1845,1847],{"class":239,"line":296},[237,1834,622],{"class":243},[237,1836,625],{"class":595},[237,1838,580],{"class":243},[237,1840,260],{"class":243},[237,1842,601],{"class":243},[237,1844,634],{"class":266},[237,1846,580],{"class":243},[237,1848,272],{"class":243},[237,1850,1851,1853,1855,1857,1859,1861,1863],{"class":239,"line":317},[237,1852,622],{"class":243},[237,1854,645],{"class":595},[237,1856,580],{"class":243},[237,1858,260],{"class":243},[237,1860,601],{"class":243},[237,1862,654],{"class":266},[237,1864,657],{"class":243},[237,1866,1867],{"class":239,"line":338},[237,1868,662],{"class":243},[237,1870,1871,1873,1875,1877,1879,1881,1883],{"class":239,"line":359},[237,1872,667],{"class":595},[237,1874,260],{"class":243},[237,1876,672],{"class":562},[237,1878,675],{"class":243},[237,1880,678],{"class":573},[237,1882,577],{"class":562},[237,1884,244],{"class":243},[237,1886,1887,1890,1892],{"class":239,"line":377},[237,1888,1889],{"class":595},"    files",[237,1891,260],{"class":243},[237,1893,389],{"class":562},[237,1895,1896,1898,1901,1903,1905,1908,1910,1912,1915,1917,1920,1922,1925,1927,1929,1932,1934,1936,1938,1940,1942,1944,1946],{"class":239,"line":392},[237,1897,1189],{"class":243},[237,1899,1900],{"class":595}," fileName",[237,1902,260],{"class":243},[237,1904,601],{"class":243},[237,1906,1907],{"class":266},"living-room.jpg",[237,1909,580],{"class":243},[237,1911,415],{"class":243},[237,1913,1914],{"class":595}," size",[237,1916,260],{"class":243},[237,1918,1919],{"class":371}," 245000",[237,1921,415],{"class":243},[237,1923,1924],{"class":595}," contentType",[237,1926,260],{"class":243},[237,1928,601],{"class":243},[237,1930,1931],{"class":266},"image/jpeg",[237,1933,580],{"class":243},[237,1935,415],{"class":243},[237,1937,1219],{"class":595},[237,1939,260],{"class":243},[237,1941,601],{"class":243},[237,1943,428],{"class":266},[237,1945,580],{"class":243},[237,1947,512],{"class":243},[237,1949,1950],{"class":239,"line":436},[237,1951,1316],{"class":562},[237,1953,1954,1956],{"class":239,"line":475},[237,1955,715],{"class":243},[237,1957,718],{"class":562},[237,1959,1960,1962,1964],{"class":239,"line":515},[237,1961,723],{"class":243},[237,1963,726],{"class":562},[237,1965,729],{"class":243},[237,1967,1968],{"class":239,"line":521},[237,1969,735],{"emptyLinePlaceholder":734},[237,1971,1972,1974,1976,1978,1980,1982,1984,1986,1988],{"class":239,"line":761},[237,1973,559],{"class":253},[237,1975,742],{"class":562},[237,1977,566],{"class":243},[237,1979,570],{"class":569},[237,1981,749],{"class":562},[237,1983,675],{"class":243},[237,1985,232],{"class":573},[237,1987,756],{"class":562},[237,1989,729],{"class":243},[237,1991,1992,1994,1996,1998,2000,2002,2005,2007,2009,2011,2014,2017,2020,2022,2024,2026,2028],{"class":239,"line":964},[237,1993,764],{"class":562},[237,1995,675],{"class":243},[237,1997,769],{"class":573},[237,1999,577],{"class":562},[237,2001,774],{"class":243},[237,2003,2004],{"class":266},"Upload URL: ",[237,2006,780],{"class":243},[237,2008,783],{"class":562},[237,2010,675],{"class":243},[237,2012,2013],{"class":562},"upload[",[237,2015,2016],{"class":371},"0",[237,2018,2019],{"class":562},"]",[237,2021,675],{"class":243},[237,2023,401],{"class":562},[237,2025,805],{"class":243},[237,2027,726],{"class":562},[237,2029,729],{"class":243},[228,2031,2033],{"className":812,"code":2032,"filename":814,"language":815,"meta":233,"style":233},"curl -X POST https://crm.rentix.md/api/v1/media/request-upload-url \\\n  -H \"Authorization: ApiKey YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"files\": [\n      { \"fileName\": \"living-room.jpg\", \"size\": 245000, \"contentType\": \"image/jpeg\", \"externalId\": \"apt-001-photo-1\" }\n    ]\n  }'\n",[223,2034,2035,2048,2060,2072,2080,2085,2090,2094],{"__ignoreMap":233},[237,2036,2037,2039,2041,2043,2046],{"class":239,"line":240},[237,2038,814],{"class":400},[237,2040,824],{"class":266},[237,2042,827],{"class":266},[237,2044,2045],{"class":266}," https://crm.rentix.md/api/v1/media/request-upload-url",[237,2047,833],{"class":562},[237,2049,2050,2052,2054,2056,2058],{"class":239,"line":247},[237,2051,838],{"class":266},[237,2053,263],{"class":243},[237,2055,843],{"class":266},[237,2057,257],{"class":243},[237,2059,833],{"class":562},[237,2061,2062,2064,2066,2068,2070],{"class":239,"line":275},[237,2063,838],{"class":266},[237,2065,263],{"class":243},[237,2067,856],{"class":266},[237,2069,257],{"class":243},[237,2071,833],{"class":562},[237,2073,2074,2076,2078],{"class":239,"line":296},[237,2075,865],{"class":266},[237,2077,601],{"class":243},[237,2079,244],{"class":266},[237,2081,2082],{"class":239,"line":317},[237,2083,2084],{"class":266},"    \"files\": [\n",[237,2086,2087],{"class":239,"line":338},[237,2088,2089],{"class":266},"      { \"fileName\": \"living-room.jpg\", \"size\": 245000, \"contentType\": \"image/jpeg\", \"externalId\": \"apt-001-photo-1\" }\n",[237,2091,2092],{"class":239,"line":359},[237,2093,1316],{"class":266},[237,2095,2096,2098],{"class":239,"line":377},[237,2097,715],{"class":266},[237,2099,657],{"class":243},[228,2101,2103],{"className":888,"code":2102,"filename":890,"language":890,"meta":233,"style":233},"$data = [\n  'files' => [\n    ['fileName' => 'living-room.jpg', 'size' => 245000, 'contentType' => 'image/jpeg', 'externalId' => 'apt-001-photo-1']\n  ]\n];\n\n$ch = curl_init('https://crm.rentix.md/api/v1/media/request-upload-url');\ncurl_setopt($ch, CURLOPT_POST, true);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n  'Authorization: ApiKey YOUR_API_KEY',\n  'Content-Type: application/json'\n]);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n$response = curl_exec($ch);\n$result = json_decode($response, true);\n",[223,2104,2105,2109,2114,2119,2123,2127,2131,2136,2140,2144,2148,2152,2156,2160,2164,2168],{"__ignoreMap":233},[237,2106,2107],{"class":239,"line":240},[237,2108,897],{},[237,2110,2111],{"class":239,"line":247},[237,2112,2113],{},"  'files' => [\n",[237,2115,2116],{"class":239,"line":275},[237,2117,2118],{},"    ['fileName' => 'living-room.jpg', 'size' => 245000, 'contentType' => 'image/jpeg', 'externalId' => 'apt-001-photo-1']\n",[237,2120,2121],{"class":239,"line":296},[237,2122,518],{},[237,2124,2125],{"class":239,"line":317},[237,2126,912],{},[237,2128,2129],{"class":239,"line":338},[237,2130,735],{"emptyLinePlaceholder":734},[237,2132,2133],{"class":239,"line":359},[237,2134,2135],{},"$ch = curl_init('https://crm.rentix.md/api/v1/media/request-upload-url');\n",[237,2137,2138],{"class":239,"line":377},[237,2139,926],{},[237,2141,2142],{"class":239,"line":392},[237,2143,931],{},[237,2145,2146],{"class":239,"line":436},[237,2147,936],{},[237,2149,2150],{"class":239,"line":475},[237,2151,941],{},[237,2153,2154],{"class":239,"line":515},[237,2155,946],{},[237,2157,2158],{"class":239,"line":521},[237,2159,951],{},[237,2161,2162],{"class":239,"line":761},[237,2163,956],{},[237,2165,2166],{"class":239,"line":964},[237,2167,961],{},[237,2169,2170],{"class":239,"line":1337},[237,2171,967],{},[228,2173,2175],{"className":230,"code":2174,"filename":971,"language":232,"meta":233,"style":233},"{\n  \"uuid\": \"abc123\",\n  \"upload\": [\n    {\n      \"url\": \"https://storage.googleapis.com/bucket/abc123_living-room.jpg?signature=...\",\n      \"generatedFileName\": \"abc123_living-room.jpg\",\n      \"externalId\": \"apt-001-photo-1\"\n    }\n  ]\n}\n",[223,2176,2177,2181,2201,2214,2219,2239,2259,2276,2281,2285],{"__ignoreMap":233},[237,2178,2179],{"class":239,"line":240},[237,2180,244],{"class":243},[237,2182,2183,2185,2188,2190,2192,2194,2197,2199],{"class":239,"line":247},[237,2184,250],{"class":243},[237,2186,2187],{"class":253},"uuid",[237,2189,257],{"class":243},[237,2191,260],{"class":243},[237,2193,263],{"class":243},[237,2195,2196],{"class":266},"abc123",[237,2198,257],{"class":243},[237,2200,272],{"class":243},[237,2202,2203,2205,2208,2210,2212],{"class":239,"line":275},[237,2204,250],{"class":243},[237,2206,2207],{"class":253},"upload",[237,2209,257],{"class":243},[237,2211,260],{"class":243},[237,2213,389],{"class":243},[237,2215,2216],{"class":239,"line":296},[237,2217,2218],{"class":243},"    {\n",[237,2220,2221,2224,2226,2228,2230,2232,2235,2237],{"class":239,"line":317},[237,2222,2223],{"class":243},"      \"",[237,2225,401],{"class":400},[237,2227,257],{"class":243},[237,2229,260],{"class":243},[237,2231,263],{"class":243},[237,2233,2234],{"class":266},"https://storage.googleapis.com/bucket/abc123_living-room.jpg?signature=...",[237,2236,257],{"class":243},[237,2238,272],{"class":243},[237,2240,2241,2243,2246,2248,2250,2252,2255,2257],{"class":239,"line":338},[237,2242,2223],{"class":243},[237,2244,2245],{"class":400},"generatedFileName",[237,2247,257],{"class":243},[237,2249,260],{"class":243},[237,2251,263],{"class":243},[237,2253,2254],{"class":266},"abc123_living-room.jpg",[237,2256,257],{"class":243},[237,2258,272],{"class":243},[237,2260,2261,2263,2265,2267,2269,2271,2273],{"class":239,"line":359},[237,2262,2223],{"class":243},[237,2264,254],{"class":400},[237,2266,257],{"class":243},[237,2268,260],{"class":243},[237,2270,263],{"class":243},[237,2272,428],{"class":266},[237,2274,2275],{"class":243},"\"\n",[237,2277,2278],{"class":239,"line":377},[237,2279,2280],{"class":243},"    }\n",[237,2282,2283],{"class":239,"line":392},[237,2284,518],{"class":243},[237,2286,2287],{"class":239,"line":436},[237,2288,524],{"class":243},[2290,2291,2292,2293,2296],"warning",{},"The URL is valid for ",[195,2294,2295],{},"30 minutes",". Upload the file before it expires.",[540,2298,2300],{"id":2299},"step-2-upload-file","Step 2. Upload File",[185,2302,2303],{},"Send the file via PUT request to the received URL:",[228,2305,2307],{"className":812,"code":2306,"language":815,"meta":233,"style":233},"curl -X PUT \"https://storage.googleapis.com/bucket/abc123_living-room.jpg?signature=...\" \\\n  -H \"Content-Type: image/jpeg\" \\\n  --data-binary @living-room.jpg\n",[223,2308,2309,2326,2339],{"__ignoreMap":233},[237,2310,2311,2313,2315,2318,2320,2322,2324],{"class":239,"line":240},[237,2312,814],{"class":400},[237,2314,824],{"class":266},[237,2316,2317],{"class":266}," PUT",[237,2319,263],{"class":243},[237,2321,2234],{"class":266},[237,2323,257],{"class":243},[237,2325,833],{"class":562},[237,2327,2328,2330,2332,2335,2337],{"class":239,"line":247},[237,2329,838],{"class":266},[237,2331,263],{"class":243},[237,2333,2334],{"class":266},"Content-Type: image/jpeg",[237,2336,257],{"class":243},[237,2338,833],{"class":562},[237,2340,2341,2344],{"class":239,"line":275},[237,2342,2343],{"class":266},"  --data-binary",[237,2345,2346],{"class":266}," @living-room.jpg\n",[540,2348,2350],{"id":2349},"step-3-confirm-upload","Step 3. Confirm Upload",[185,2352,2353,2354,1067],{},"Use the bulk endpoint with ",[223,2355,2356],{},"confirm-upload",[545,2358,2359,2634,2725],{},[228,2360,2362],{"className":549,"code":2361,"filename":551,"language":552,"meta":233,"style":233},"const response = await fetch('https://crm.rentix.md/api/v1/media/bulk', {\n  method: 'POST',\n  headers: {\n    'Authorization': 'ApiKey YOUR_API_KEY',\n    'Content-Type': 'application/json'\n  },\n  body: JSON.stringify({\n    operations: [\n      {\n        op: 'confirm-upload',\n        uuid: 'abc123',\n        generatedFileName: 'abc123_living-room.jpg',\n        externalId: 'apt-001-photo-1'\n      }\n    ]\n  })\n});\n\nconst result = await response.json();\nconsole.log(`Confirmed: ${result.summary.succeeded} of ${result.summary.total}`);\n",[223,2363,2364,2388,2402,2410,2428,2444,2448,2464,2472,2477,2492,2507,2522,2535,2540,2544,2550,2558,2563,2584],{"__ignoreMap":233},[237,2365,2366,2368,2370,2372,2374,2376,2378,2380,2382,2384,2386],{"class":239,"line":240},[237,2367,559],{"class":253},[237,2369,563],{"class":562},[237,2371,566],{"class":243},[237,2373,570],{"class":569},[237,2375,574],{"class":573},[237,2377,577],{"class":562},[237,2379,580],{"class":243},[237,2381,1093],{"class":266},[237,2383,580],{"class":243},[237,2385,415],{"class":243},[237,2387,590],{"class":243},[237,2389,2390,2392,2394,2396,2398,2400],{"class":239,"line":247},[237,2391,596],{"class":595},[237,2393,260],{"class":243},[237,2395,601],{"class":243},[237,2397,604],{"class":266},[237,2399,580],{"class":243},[237,2401,272],{"class":243},[237,2403,2404,2406,2408],{"class":239,"line":275},[237,2405,613],{"class":595},[237,2407,260],{"class":243},[237,2409,590],{"class":243},[237,2411,2412,2414,2416,2418,2420,2422,2424,2426],{"class":239,"line":296},[237,2413,622],{"class":243},[237,2415,625],{"class":595},[237,2417,580],{"class":243},[237,2419,260],{"class":243},[237,2421,601],{"class":243},[237,2423,634],{"class":266},[237,2425,580],{"class":243},[237,2427,272],{"class":243},[237,2429,2430,2432,2434,2436,2438,2440,2442],{"class":239,"line":317},[237,2431,622],{"class":243},[237,2433,645],{"class":595},[237,2435,580],{"class":243},[237,2437,260],{"class":243},[237,2439,601],{"class":243},[237,2441,654],{"class":266},[237,2443,657],{"class":243},[237,2445,2446],{"class":239,"line":338},[237,2447,662],{"class":243},[237,2449,2450,2452,2454,2456,2458,2460,2462],{"class":239,"line":359},[237,2451,667],{"class":595},[237,2453,260],{"class":243},[237,2455,672],{"class":562},[237,2457,675],{"class":243},[237,2459,678],{"class":573},[237,2461,577],{"class":562},[237,2463,244],{"class":243},[237,2465,2466,2468,2470],{"class":239,"line":377},[237,2467,1180],{"class":595},[237,2469,260],{"class":243},[237,2471,389],{"class":562},[237,2473,2474],{"class":239,"line":392},[237,2475,2476],{"class":243},"      {\n",[237,2478,2479,2482,2484,2486,2488,2490],{"class":239,"line":436},[237,2480,2481],{"class":595},"        op",[237,2483,260],{"class":243},[237,2485,601],{"class":243},[237,2487,2356],{"class":266},[237,2489,580],{"class":243},[237,2491,272],{"class":243},[237,2493,2494,2497,2499,2501,2503,2505],{"class":239,"line":475},[237,2495,2496],{"class":595},"        uuid",[237,2498,260],{"class":243},[237,2500,601],{"class":243},[237,2502,2196],{"class":266},[237,2504,580],{"class":243},[237,2506,272],{"class":243},[237,2508,2509,2512,2514,2516,2518,2520],{"class":239,"line":515},[237,2510,2511],{"class":595},"        generatedFileName",[237,2513,260],{"class":243},[237,2515,601],{"class":243},[237,2517,2254],{"class":266},[237,2519,580],{"class":243},[237,2521,272],{"class":243},[237,2523,2524,2527,2529,2531,2533],{"class":239,"line":521},[237,2525,2526],{"class":595},"        externalId",[237,2528,260],{"class":243},[237,2530,601],{"class":243},[237,2532,428],{"class":266},[237,2534,657],{"class":243},[237,2536,2537],{"class":239,"line":761},[237,2538,2539],{"class":243},"      }\n",[237,2541,2542],{"class":239,"line":964},[237,2543,1316],{"class":562},[237,2545,2546,2548],{"class":239,"line":1337},[237,2547,715],{"class":243},[237,2549,718],{"class":562},[237,2551,2552,2554,2556],{"class":239,"line":1358},[237,2553,723],{"class":243},[237,2555,726],{"class":562},[237,2557,729],{"class":243},[237,2559,2561],{"class":239,"line":2560},18,[237,2562,735],{"emptyLinePlaceholder":734},[237,2564,2566,2568,2570,2572,2574,2576,2578,2580,2582],{"class":239,"line":2565},19,[237,2567,559],{"class":253},[237,2569,742],{"class":562},[237,2571,566],{"class":243},[237,2573,570],{"class":569},[237,2575,749],{"class":562},[237,2577,675],{"class":243},[237,2579,232],{"class":573},[237,2581,756],{"class":562},[237,2583,729],{"class":243},[237,2585,2587,2589,2591,2593,2595,2597,2600,2602,2604,2606,2608,2610,2612,2614,2616,2618,2620,2622,2624,2626,2628,2630,2632],{"class":239,"line":2586},20,[237,2588,764],{"class":562},[237,2590,675],{"class":243},[237,2592,769],{"class":573},[237,2594,577],{"class":562},[237,2596,774],{"class":243},[237,2598,2599],{"class":266},"Confirmed: ",[237,2601,780],{"class":243},[237,2603,783],{"class":562},[237,2605,675],{"class":243},[237,2607,1380],{"class":562},[237,2609,675],{"class":243},[237,2611,1385],{"class":562},[237,2613,723],{"class":243},[237,2615,1390],{"class":266},[237,2617,780],{"class":243},[237,2619,783],{"class":562},[237,2621,675],{"class":243},[237,2623,1380],{"class":562},[237,2625,675],{"class":243},[237,2627,1403],{"class":562},[237,2629,805],{"class":243},[237,2631,726],{"class":562},[237,2633,729],{"class":243},[228,2635,2637],{"className":812,"code":2636,"filename":814,"language":815,"meta":233,"style":233},"curl -X POST https://crm.rentix.md/api/v1/media/bulk \\\n  -H \"Authorization: ApiKey YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"operations\": [\n      {\n        \"op\": \"confirm-upload\",\n        \"uuid\": \"abc123\",\n        \"generatedFileName\": \"abc123_living-room.jpg\",\n        \"externalId\": \"apt-001-photo-1\"\n      }\n    ]\n  }'\n",[223,2638,2639,2651,2663,2675,2683,2687,2691,2696,2701,2706,2711,2715,2719],{"__ignoreMap":233},[237,2640,2641,2643,2645,2647,2649],{"class":239,"line":240},[237,2642,814],{"class":400},[237,2644,824],{"class":266},[237,2646,827],{"class":266},[237,2648,1425],{"class":266},[237,2650,833],{"class":562},[237,2652,2653,2655,2657,2659,2661],{"class":239,"line":247},[237,2654,838],{"class":266},[237,2656,263],{"class":243},[237,2658,843],{"class":266},[237,2660,257],{"class":243},[237,2662,833],{"class":562},[237,2664,2665,2667,2669,2671,2673],{"class":239,"line":275},[237,2666,838],{"class":266},[237,2668,263],{"class":243},[237,2670,856],{"class":266},[237,2672,257],{"class":243},[237,2674,833],{"class":562},[237,2676,2677,2679,2681],{"class":239,"line":296},[237,2678,865],{"class":266},[237,2680,601],{"class":243},[237,2682,244],{"class":266},[237,2684,2685],{"class":239,"line":317},[237,2686,1464],{"class":266},[237,2688,2689],{"class":239,"line":338},[237,2690,2476],{"class":266},[237,2692,2693],{"class":239,"line":359},[237,2694,2695],{"class":266},"        \"op\": \"confirm-upload\",\n",[237,2697,2698],{"class":239,"line":377},[237,2699,2700],{"class":266},"        \"uuid\": \"abc123\",\n",[237,2702,2703],{"class":239,"line":392},[237,2704,2705],{"class":266},"        \"generatedFileName\": \"abc123_living-room.jpg\",\n",[237,2707,2708],{"class":239,"line":436},[237,2709,2710],{"class":266},"        \"externalId\": \"apt-001-photo-1\"\n",[237,2712,2713],{"class":239,"line":475},[237,2714,2539],{"class":266},[237,2716,2717],{"class":239,"line":515},[237,2718,1316],{"class":266},[237,2720,2721,2723],{"class":239,"line":521},[237,2722,715],{"class":266},[237,2724,657],{"class":243},[228,2726,2728],{"className":888,"code":2727,"filename":890,"language":890,"meta":233,"style":233},"$data = [\n  'operations' => [\n    [\n      'op' => 'confirm-upload',\n      'uuid' => 'abc123',\n      'generatedFileName' => 'abc123_living-room.jpg',\n      'externalId' => 'apt-001-photo-1'\n    ]\n  ]\n];\n\n$ch = curl_init('https://crm.rentix.md/api/v1/media/bulk');\ncurl_setopt($ch, CURLOPT_POST, true);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n  'Authorization: ApiKey YOUR_API_KEY',\n  'Content-Type: application/json'\n]);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n$response = curl_exec($ch);\n$result = json_decode($response, true);\n",[223,2729,2730,2734,2738,2743,2748,2753,2758,2763,2767,2771,2775,2779,2783,2787,2791,2795,2799,2803,2807,2811,2815],{"__ignoreMap":233},[237,2731,2732],{"class":239,"line":240},[237,2733,897],{},[237,2735,2736],{"class":239,"line":247},[237,2737,1498],{},[237,2739,2740],{"class":239,"line":275},[237,2741,2742],{},"    [\n",[237,2744,2745],{"class":239,"line":296},[237,2746,2747],{},"      'op' => 'confirm-upload',\n",[237,2749,2750],{"class":239,"line":317},[237,2751,2752],{},"      'uuid' => 'abc123',\n",[237,2754,2755],{"class":239,"line":338},[237,2756,2757],{},"      'generatedFileName' => 'abc123_living-room.jpg',\n",[237,2759,2760],{"class":239,"line":359},[237,2761,2762],{},"      'externalId' => 'apt-001-photo-1'\n",[237,2764,2765],{"class":239,"line":377},[237,2766,1316],{},[237,2768,2769],{"class":239,"line":392},[237,2770,518],{},[237,2772,2773],{"class":239,"line":436},[237,2774,912],{},[237,2776,2777],{"class":239,"line":475},[237,2778,735],{"emptyLinePlaceholder":734},[237,2780,2781],{"class":239,"line":515},[237,2782,1525],{},[237,2784,2785],{"class":239,"line":521},[237,2786,926],{},[237,2788,2789],{"class":239,"line":761},[237,2790,931],{},[237,2792,2793],{"class":239,"line":964},[237,2794,936],{},[237,2796,2797],{"class":239,"line":1337},[237,2798,941],{},[237,2800,2801],{"class":239,"line":1358},[237,2802,946],{},[237,2804,2805],{"class":239,"line":2560},[237,2806,951],{},[237,2808,2809],{"class":239,"line":2565},[237,2810,956],{},[237,2812,2813],{"class":239,"line":2586},[237,2814,961],{},[237,2816,2818],{"class":239,"line":2817},21,[237,2819,967],{},[212,2821],{},[215,2823,2825],{"id":2824},"link-photos-to-listing","Link Photos to Listing",[185,2827,2828],{},"After upload, link photos to a listing. There are three ways to specify a file:",[540,2830,2832],{"id":2831},"by-internal-id","By Internal ID",[228,2834,2836],{"className":230,"code":2835,"language":232,"meta":233,"style":233},"{\n  \"files\": [\n    { \"id\": 123 },\n    { \"id\": 124 }\n  ]\n}\n",[223,2837,2838,2842,2854,2871,2887,2891],{"__ignoreMap":233},[237,2839,2840],{"class":239,"line":240},[237,2841,244],{"class":243},[237,2843,2844,2846,2848,2850,2852],{"class":239,"line":247},[237,2845,250],{"class":243},[237,2847,382],{"class":253},[237,2849,257],{"class":243},[237,2851,260],{"class":243},[237,2853,389],{"class":243},[237,2855,2856,2858,2860,2863,2865,2867,2869],{"class":239,"line":275},[237,2857,395],{"class":243},[237,2859,263],{"class":243},[237,2861,2862],{"class":400},"id",[237,2864,257],{"class":243},[237,2866,260],{"class":243},[237,2868,990],{"class":371},[237,2870,433],{"class":243},[237,2872,2873,2875,2877,2879,2881,2883,2885],{"class":239,"line":296},[237,2874,395],{"class":243},[237,2876,263],{"class":243},[237,2878,2862],{"class":400},[237,2880,257],{"class":243},[237,2882,260],{"class":243},[237,2884,1689],{"class":371},[237,2886,512],{"class":243},[237,2888,2889],{"class":239,"line":317},[237,2890,518],{"class":243},[237,2892,2893],{"class":239,"line":338},[237,2894,524],{"class":243},[540,2896,2898],{"id":2897},"by-external-id","By External ID",[228,2900,2902],{"className":230,"code":2901,"language":232,"meta":233,"style":233},"{\n  \"files\": [\n    { \"externalFileId\": \"apt-001-photo-1\" },\n    { \"externalFileId\": \"apt-001-photo-2\" }\n  ]\n}\n",[223,2903,2904,2908,2920,2940,2960,2964],{"__ignoreMap":233},[237,2905,2906],{"class":239,"line":240},[237,2907,244],{"class":243},[237,2909,2910,2912,2914,2916,2918],{"class":239,"line":247},[237,2911,250],{"class":243},[237,2913,382],{"class":253},[237,2915,257],{"class":243},[237,2917,260],{"class":243},[237,2919,389],{"class":243},[237,2921,2922,2924,2926,2928,2930,2932,2934,2936,2938],{"class":239,"line":275},[237,2923,395],{"class":243},[237,2925,263],{"class":243},[237,2927,225],{"class":400},[237,2929,257],{"class":243},[237,2931,260],{"class":243},[237,2933,263],{"class":243},[237,2935,428],{"class":266},[237,2937,257],{"class":243},[237,2939,433],{"class":243},[237,2941,2942,2944,2946,2948,2950,2952,2954,2956,2958],{"class":239,"line":296},[237,2943,395],{"class":243},[237,2945,263],{"class":243},[237,2947,225],{"class":400},[237,2949,257],{"class":243},[237,2951,260],{"class":243},[237,2953,263],{"class":243},[237,2955,468],{"class":266},[237,2957,257],{"class":243},[237,2959,512],{"class":243},[237,2961,2962],{"class":239,"line":317},[237,2963,518],{"class":243},[237,2965,2966],{"class":239,"line":338},[237,2967,524],{"class":243},[540,2969,2971],{"id":2970},"by-url-auto-import","By URL (Auto-import)",[228,2973,2975],{"className":230,"code":2974,"language":232,"meta":233,"style":233},"{\n  \"files\": [\n    { \"url\": \"https://placehold.co/1920x1080/jpg?text=Photo+1\", \"externalFileId\": \"apt-001-photo-1\" },\n    { \"url\": \"https://placehold.co/1920x1080/jpg?text=Photo+2\", \"externalFileId\": \"apt-001-photo-2\" }\n  ]\n}\n",[223,2976,2977,2981,2993,3029,3065,3069],{"__ignoreMap":233},[237,2978,2979],{"class":239,"line":240},[237,2980,244],{"class":243},[237,2982,2983,2985,2987,2989,2991],{"class":239,"line":247},[237,2984,250],{"class":243},[237,2986,382],{"class":253},[237,2988,257],{"class":243},[237,2990,260],{"class":243},[237,2992,389],{"class":243},[237,2994,2995,2997,2999,3001,3003,3005,3007,3009,3011,3013,3015,3017,3019,3021,3023,3025,3027],{"class":239,"line":275},[237,2996,395],{"class":243},[237,2998,263],{"class":243},[237,3000,401],{"class":400},[237,3002,257],{"class":243},[237,3004,260],{"class":243},[237,3006,263],{"class":243},[237,3008,1212],{"class":266},[237,3010,257],{"class":243},[237,3012,415],{"class":243},[237,3014,263],{"class":243},[237,3016,225],{"class":400},[237,3018,257],{"class":243},[237,3020,260],{"class":243},[237,3022,263],{"class":243},[237,3024,428],{"class":266},[237,3026,257],{"class":243},[237,3028,433],{"class":243},[237,3030,3031,3033,3035,3037,3039,3041,3043,3045,3047,3049,3051,3053,3055,3057,3059,3061,3063],{"class":239,"line":296},[237,3032,395],{"class":243},[237,3034,263],{"class":243},[237,3036,401],{"class":400},[237,3038,257],{"class":243},[237,3040,260],{"class":243},[237,3042,263],{"class":243},[237,3044,1254],{"class":266},[237,3046,257],{"class":243},[237,3048,415],{"class":243},[237,3050,263],{"class":243},[237,3052,225],{"class":400},[237,3054,257],{"class":243},[237,3056,260],{"class":243},[237,3058,263],{"class":243},[237,3060,468],{"class":266},[237,3062,257],{"class":243},[237,3064,512],{"class":243},[237,3066,3067],{"class":239,"line":317},[237,3068,518],{"class":243},[237,3070,3071],{"class":239,"line":338},[237,3072,524],{"class":243},[212,3074],{},[215,3076,3078],{"id":3077},"bulk-media-operations","Bulk Media Operations",[185,3080,3081,3082,260],{},"All media operations can be performed through a single endpoint ",[223,3083,3084],{},"POST /media/bulk",[3086,3087,3088,3101],"table",{},[3089,3090,3091],"thead",{},[3092,3093,3094,3098],"tr",{},[3095,3096,3097],"th",{},"Operation",[3095,3099,3100],{},"Description",[3102,3103,3104,3114,3123,3133,3143],"tbody",{},[3092,3105,3106,3111],{},[3107,3108,3109],"td",{},[223,3110,1066],{},[3107,3112,3113],{},"Upload file by URL",[3092,3115,3116,3120],{},[3107,3117,3118],{},[223,3119,2356],{},[3107,3121,3122],{},"Confirm signed URL upload",[3092,3124,3125,3130],{},[3107,3126,3127],{},[223,3128,3129],{},"link",[3107,3131,3132],{},"Link external ID to file",[3092,3134,3135,3140],{},[3107,3136,3137],{},[223,3138,3139],{},"unlink",[3107,3141,3142],{},"Unlink external ID",[3092,3144,3145,3150],{},[3107,3146,3147],{},[223,3148,3149],{},"delete",[3107,3151,3152],{},"Delete file",[540,3154,3156],{"id":3155},"combined-operations-example","Combined Operations Example",[228,3158,3160],{"className":230,"code":3159,"language":232,"meta":233,"style":233},"{\n  \"operations\": [\n    { \"op\": \"upload-from-url\", \"url\": \"https://example.com/new.jpg\", \"externalId\": \"new-photo\" },\n    { \"op\": \"link\", \"mediaId\": 123, \"externalId\": \"old-photo-linked\" },\n    { \"op\": \"delete\", \"externalId\": \"old-photo-to-remove\" }\n  ]\n}\n",[223,3161,3162,3166,3179,3233,3282,3319,3323],{"__ignoreMap":233},[237,3163,3164],{"class":239,"line":240},[237,3165,244],{"class":243},[237,3167,3168,3170,3173,3175,3177],{"class":239,"line":247},[237,3169,250],{"class":243},[237,3171,3172],{"class":253},"operations",[237,3174,257],{"class":243},[237,3176,260],{"class":243},[237,3178,389],{"class":243},[237,3180,3181,3183,3185,3187,3189,3191,3193,3195,3197,3199,3201,3203,3205,3207,3209,3212,3214,3216,3218,3220,3222,3224,3226,3229,3231],{"class":239,"line":275},[237,3182,395],{"class":243},[237,3184,263],{"class":243},[237,3186,1588],{"class":400},[237,3188,257],{"class":243},[237,3190,260],{"class":243},[237,3192,263],{"class":243},[237,3194,1066],{"class":266},[237,3196,257],{"class":243},[237,3198,415],{"class":243},[237,3200,263],{"class":243},[237,3202,401],{"class":400},[237,3204,257],{"class":243},[237,3206,260],{"class":243},[237,3208,263],{"class":243},[237,3210,3211],{"class":266},"https://example.com/new.jpg",[237,3213,257],{"class":243},[237,3215,415],{"class":243},[237,3217,263],{"class":243},[237,3219,254],{"class":400},[237,3221,257],{"class":243},[237,3223,260],{"class":243},[237,3225,263],{"class":243},[237,3227,3228],{"class":266},"new-photo",[237,3230,257],{"class":243},[237,3232,433],{"class":243},[237,3234,3235,3237,3239,3241,3243,3245,3247,3249,3251,3253,3255,3257,3259,3261,3263,3265,3267,3269,3271,3273,3275,3278,3280],{"class":239,"line":296},[237,3236,395],{"class":243},[237,3238,263],{"class":243},[237,3240,1588],{"class":400},[237,3242,257],{"class":243},[237,3244,260],{"class":243},[237,3246,263],{"class":243},[237,3248,3129],{"class":266},[237,3250,257],{"class":243},[237,3252,415],{"class":243},[237,3254,263],{"class":243},[237,3256,788],{"class":400},[237,3258,257],{"class":243},[237,3260,260],{"class":243},[237,3262,990],{"class":371},[237,3264,415],{"class":243},[237,3266,263],{"class":243},[237,3268,254],{"class":400},[237,3270,257],{"class":243},[237,3272,260],{"class":243},[237,3274,263],{"class":243},[237,3276,3277],{"class":266},"old-photo-linked",[237,3279,257],{"class":243},[237,3281,433],{"class":243},[237,3283,3284,3286,3288,3290,3292,3294,3296,3298,3300,3302,3304,3306,3308,3310,3312,3315,3317],{"class":239,"line":317},[237,3285,395],{"class":243},[237,3287,263],{"class":243},[237,3289,1588],{"class":400},[237,3291,257],{"class":243},[237,3293,260],{"class":243},[237,3295,263],{"class":243},[237,3297,3149],{"class":266},[237,3299,257],{"class":243},[237,3301,415],{"class":243},[237,3303,263],{"class":243},[237,3305,254],{"class":400},[237,3307,257],{"class":243},[237,3309,260],{"class":243},[237,3311,263],{"class":243},[237,3313,3314],{"class":266},"old-photo-to-remove",[237,3316,257],{"class":243},[237,3318,512],{"class":243},[237,3320,3321],{"class":239,"line":338},[237,3322,518],{"class":243},[237,3324,3325],{"class":239,"line":359},[237,3326,524],{"class":243},[540,3328,150],{"id":3329},"error-handling",[185,3331,3332,3333,3335],{},"An error in one operation doesn't stop the others. Check ",[223,3334,1633],{}," for each result:",[228,3337,3340],{"className":230,"code":3338,"filename":3339,"language":232,"meta":233,"style":233},"{\n  \"results\": [\n    { \"op\": \"upload-from-url\", \"externalId\": \"photo-1\", \"mediaId\": 123, \"success\": true },\n    {\n      \"op\": \"upload-from-url\",\n      \"externalId\": \"photo-2\",\n      \"mediaId\": null,\n      \"success\": false,\n      \"error\": {\n        \"statusCode\": 400,\n        \"body\": {\n          \"error\": \"Duplicate external ID\",\n          \"error_code\": \"DUPLICATE_EXTERNAL_ID\"\n        }\n      }\n    }\n  ],\n  \"summary\": { \"total\": 2, \"succeeded\": 1, \"failed\": 1 }\n}\n","Response with Error",[223,3341,3342,3346,3358,3419,3423,3441,3460,3473,3486,3499,3516,3529,3549,3567,3572,3576,3580,3584,3633],{"__ignoreMap":233},[237,3343,3344],{"class":239,"line":240},[237,3345,244],{"class":243},[237,3347,3348,3350,3352,3354,3356],{"class":239,"line":247},[237,3349,250],{"class":243},[237,3351,1573],{"class":253},[237,3353,257],{"class":243},[237,3355,260],{"class":243},[237,3357,389],{"class":243},[237,3359,3360,3362,3364,3366,3368,3370,3372,3374,3376,3378,3380,3382,3384,3386,3388,3391,3393,3395,3397,3399,3401,3403,3405,3407,3409,3411,3413,3415,3417],{"class":239,"line":275},[237,3361,395],{"class":243},[237,3363,263],{"class":243},[237,3365,1588],{"class":400},[237,3367,257],{"class":243},[237,3369,260],{"class":243},[237,3371,263],{"class":243},[237,3373,1066],{"class":266},[237,3375,257],{"class":243},[237,3377,415],{"class":243},[237,3379,263],{"class":243},[237,3381,254],{"class":400},[237,3383,257],{"class":243},[237,3385,260],{"class":243},[237,3387,263],{"class":243},[237,3389,3390],{"class":266},"photo-1",[237,3392,257],{"class":243},[237,3394,415],{"class":243},[237,3396,263],{"class":243},[237,3398,788],{"class":400},[237,3400,257],{"class":243},[237,3402,260],{"class":243},[237,3404,990],{"class":371},[237,3406,415],{"class":243},[237,3408,263],{"class":243},[237,3410,1633],{"class":400},[237,3412,257],{"class":243},[237,3414,260],{"class":243},[237,3416,1640],{"class":243},[237,3418,433],{"class":243},[237,3420,3421],{"class":239,"line":296},[237,3422,2218],{"class":243},[237,3424,3425,3427,3429,3431,3433,3435,3437,3439],{"class":239,"line":317},[237,3426,2223],{"class":243},[237,3428,1588],{"class":400},[237,3430,257],{"class":243},[237,3432,260],{"class":243},[237,3434,263],{"class":243},[237,3436,1066],{"class":266},[237,3438,257],{"class":243},[237,3440,272],{"class":243},[237,3442,3443,3445,3447,3449,3451,3453,3456,3458],{"class":239,"line":338},[237,3444,2223],{"class":243},[237,3446,254],{"class":400},[237,3448,257],{"class":243},[237,3450,260],{"class":243},[237,3452,263],{"class":243},[237,3454,3455],{"class":266},"photo-2",[237,3457,257],{"class":243},[237,3459,272],{"class":243},[237,3461,3462,3464,3466,3468,3470],{"class":239,"line":359},[237,3463,2223],{"class":243},[237,3465,788],{"class":400},[237,3467,257],{"class":243},[237,3469,260],{"class":243},[237,3471,3472],{"class":243}," null,\n",[237,3474,3475,3477,3479,3481,3483],{"class":239,"line":377},[237,3476,2223],{"class":243},[237,3478,1633],{"class":400},[237,3480,257],{"class":243},[237,3482,260],{"class":243},[237,3484,3485],{"class":243}," false,\n",[237,3487,3488,3490,3493,3495,3497],{"class":239,"line":392},[237,3489,2223],{"class":243},[237,3491,3492],{"class":400},"error",[237,3494,257],{"class":243},[237,3496,260],{"class":243},[237,3498,590],{"class":243},[237,3500,3501,3504,3507,3509,3511,3514],{"class":239,"line":436},[237,3502,3503],{"class":243},"        \"",[237,3505,3506],{"class":371},"statusCode",[237,3508,257],{"class":243},[237,3510,260],{"class":243},[237,3512,3513],{"class":371}," 400",[237,3515,272],{"class":243},[237,3517,3518,3520,3523,3525,3527],{"class":239,"line":475},[237,3519,3503],{"class":243},[237,3521,3522],{"class":371},"body",[237,3524,257],{"class":243},[237,3526,260],{"class":243},[237,3528,590],{"class":243},[237,3530,3531,3534,3536,3538,3540,3542,3545,3547],{"class":239,"line":515},[237,3532,3533],{"class":243},"          \"",[237,3535,3492],{"class":595},[237,3537,257],{"class":243},[237,3539,260],{"class":243},[237,3541,263],{"class":243},[237,3543,3544],{"class":266},"Duplicate external ID",[237,3546,257],{"class":243},[237,3548,272],{"class":243},[237,3550,3551,3553,3556,3558,3560,3562,3565],{"class":239,"line":521},[237,3552,3533],{"class":243},[237,3554,3555],{"class":595},"error_code",[237,3557,257],{"class":243},[237,3559,260],{"class":243},[237,3561,263],{"class":243},[237,3563,3564],{"class":266},"DUPLICATE_EXTERNAL_ID",[237,3566,2275],{"class":243},[237,3568,3569],{"class":239,"line":761},[237,3570,3571],{"class":243},"        }\n",[237,3573,3574],{"class":239,"line":964},[237,3575,2539],{"class":243},[237,3577,3578],{"class":239,"line":1337},[237,3579,2280],{"class":243},[237,3581,3582],{"class":239,"line":1358},[237,3583,1708],{"class":243},[237,3585,3586,3588,3590,3592,3594,3596,3598,3600,3602,3604,3606,3608,3610,3612,3614,3616,3619,3621,3623,3625,3627,3629,3631],{"class":239,"line":2560},[237,3587,250],{"class":243},[237,3589,1380],{"class":253},[237,3591,257],{"class":243},[237,3593,260],{"class":243},[237,3595,1721],{"class":243},[237,3597,263],{"class":243},[237,3599,1403],{"class":400},[237,3601,257],{"class":243},[237,3603,260],{"class":243},[237,3605,1732],{"class":371},[237,3607,415],{"class":243},[237,3609,263],{"class":243},[237,3611,1385],{"class":400},[237,3613,257],{"class":243},[237,3615,260],{"class":243},[237,3617,3618],{"class":371}," 1",[237,3620,415],{"class":243},[237,3622,263],{"class":243},[237,3624,1751],{"class":400},[237,3626,257],{"class":243},[237,3628,260],{"class":243},[237,3630,3618],{"class":371},[237,3632,512],{"class":243},[237,3634,3635],{"class":239,"line":2565},[237,3636,524],{"class":243},[212,3638],{},[215,3640,3642],{"id":3641},"common-errors","Common Errors",[3086,3644,3645,3658],{},[3089,3646,3647],{},[3092,3648,3649,3652,3655],{},[3095,3650,3651],{},"Error",[3095,3653,3654],{},"Cause",[3095,3656,3657],{},"Solution",[3102,3659,3660,3672,3685,3698],{},[3092,3661,3662,3666,3669],{},[3107,3663,3664],{},[223,3665,3544],{},[3107,3667,3668],{},"External ID is already in use",[3107,3670,3671],{},"Use a unique ID for each file",[3092,3673,3674,3679,3682],{},[3107,3675,3676],{},[223,3677,3678],{},"Upload URL expired",[3107,3680,3681],{},"Signed URL expired",[3107,3683,3684],{},"Request a new URL",[3092,3686,3687,3692,3695],{},[3107,3688,3689],{},[223,3690,3691],{},"Invalid content type",[3107,3693,3694],{},"Invalid file format",[3107,3696,3697],{},"Use JPEG, PNG, WebP, or HEIC",[3092,3699,3700,3705,3708],{},[3107,3701,3702],{},[223,3703,3704],{},"File too large",[3107,3706,3707],{},"File is too big",[3107,3709,3710],{},"Reduce size or compress",[3712,3713,3714],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":233,"searchDepth":247,"depth":247,"links":3716},[3717,3718,3722,3727,3732,3736],{"id":217,"depth":247,"text":218},{"id":535,"depth":247,"text":203,"children":3719},[3720,3721],{"id":542,"depth":275,"text":543},{"id":1059,"depth":275,"text":1060},{"id":1769,"depth":247,"text":209,"children":3723},[3724,3725,3726],{"id":1775,"depth":275,"text":1776},{"id":2299,"depth":275,"text":2300},{"id":2349,"depth":275,"text":2350},{"id":2824,"depth":247,"text":2825,"children":3728},[3729,3730,3731],{"id":2831,"depth":275,"text":2832},{"id":2897,"depth":275,"text":2898},{"id":2970,"depth":275,"text":2971},{"id":3077,"depth":247,"text":3078,"children":3733},[3734,3735],{"id":3155,"depth":275,"text":3156},{"id":3329,"depth":275,"text":150},{"id":3641,"depth":247,"text":3642},"How to upload photos — via URL in listing, import by URL, or signed URL","md",null,{},{"icon":121},{"title":118,"description":3737},"G0ZMBwxgyEtmnMsTLLADvGCcxGGS9nFrpku38Ykn3DE",[3745,3747],{"title":114,"path":115,"stem":116,"description":3746,"icon":109,"children":-1},"Uploading photos and videos for listings via API",{"title":123,"path":124,"stem":125,"description":3748,"icon":126,"children":-1},"How to retrieve, delete, and link media files with external IDs",1773784455001]