[{"data":1,"prerenderedAt":517},["ShallowReactive",2],{"docs-navigation":3,"doc-\u002Fdocs\u002Fcreate-reading":60},[4,8,12,16,20,24,28,32,36,40,44,48,52,56],{"path":5,"title":6,"description":7},"\u002Fdocs\u002Fquickstart","Quickstart","Read both sides of an INE from your backend and receive structured JSON.",{"path":9,"title":10,"description":11},"\u002Fdocs\u002Fauthentication","Authentication","Keep company API keys on the server and separate them from dashboard access.",{"path":13,"title":14,"description":15},"\u002Fdocs\u002Fcreate-reading","Create a reading","Submit one front and back pair with a stable idempotency key.",{"path":17,"title":18,"description":19},"\u002Fdocs\u002Fretrieve-result","Retrieve a result","Read an existing job without repeating extraction or consuming another unit.",{"path":21,"title":22,"description":23},"\u002Fdocs\u002Fresponse-fields","Response fields","Choose the standard or extended response and use literal fields with review warnings.",{"path":25,"title":26,"description":27},"\u002Fdocs\u002Ferrors-and-retries","Errors and retries","Recover from errors without accidentally creating another charged reading.",{"path":29,"title":30,"description":31},"\u002Fdocs\u002Flimits-and-billing","Limits and billing","Plan allowances, shared admission limits and how reading units are counted.",{"path":33,"title":34,"description":35},"\u002Fdocs\u002Fprivacy-and-security","Privacy and security","Understand result retention, access controls and your backend's responsibilities.",{"path":37,"title":38,"description":39},"\u002Fdocs\u002Fexamples","Integration examples","Copyable server-side Node.js, Python and cURL examples with one POST per attempt.",{"path":41,"title":42,"description":43},"\u002Fdocs\u002Fdashboard","Dashboard usage","View your company's quota and request counts without exposing OCR data.",{"path":45,"title":46,"description":47},"\u002Fdocs\u002Fextended-reading","Extended extraction","Opt in to printed fields, separated address components, provenance and review checks.",{"path":49,"title":50,"description":51},"\u002Fdocs\u002Fwebhooks","Completion webhooks","Receive signed completion events without exposing OCR data in callbacks.",{"path":53,"title":54,"description":55},"\u002Fdocs\u002Fevaluation","Evaluation and limitations","Measured illustration results, remaining errors, and the limits of the extended profile.",{"path":57,"title":58,"description":59},"\u002Fdocs\u002Faddress-parts","Address parts","Use separate address inputs while retaining literal OCR and exact text sources.",{"id":61,"title":14,"body":62,"description":15,"extension":511,"meta":512,"navigation":513,"path":13,"seo":514,"stem":515,"__hash__":516},"docs\u002Fdocs\u002F03.create-reading.md",{"type":63,"value":64,"toc":505},"minimark",[65,82,90,95,252,269,273,327,334,338,352,441,461,476,480,490,501],[66,67,72],"pre",{"className":68,"code":69,"language":70,"meta":71,"style":71},"language-http shiki shiki-themes material-theme-lighter github-light github-light","POST https:\u002F\u002Focr.ecostudios.dev\u002Fapi\u002Fv3\u002Fine\n","http","",[73,74,75],"code",{"__ignoreMap":71},[76,77,80],"span",{"class":78,"line":79},"line",1,[76,81,69],{},[83,84,85,86,89],"p",{},"By default, one request reads one person's INE, front and back. V3 also accepts an explicit single-side mode. Send the files as ",[73,87,88],{},"multipart\u002Fform-data","; JSON, image URLs, PDFs and base64 uploads are not accepted by this endpoint.",[91,92,94],"h2",{"id":93},"headers-and-form-fields","Headers and form fields",[96,97,98,114],"table",{},[99,100,101],"thead",{},[102,103,104,108,111],"tr",{},[105,106,107],"th",{},"Name",[105,109,110],{},"Required",[105,112,113],{},"Meaning",[115,116,117,131,157,170,193,210,229],"tbody",{},[102,118,119,125,128],{},[120,121,122],"td",{},[73,123,124],{},"X-API-Key",[120,126,127],{},"Yes",[120,129,130],{},"Your server-side API key.",[102,132,133,138,140],{},[120,134,135],{},[73,136,137],{},"Idempotency-Key",[120,139,127],{},[120,141,142,143,146,147,146,150,153,154,145],{},"Stable identifier for this transaction: 8–128 characters, using letters, digits, ",[73,144,145],{},".",", ",[73,148,149],{},"_",[73,151,152],{},":"," or ",[73,155,156],{},"-",[102,158,159,164,167],{},[120,160,161],{},[73,162,163],{},"Accept: application\u002Fjson",[120,165,166],{},"Recommended",[120,168,169],{},"Request a JSON response.",[102,171,172,177,186],{},[120,173,174],{},[73,175,176],{},"front",[120,178,179,180,153,183,185],{},"With ",[73,181,182],{},"both",[73,184,176],{}," mode",[120,187,188,189,192],{},"Exactly one front image; omit in ",[73,190,191],{},"back"," mode.",[102,194,195,199,205],{},[120,196,197],{},[73,198,191],{},[120,200,179,201,153,203,185],{},[73,202,182],{},[73,204,191],{},[120,206,207,208,192],{},"Exactly one back image; omit in ",[73,209,176],{},[102,211,212,217,220],{},[120,213,214],{},[73,215,216],{},"mode",[120,218,219],{},"No",[120,221,222,224,225,153,227,145],{},[73,223,182],{}," (default), ",[73,226,176],{},[73,228,191],{},[102,230,231,236,238],{},[120,232,233],{},[73,234,235],{},"profile",[120,237,219],{},[120,239,240,243,244,247,248,145],{},[73,241,242],{},"standard"," (default) or opt-in ",[73,245,246],{},"extended",". See ",[249,250,251],"a",{"href":45},"extended reading",[83,253,254,255,258,259,261,262,265,266,145],{},"Let your multipart library generate ",[73,256,257],{},"Content-Type"," with its boundary. Do not set a bare ",[73,260,88],{}," header when using ",[73,263,264],{},"FormData"," or cURL ",[73,267,268],{},"-F",[91,270,272],{"id":271},"image-requirements","Image requirements",[96,274,275,285],{},[99,276,277],{},[102,278,279,282],{},[105,280,281],{},"Property",[105,283,284],{},"Limit",[115,286,287,295,303,311,319],{},[102,288,289,292],{},[120,290,291],{},"Format",[120,293,294],{},"Static JPG, PNG or WEBP; animated images are rejected.",[102,296,297,300],{},[120,298,299],{},"File size",[120,301,302],{},"32 bytes to 5 MiB per side.",[102,304,305,308],{},[120,306,307],{},"Minimum dimensions",[120,309,310],{},"240 pixels wide and 140 pixels high.",[102,312,313,316],{},[120,314,315],{},"Maximum dimensions",[120,317,318],{},"6,000 pixels on either side and 16 megapixels total.",[102,320,321,324],{},[120,322,323],{},"Side contents",[120,325,326],{},"Front and back must have different bytes.",[83,328,329,330,333],{},"Keep the full credential visible, upright, sharply focused and free of glare. Avoid fingers covering text and large backgrounds. Passing technical limits does not establish that every character is readable. Some permitted images can still be too complex to prepare; ",[73,331,332],{},"image_too_complex"," asks for smaller dimensions or a tighter background crop.",[91,335,337],{"id":336},"responses","Responses",[83,339,340,341,344,345,348,349,152],{},"The first POST waits for the reading. A completed reading returns HTTP ",[73,342,343],{},"200","; see the ",[249,346,347],{"href":21},"response fields",". A replay while the same job is still processing can return HTTP ",[73,350,351],{},"202",[66,353,357],{"className":354,"code":355,"language":356,"meta":71,"style":71},"language-json shiki shiki-themes material-theme-lighter github-light github-light","{\n  \"request_id\": \"00000000-0000-4000-8000-000000000001\",\n  \"status\": \"processing\",\n  \"status_url\": \"\u002Fapi\u002Fv3\u002Fine\u002F00000000-0000-4000-8000-000000000001\"\n}\n","json",[73,358,359,365,394,415,435],{"__ignoreMap":71},[76,360,361],{"class":78,"line":79},[76,362,364],{"class":363},"sYEpm","{\n",[76,366,368,372,376,379,381,385,389,391],{"class":78,"line":367},2,[76,369,371],{"class":370},"s4hL5","  \"",[76,373,375],{"class":374},"sup7M","request_id",[76,377,378],{"class":370},"\"",[76,380,152],{"class":363},[76,382,384],{"class":383},"sU42L"," \"",[76,386,388],{"class":387},"sN0tt","00000000-0000-4000-8000-000000000001",[76,390,378],{"class":383},[76,392,393],{"class":363},",\n",[76,395,397,399,402,404,406,408,411,413],{"class":78,"line":396},3,[76,398,371],{"class":370},[76,400,401],{"class":374},"status",[76,403,378],{"class":370},[76,405,152],{"class":363},[76,407,384],{"class":383},[76,409,410],{"class":387},"processing",[76,412,378],{"class":383},[76,414,393],{"class":363},[76,416,418,420,423,425,427,429,432],{"class":78,"line":417},4,[76,419,371],{"class":370},[76,421,422],{"class":374},"status_url",[76,424,378],{"class":370},[76,426,152],{"class":363},[76,428,384],{"class":383},[76,430,431],{"class":387},"\u002Fapi\u002Fv3\u002Fine\u002F00000000-0000-4000-8000-000000000001",[76,433,434],{"class":383},"\"\n",[76,436,438],{"class":78,"line":437},5,[76,439,440],{"class":363},"}\n",[83,442,443,444,447,448,451,452,454,455,457,458,145],{},"The processing response includes ",[73,445,446],{},"Retry-After: 2"," and a relative ",[73,449,450],{},"Location"," matching ",[73,453,422],{},". A ",[73,456,351],{}," is a state report, not a durable-queue guarantee. Follow ",[249,459,460],{"href":17},"retrieve a result",[83,462,463,464,467,468,471,472,475],{},"API responses include ",[73,465,466],{},"X-Request-Id"," and ",[73,469,470],{},"Cache-Control: no-store",". A newly reserved reading can include ",[73,473,474],{},"Server-Timing","; its durations are diagnostic, not a latency guarantee. Parallel stage durations must not be added together.",[91,477,479],{"id":478},"quota-reservation","Quota reservation",[83,481,482,483,486,487,145],{},"Authentication, input checks and image inspection happen before reservation. A rejected request that never reserves a job consumes no reading unit. A new reservation occupies one unit. Completed readings and ",[73,484,485],{},"no_fields"," failures retain it; technical processing failures are credited back when their failure is recorded. The credit adjusts quota, not cash, and does not automatically retry the job. Historical failures retain their recorded usage. See ",[249,488,489],{"href":29},"limits and billing",[83,491,492,493,496,497,500],{},"Reusing the same key, exact images, mode and profile retrieves the same job without another unit. Different bytes or options under an existing key return ",[73,494,495],{},"409 idempotency_conflict",". New photographs require a new key and can consume another unit. Read ",[249,498,499],{"href":25},"errors and retries"," before implementing recovery.",[502,503,504],"style",{},"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 .sYEpm, html code.shiki .sYEpm{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#24292E}html pre.shiki code .s4hL5, html code.shiki .s4hL5{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#005CC5}html pre.shiki code .sup7M, html code.shiki .sup7M{--shiki-light:#9C3EDA;--shiki-default:#005CC5;--shiki-dark:#005CC5}html pre.shiki code .sU42L, html code.shiki .sU42L{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#032F62}html pre.shiki code .sN0tt, html code.shiki .sN0tt{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#032F62}",{"title":71,"searchDepth":367,"depth":367,"links":506},[507,508,509,510],{"id":93,"depth":367,"text":94},{"id":271,"depth":367,"text":272},{"id":336,"depth":367,"text":337},{"id":478,"depth":367,"text":479},"md",{},{"title":14},{"title":14,"description":15},"docs\u002F03.create-reading","jMJSslEqjqagJgkaGsh083-ezEfVINaIz33MdMgdUCQ",1790659707420]