[{"data":1,"prerenderedAt":378},["ShallowReactive",2],{"docs-navigation":3,"doc-\u002Fdocs\u002Fretrieve-result":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":18,"body":62,"description":19,"extension":372,"meta":373,"navigation":374,"path":17,"seo":375,"stem":376,"__hash__":377},"docs\u002Fdocs\u002F04.retrieve-result.md",{"type":63,"value":64,"toc":367},"minimark",[65,82,90,186,189,194,205,216,219,223,334,341,345,352,363],[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","GET https:\u002F\u002Focr.ecostudios.dev\u002Fapi\u002Fv3\u002Fine\u002F{request_id}\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",{},"Send the API key belonging to the company that created the job. An ",[73,87,88],{},"Idempotency-Key"," and image files are not needed for GET.",[66,91,95],{"className":92,"code":93,"language":94,"meta":71,"style":71},"language-bash shiki shiki-themes material-theme-lighter github-light github-light","curl --max-time 90 --include \\\n  \"https:\u002F\u002Focr.ecostudios.dev\u002Fapi\u002Fv3\u002Fine\u002F$REQUEST_ID\" \\\n  -H \"X-API-Key: $INE_API_KEY\" \\\n  -H 'Accept: application\u002Fjson' \\\n  -H 'User-Agent: ine-api-backend-example\u002F1.0'\n","bash",[73,96,97,118,138,157,173],{"__ignoreMap":71},[76,98,99,103,107,111,114],{"class":78,"line":79},[76,100,102],{"class":101},"sDrxt","curl",[76,104,106],{"class":105},"s3mjZ"," --max-time",[76,108,110],{"class":109},"szT0U"," 90",[76,112,113],{"class":105}," --include",[76,115,117],{"class":116},"sitYm"," \\\n",[76,119,121,125,129,133,136],{"class":78,"line":120},2,[76,122,124],{"class":123},"sU42L","  \"",[76,126,128],{"class":127},"sN0tt","https:\u002F\u002Focr.ecostudios.dev\u002Fapi\u002Fv3\u002Fine\u002F",[76,130,132],{"class":131},"sQha-","$REQUEST_ID",[76,134,135],{"class":123},"\"",[76,137,117],{"class":116},[76,139,141,144,147,150,153,155],{"class":78,"line":140},3,[76,142,143],{"class":105},"  -H",[76,145,146],{"class":123}," \"",[76,148,149],{"class":127},"X-API-Key: ",[76,151,152],{"class":131},"$INE_API_KEY",[76,154,135],{"class":123},[76,156,117],{"class":116},[76,158,160,162,165,168,171],{"class":78,"line":159},4,[76,161,143],{"class":105},[76,163,164],{"class":123}," '",[76,166,167],{"class":127},"Accept: application\u002Fjson",[76,169,170],{"class":123},"'",[76,172,117],{"class":116},[76,174,176,178,180,183],{"class":78,"line":175},5,[76,177,143],{"class":105},[76,179,164],{"class":123},[76,181,182],{"class":127},"User-Agent: ine-api-backend-example\u002F1.0",[76,184,185],{"class":123},"'\n",[83,187,188],{},"This command may print personal data. Use it only in a private environment.",[190,191,193],"h2",{"id":192},"polling","Polling",[83,195,196,197,200,201,204],{},"When a response is ",[73,198,199],{},"202",", wait for ",[73,202,203],{},"Retry-After"," before another GET. The normal processing interval is two seconds. Set a bounded wait in your application, then let the user check later if the job remains in progress.",[83,206,207,208,211,212,215],{},"Validate that ",[73,209,210],{},"status_url"," is exactly ",[73,213,214],{},"\u002Fapi\u002Fv3\u002Fine\u002F{request_id}"," for the UUID in the response. Build the GET URL on your configured API origin. Never forward the API key to an arbitrary status URL or follow a redirect automatically.",[83,217,218],{},"GET reads the current job state. It does not restart extraction, resume interrupted work or consume another reading unit. You can retrieve an existing job even when the company's new-job or monthly allowance is exhausted.",[190,220,222],{"id":221},"status-handling","Status handling",[224,225,226,239],"table",{},[227,228,229],"thead",{},[230,231,232,236],"tr",{},[233,234,235],"th",{},"HTTP",[233,237,238],{},"Meaning",[240,241,242,257,268,278,288,302,312,324],"tbody",{},[230,243,244,250],{},[245,246,247],"td",{},[73,248,249],{},"200",[245,251,252,253,256],{},"The reading succeeded. Review and consume ",[73,254,255],{},"data",".",[230,258,259,263],{},[245,260,261],{},[73,262,199],{},[245,264,265,266,256],{},"The job is still processing. Poll after ",[73,267,203],{},[230,269,270,275],{},[245,271,272],{},[73,273,274],{},"401",[245,276,277],{},"Authentication is missing, invalid or revoked.",[230,279,280,285],{},[245,281,282],{},[73,283,284],{},"404",[245,286,287],{},"The job is not available to this company, or the identifier is unknown.",[230,289,290,295],{},[245,291,292],{},[73,293,294],{},"409",[245,296,297,298,301],{},"Submission could not be confirmed. Follow ",[73,299,300],{},"error.action","; do not create a retry loop.",[230,303,304,309],{},[245,305,306],{},[73,307,308],{},"410",[245,310,311],{},"The result's access window has expired.",[230,313,314,319],{},[245,315,316],{},[73,317,318],{},"422",[245,320,321,322,256],{},"The reserved job failed. This is terminal; follow ",[73,323,300],{},[230,325,326,331],{},[245,327,328],{},[73,329,330],{},"503",[245,332,333],{},"The result or service could not be accessed. Inspect the structured error.",[83,335,336,337,340],{},"Not every error's ",[73,338,339],{},"request_id"," represents a reserved job. For example, a validation rejection can have a support identifier without a retrievable result.",[190,342,344],{"id":343},"expiry","Expiry",[83,346,347,348,351],{},"Current results are accessible for 23 hours from reservation. ",[73,349,350],{},"expires_at"," states the deadline. Save needed data in your own system before then. An expired key replay does not create a fresh reading or extend retention.",[83,353,354,355,358,359,362],{},"A historical compatible result can have ",[73,356,357],{},"expires_at: null","; that does not promise indefinite access. Jobs are shared across API versions, so you can retrieve an existing job through the English ",[73,360,361],{},"\u002Fapi\u002Fv3"," route without another extraction.",[364,365,366],"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 .sDrxt, html code.shiki .sDrxt{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#6F42C1}html pre.shiki code .s3mjZ, html code.shiki .s3mjZ{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#005CC5}html pre.shiki code .szT0U, html code.shiki .szT0U{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#005CC5}html pre.shiki code .sitYm, html code.shiki .sitYm{--shiki-light:#90A4AE;--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}html pre.shiki code .sQha-, html code.shiki .sQha-{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#24292E}",{"title":71,"searchDepth":120,"depth":120,"links":368},[369,370,371],{"id":192,"depth":120,"text":193},{"id":221,"depth":120,"text":222},{"id":343,"depth":120,"text":344},"md",{},{"title":18},{"title":18,"description":19},"docs\u002F04.retrieve-result","9pCY2M2nmYi7JY9C1H2QrTljFpebupHgrz353Q7AvD0",1790659707420]