{"openapi":"3.1.0","info":{"title":"OCR Text Extractor","description":"Send a picture, either as a public web address or as base64-encoded image data, and get back the plain text found inside it.","version":"1.0.0","contact":{"name":"_done","url":"https://forms.gle/5KzuSFH7p8hHtDmz7","email":"info@underscoredone.com"},"x-openapi-url":"https://ocr.underscoredone.com/openapi.json","x-logo":{"url":"https://underscoredone.com/logo.png","altText":"_done"},"x-guidance":"Provide either image_url or image_base64, never both. Use this when you have a picture (screenshot, scanned document, receipt, sign) and need the text inside it as plain text. Check the confidence score before trusting the result for critical decisions; low confidence means the image may be blurry or low quality.","x-ai-instructions":"Provide either image_url or image_base64, never both. Use this when you have a picture (screenshot, scanned document, receipt, sign) and need the text inside it as plain text. Check the confidence score before trusting the result for critical decisions; low confidence means the image may be blurry or low quality.","x-provider":"_done — single-purpose utility APIs for developers and AI agents. Pay per call with USDC on Base Mainnet or Solana Mainnet.","x-pricing":{"model":"pay-per-call","currency":"USDC","network":"Base Mainnet or Solana Mainnet","price":"$0.01"},"x-keywords":["text","ocr","read","image to text","extract text","screenshot reader","document scan","receipt reader","utility","api","ai-agent","pay-per-call","usdc","x402"],"x-category":"text","x-provider-url":"https://underscoredone.com","x-agentcash-auth":{"mode":"paid"},"x-402":{"price":"$0.01","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","pay_to":"0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08","facilitator":"https://api.cdp.coinbase.com/platform/v2/x402","scheme":"exact","description":"Send a picture, either as a public web address or as base64-encoded image data, and get back the plain text found inside it.","mime_type":"application/json","networks":[{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","pay_to":"0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08"},{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","pay_to":"8ugAWAXDB8V18kiUrGZTq1oMvU3C6Fxs8hfC6rvzQT3b"}]}},"paths":{"/read":{"post":{"tags":["Text"],"summary":"Pulls readable text out of a picture.","description":"Read a picture and give back the words found inside it, along with how sure the reader is.","operationId":"handler_read_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Request"}}},"required":true},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"},"examples":{"success":{"summary":"Successful response","value":{"api_version":"1.0.0","text":"TOTAL 24.50\nTHANK YOU","word_count":4,"confidence":91.4,"lang":"eng","source":"image_url"}}}}}},"422":{"description":"Unprocessable — a required field is missing or the wrong type. Check the detail field for specifics.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"array"}}}}}},"402":{"description":"Payment required. Send a signed USDC payment on Base Mainnet or Solana Mainnet using the x402 protocol.","headers":{"X-Payment-Response":{"description":"x402 payment challenge — base64-encoded JSON with payment details.","schema":{"type":"string"}}}},"400":{"description":"Bad request — your input failed validation or could not be processed. Check the detail field for specifics.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}}},"x-ai-instructions":"Provide either image_url or image_base64, never both. Use this when you have a picture (screenshot, scanned document, receipt, sign) and need the text inside it as plain text. Check the confidence score before trusting the result for critical decisions; low confidence means the image may be blurry or low quality.","x-guidance":"Provide either image_url or image_base64, never both. Use this when you have a picture (screenshot, scanned document, receipt, sign) and need the text inside it as plain text. Check the confidence score before trusting the result for critical decisions; low confidence means the image may be blurry or low quality.","x-payment-info":{"price":{"fixed":{"mode":"fixed","currency":"USD","amount":"0.01"}},"protocols":[{"x402":{}}]}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Request":{"properties":{"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url","description":"A public web address pointing to the picture. Leave this out if you are sending the picture as text instead."},"image_base64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Base64","description":"The picture encoded as text. Leave this out if you are sending a web address instead."},"lang":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang","description":"The language of the words in the picture. Only English ('eng') is supported right now.","default":"eng"}},"type":"object","title":"Request","example":{"image_url":"https://example.com/receipt.png","lang":"eng"}},"Response":{"properties":{"api_version":{"type":"string","title":"Api Version","description":"The version of this service that answered your request.","default":"1.0.0"},"text":{"type":"string","title":"Text","description":"The words found inside the picture."},"word_count":{"type":"integer","title":"Word Count","description":"How many separate words were found."},"confidence":{"type":"number","title":"Confidence","description":"How sure the reader is that it got the words right, from 0 to 100."},"lang":{"type":"string","title":"Lang","description":"The language that was used to read the picture."},"source":{"type":"string","title":"Source","description":"Whether the picture came from a web address or from text you sent directly."}},"type":"object","required":["text","word_count","confidence","lang","source"],"title":"Response","example":{"api_version":"1.0.0","confidence":91.4,"lang":"eng","source":"image_url","text":"TOTAL 24.50\nTHANK YOU","word_count":4}},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"siwx":{"type":"apiKey","in":"header","name":"SIGN-IN-WITH-X","description":"CAIP-122 wallet signature for repeat access after payment"}}},"servers":[{"url":"https://ocr.underscoredone.com","description":"Production"}],"x402Version":2,"x-payment-accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","payTo":"8ugAWAXDB8V18kiUrGZTq1oMvU3C6Fxs8hfC6rvzQT3b","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"}]}