# Docutray > Docutray is a document processing platform that converts any document > into structured data using AI-powered OCR, with validation workflows > and a multi-tenant REST API. Getting Started [#getting-started] This guide will help you get started with DocuTray quickly. Creating an Account [#creating-an-account] To start using DocuTray, you need to create an account by following these steps: 1. Visit the registration page at [https://app.docutray.com/register](https://app.docutray.com/register) DocuTray Registration Page 2. Complete the required fields: * **Full Name**: Enter your first and last name * **Email**: Use a valid email address * **Password**: Create a secure password (minimum 8 characters) * **Confirm Password**: Repeat the password for verification Completed Registration Form 3. Click the "Register" button 4. You will receive a confirmation email at the provided address. Open this email and click the verification link. Verification Email 5. Done! Once your account is verified, you can log in and start using DocuTray. If you already have an account, you can go directly to the [login page](https://app.docutray.com/login). Creating an API Key [#creating-an-api-key] After creating your account, you can generate an API Key to integrate DocuTray with your applications by following these steps: 1. Log in to your DocuTray account at [https://app.docutray.com/login](https://app.docutray.com/login) 2. Select the organization you want to work with 3. Navigate to "Account" > "API Keys" in the navigation menu API Keys Menu 4. Click the "New API Key" button 5. Enter a descriptive name for your API Key and click "Create" Create New API Key 6. Copy the generated API Key and store it in a safe place. **Important**: This will be the only time you can see the complete key. Copy API Key You can now use this API Key to authenticate your requests to the DocuTray API. Your First Conversion [#your-first-conversion] Once you have your API Key, you can process your first document with a simple API call. Supported File Formats [#supported-file-formats] DocuTray supports the following file formats: * **Images**: JPEG, PNG, GIF, BMP, WebP * **Documents**: PDF (up to 100MB) Making the API Call [#making-the-api-call] ```bash curl -X POST https://app.docutray.com/api/convert \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "image=@invoice.pdf" \ -F "document_type_code=invoice" ``` The API will return extracted data in JSON format according to your document type schema: ```json { "data": { "numero_factura": "F-2024-001", "fecha_emision": "2024-01-15", "rfc_emisor": "XAXX010101000", "razon_social_emisor": "Empresa Ejemplo S.A. de C.V.", "subtotal": 1000, "iva": 160, "total": 1160 } } ``` > **Tip**: For large files or batch processing, use the [async conversion endpoint](/docs/api/convert-async/post) which processes documents in the background and allows you to check the status later. Next Steps [#next-steps] Now that you've completed your first conversion, explore these resources: * **[Document Types](/docs/document-types)** - Browse available document types and their schemas * **[API Reference](/docs/api)** - Complete API documentation with all endpoints * **[Webhooks](/docs/webhooks)** - Set up webhooks to receive conversion results automatically * **[Guides](/docs/guides)** - Step-by-step tutorials for common use cases ## Document Types - [Document Types](https://docs.docutray.com/docs/document-types): Detailed documentation of document types supported by the Docutray API DocuTray supports the processing of multiple document types. Below you will find detailed documentation for each type, including its API code, data structure, and usage examples. Financial Documents [#financial-documents] Tax Documents [#tax-documents] Labor Documents [#labor-documents] Medical Documents [#medical-documents] International Commerce Documents [#international-commerce-documents] ## Webhooks - [Webhooks](https://docs.docutray.com/docs/webhooks): Configuration and usage of webhooks to receive real-time notifications - [Webhook Configuration](https://docs.docutray.com/docs/webhooks/configuracion): Step-by-step guide to configure and manage webhooks in Docutray - [Security and Signature Verification](https://docs.docutray.com/docs/webhooks/seguridad): Signature verification methods for webhooks and replay attack protection Webhooks [#webhooks] Webhooks allow you to receive real-time notifications about events that occur in your Docutray account. When you configure a webhook, Docutray will send an HTTP POST request to the URL you specify each time an event you've subscribed to occurs. Available Webhook Types [#available-webhook-types] Docutray supports three types of webhooks, each designed for different use cases: Receive notifications during document processing when using a specific document type to extract structured data. Receive notifications during the automatic document type identification process. Receive notifications during the execution of individual steps in document processing workflows. Configuration Guides [#configuration-guides] Learn how to configure and manage webhooks in your Docutray account. Protect your endpoints with HMAC signature verification and replay attack prevention. Sample code in Node.js and Python to implement webhooks. Key Features [#key-features] * **Real-time notifications**: Receive events immediately as they occur * **Multiple events**: Subscribe to specific events based on your needs * **Robust security**: HMAC signature verification with two methods available * **Automatic retries**: Retry system with exponential backoff * **Flexible management**: Enable, disable, or delete webhooks without affecting your integration Next Steps [#next-steps] 1. **[Configuration](/docs/webhooks/configuracion)**: Start by setting up your first webhook 2. **[Security](/docs/webhooks/seguridad)**: Implement signature verification on your endpoint 3. **Select your webhook type**: Choose between Conversion, Identification, or Steps based on your use case 4. **[Examples](/docs/webhooks/ejemplos)**: Review sample code for your preferred language ## Guides - [User Guides](https://docs.docutray.com/docs/guides): Step-by-step guides to use Docutray features - [Create Document Type](https://docs.docutray.com/docs/guides/crear-tipo-documento): Step-by-step guide to create custom document types using the AI-powered creation wizard User Guides [#user-guides] Find detailed guides to get the most out of Docutray's features. Document Management [#document-management] Configuration [#configuration] ## Node.js SDK - [Node.js SDK](https://docs.docutray.com/docs/node-sdk): API reference for the DocuTray Node.js SDK - [Client](https://docs.docutray.com/docs/node-sdk/client): DocuTray client class and configuration options - [Errors](https://docs.docutray.com/docs/node-sdk/errors): Error hierarchy for error handling in the DocuTray Node.js SDK This is the API reference for the DocuTray Node.js SDK. Installation [#installation] ```bash npm install docutray ``` Quick Start [#quick-start] ```ts import DocuTray from 'docutray'; const client = new DocuTray(); // uses DOCUTRAY_API_KEY env var const result = await client.convert.run({ documentTypeCode: 'invoice', url: 'https://example.com/invoice.pdf', }); ``` Modules [#modules] Client [#client] The main entry point for the SDK: * [`DocuTray`](/docs/node-sdk/client) - Client class with resource properties Errors [#errors] Error handling classes: * [Error Hierarchy](/docs/node-sdk/errors) Resources [#resources] API resource classes: * [Convert](/docs/node-sdk/resources/convert) - Document conversion * [Identify](/docs/node-sdk/resources/identify) - Document identification * [DocumentTypes](/docs/node-sdk/resources/document-types) - Document type catalog * [Steps](/docs/node-sdk/resources/steps) - Step execution * [KnowledgeBases](/docs/node-sdk/resources/knowledge-bases) - Knowledge base operations Types [#types] Response and model types: * [Convert Types](/docs/node-sdk/types/convert) * [Identify Types](/docs/node-sdk/types/identify) * [Document Type Types](/docs/node-sdk/types/document-type) * [Step Types](/docs/node-sdk/types/step) * [Knowledge Base Types](/docs/node-sdk/types/knowledge-base) * [Shared Types](/docs/node-sdk/types/shared) ## Python SDK - [Python SDK](https://docs.docutray.com/docs/python-sdk): API reference for the DocuTray Python SDK - [Client](https://docs.docutray.com/docs/python-sdk/client): Synchronous and asynchronous client classes for the DocuTray API - [Exceptions](https://docs.docutray.com/docs/python-sdk/exceptions): Exception hierarchy for error handling in the DocuTray Python SDK This is the API reference for the DocuTray Python SDK. Installation [#installation] ```bash pip install docutray ``` Modules [#modules] Client [#client] The main entry points for the SDK: * [`Client`](/docs/python-sdk/client#client) - Synchronous client * [`AsyncClient`](/docs/python-sdk/client#asyncclient) - Asynchronous client Exceptions [#exceptions] Error handling classes: * [Exception Hierarchy](/docs/python-sdk/exceptions) Resources [#resources] API resource classes: * [Convert](/docs/python-sdk/resources/convert) - Document conversion * [Identify](/docs/python-sdk/resources/identify) - Document identification * [DocumentTypes](/docs/python-sdk/resources/document_types) - Document type catalog * [Steps](/docs/python-sdk/resources/steps) - Step execution * [KnowledgeBases](/docs/python-sdk/resources/knowledge_bases) - Knowledge base operations Types [#types] Response and model types: * [Convert Types](/docs/python-sdk/types/convert) * [Identify Types](/docs/python-sdk/types/identify) * [Document Type Types](/docs/python-sdk/types/document_type) * [Step Types](/docs/python-sdk/types/step) * [Knowledge Base Types](/docs/python-sdk/types/knowledge_base) * [Shared Types](/docs/python-sdk/types/shared) ## Optional - [Electronic Invoice](https://docs.docutray.com/docs/document-types/factura): Detailed documentation of the Electronic Invoice data structure - [Invoice](https://docs.docutray.com/docs/document-types/invoice): Detailed documentation of invoice data structure - [Professional Fee Receipt](https://docs.docutray.com/docs/document-types/boleta_honorarios): Detailed documentation of the Professional Fee Receipt data structure - [Payroll](https://docs.docutray.com/docs/document-types/liquidacion_sueldo): Detailed documentation of the Payroll data structure - [AFP Contributions Certificate](https://docs.docutray.com/docs/document-types/cotizaciones_afp): Detailed documentation of the AFP Contributions Certificate data structure - [Current Account Statement](https://docs.docutray.com/docs/document-types/cartola_cc): Detailed documentation of the current account statement data structure - [Credit Card Statement](https://docs.docutray.com/docs/document-types/cartola_tc): Detailed documentation of the credit card statement data structure - [8-Column Balance Sheet](https://docs.docutray.com/docs/document-types/balance_ocho_columnas): Detailed documentation of the 8-Column Balance Sheet data structure - [Bill of Lading](https://docs.docutray.com/docs/document-types/bl): Detailed documentation of the Bill of Lading data structure - [Curriculum Vitae](https://docs.docutray.com/docs/document-types/cv): Detailed documentation of the Curriculum Vitae data structure - [Purchase Order](https://docs.docutray.com/docs/document-types/oc): Detailed documentation of the Purchase Order data structure - [Promissory Note](https://docs.docutray.com/docs/document-types/pagare): Detailed documentation of the Promissory Note data structure - [Medical Prescription](https://docs.docutray.com/docs/document-types/receta_medica): Detailed documentation of the Medical Prescription data structure - [Transbank Voucher](https://docs.docutray.com/docs/document-types/voucher_transbank): Detailed documentation of the Transbank Voucher data structure - [Conversion Events](https://docs.docutray.com/docs/webhooks/conversion): Webhooks for document processing with structured data extraction - [Identification Events](https://docs.docutray.com/docs/webhooks/identificacion): Webhooks for automatic document type identification - [Steps Events](https://docs.docutray.com/docs/webhooks/steps): Webhooks for step execution in document processing workflows - [Implementation Examples](https://docs.docutray.com/docs/webhooks/ejemplos): Complete implementation examples of webhooks in different languages and frameworks - [Convert](https://docs.docutray.com/docs/node-sdk/resources/convert): Node.js SDK - Document conversion resource - [Identify](https://docs.docutray.com/docs/node-sdk/resources/identify): Node.js SDK - Document identification resource - [Document Types](https://docs.docutray.com/docs/node-sdk/resources/document-types): Node.js SDK - Document type catalog resource - [Steps](https://docs.docutray.com/docs/node-sdk/resources/steps): Node.js SDK - Step execution resource - [Knowledge Bases](https://docs.docutray.com/docs/node-sdk/resources/knowledge-bases): Node.js SDK - Knowledge base management resource - [Convert Types](https://docs.docutray.com/docs/node-sdk/types/convert): Node.js SDK - Conversion type definitions - [Identify Types](https://docs.docutray.com/docs/node-sdk/types/identify): Node.js SDK - Identification type definitions - [Document Type Types](https://docs.docutray.com/docs/node-sdk/types/document-type): Node.js SDK - Document type definitions - [Step Types](https://docs.docutray.com/docs/node-sdk/types/step): Node.js SDK - Step execution type definitions - [Knowledge Base Types](https://docs.docutray.com/docs/node-sdk/types/knowledge-base): Node.js SDK - Knowledge base type definitions - [Shared Types](https://docs.docutray.com/docs/node-sdk/types/shared): Node.js SDK - Shared type definitions - [Convert](https://docs.docutray.com/docs/python-sdk/resources/convert): Python SDK - Convert resource API reference - [Identify](https://docs.docutray.com/docs/python-sdk/resources/identify): Python SDK - Identify resource API reference - [Document Types](https://docs.docutray.com/docs/python-sdk/resources/document_types): Python SDK - Document Types resource API reference - [Steps](https://docs.docutray.com/docs/python-sdk/resources/steps): Python SDK - Steps resource API reference - [Knowledge Bases](https://docs.docutray.com/docs/python-sdk/resources/knowledge_bases): Python SDK - Knowledge Bases resource API reference - [Convert Types](https://docs.docutray.com/docs/python-sdk/types/convert): Python SDK - Convert type definitions - [Identify Types](https://docs.docutray.com/docs/python-sdk/types/identify): Python SDK - Identify type definitions - [Document Type Types](https://docs.docutray.com/docs/python-sdk/types/document_type): Python SDK - Document Type type definitions - [Step Types](https://docs.docutray.com/docs/python-sdk/types/step): Python SDK - Step type definitions - [Knowledge Base Types](https://docs.docutray.com/docs/python-sdk/types/knowledge_base): Python SDK - Knowledge Base type definitions - [Shared Types](https://docs.docutray.com/docs/python-sdk/types/shared): Python SDK - Shared type definitions - [API Reference](https://docs.docutray.com/docs/api): Complete documentation of the Docutray REST API - [Convert documents to structured data using OCR](https://docs.docutray.com/docs/api/conversion/convertDocument): Process documents and extract structured data using AI-powered OCR. - [Start asynchronous document conversion using OCR](https://docs.docutray.com/docs/api/conversion/convertDocumentAsync): Process documents asynchronously and extract structured data using AI-powered OCR. - [Check asynchronous conversion status](https://docs.docutray.com/docs/api/conversion/getConversionStatus): Retrieve the current status and result of an asynchronous conversion. - [Get document type by ID](https://docs.docutray.com/docs/api/document-types/getDocumentType): Retrieves details of a specific document type based on user permissions - [List accessible document types](https://docs.docutray.com/docs/api/document-types/listDocumentTypes): Retrieves the list of document types the user has access to. - [Validate document against document type](https://docs.docutray.com/docs/api/document-types/validateDocument): Validates a JSON document against the validation rules of the document type. - [Check asynchronous identification status](https://docs.docutray.com/docs/api/identification/getIdentificationStatus): Check the status and result of an identification started asynchronously - [Identify document type from an image](https://docs.docutray.com/docs/api/identification/identifyDocument): Automatically identify the document type from a provided list of options. - [Start asynchronous document type identification](https://docs.docutray.com/docs/api/identification/identifyDocumentAsync): Identify the document type asynchronously from a provided list of options. - [Bulk upload documents with real-time progress](https://docs.docutray.com/docs/api/knowledge-base-documents/bulkUploadKnowledgeBaseDocuments): Uploads multiple documents to a Knowledge Base using Server-Sent Events (SSE) - [Delete document from Knowledge Base](https://docs.docutray.com/docs/api/knowledge-base-documents/deleteKnowledgeBaseDocument): Deletes a specific document from the Knowledge Base. - [Get specific document from Knowledge Base](https://docs.docutray.com/docs/api/knowledge-base-documents/getKnowledgeBaseDocument): Retrieves a specific document by its ID within a Knowledge Base. - [List documents in a Knowledge Base](https://docs.docutray.com/docs/api/knowledge-base-documents/listKnowledgeBaseDocuments): Retrieves the list of documents in a specific Knowledge Base. - [Update document in Knowledge Base](https://docs.docutray.com/docs/api/knowledge-base-documents/updateKnowledgeBaseDocument): Updates the content and metadata of an existing document. - [Add document to Knowledge Base](https://docs.docutray.com/docs/api/knowledge-base-documents/uploadKnowledgeBaseDocument): Adds a new document to the Knowledge Base with automatic embedding generation. - [Advanced semantic search](https://docs.docutray.com/docs/api/knowledge-base-search/searchKnowledgeBase): Performs semantic search with advanced options via POST. - [Semantic search in Knowledge Base](https://docs.docutray.com/docs/api/knowledge-base-search/searchKnowledgeBaseGet): Performs semantic search using vector similarity in a specific Knowledge Base. - [Manual Knowledge Base synchronization](https://docs.docutray.com/docs/api/knowledge-base-sync/syncKnowledgeBase): Triggers manual synchronization of a Knowledge Base. - [Create new Knowledge Base](https://docs.docutray.com/docs/api/knowledge-bases/createKnowledgeBase): Creates a new Knowledge Base for the authenticated user's organization. - [Delete a Knowledge Base](https://docs.docutray.com/docs/api/knowledge-bases/deleteKnowledgeBase): Deletes a Knowledge Base (soft delete - marks as inactive). - [Get details of a specific Knowledge Base](https://docs.docutray.com/docs/api/knowledge-bases/getKnowledgeBase): Retrieves the complete details of a Knowledge Base by its ID. - [List organization's Knowledge Bases](https://docs.docutray.com/docs/api/knowledge-bases/listKnowledgeBases): Retrieves the list of Knowledge Bases for the authenticated user's organization. - [Update a Knowledge Base](https://docs.docutray.com/docs/api/knowledge-bases/updateKnowledgeBase): Updates the details of an existing Knowledge Base. - [Execute a document processing step asynchronously](https://docs.docutray.com/docs/api/steps/executeStepAsync): Process documents using the specified Step configuration asynchronously. - [Get step execution status](https://docs.docutray.com/docs/api/steps/getStepExecutionStatus): Retrieves the current status and results of a step execution with standardized response format.