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: ocr 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: - ocr - image to text - extract text from image - read text from image - optical character recognition - ocr api - text extraction - scanned document ocr - picture to text - read image text - ocr image - screenshot to text - text recognition 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 THANK 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 THANK 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 tags: - name: ocr - name: image to text - name: extract text from image - name: read text from image - name: optical character recognition - name: ocr api - name: text extraction - name: scanned document ocr - name: picture to text - name: read image text - name: ocr image - name: screenshot to text - name: text recognition x402Version: 2 x-payment-accepts: - scheme: exact network: eip155:8453 payTo: '0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08' asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' - scheme: exact network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp payTo: 8ugAWAXDB8V18kiUrGZTq1oMvU3C6Fxs8hfC6rvzQT3b asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v