# Dromo Docs > Developer documentation for integrating Dromo's spreadsheet importer, configuring schemas and validations, transforming data, managing import sessions, and using Dromo APIs and SDKs. - [Welcome to Dromo](https://developer.dromo.io/welcome.md): Learn how Dromo helps applications import spreadsheets with column matching, validation, transformations, and clean structured results. - [Embedded Importers](https://developer.dromo.io/getting-started/embedded.md): Choose an embedded Dromo SDK, launch the importer in your application, and understand when to use embedded or headless imports. - [JavaScript Quickstart](https://developer.dromo.io/getting-started/javascript.md): Add Dromo to a JavaScript application, configure an import schema, launch the uploader, and receive cleaned spreadsheet data. - [React Quickstart](https://developer.dromo.io/getting-started/react.md): Install the Dromo React SDK, configure the DromoUploader component, define schema fields, and process import results. - [Angular Quickstart](https://developer.dromo.io/getting-started/angular.md): Install the Dromo Angular SDK, define fields and settings, launch the spreadsheet importer, and handle completed import results. - [Headless Quickstart](https://developer.dromo.io/getting-started/headless.md): The Headless API allows you to import CSVs and spreadsheet files via an API - [Using Field Types](https://developer.dromo.io/guides/using-types.md): Choose and configure Dromo field types to validate, transform, format, and consistently output imported spreadsheet data. - [Using Schema Studio](https://developer.dromo.io/guides/schema-builder.md): Create, configure, test, and manage Dromo import schemas visually with Schema Studio in the Dromo dashboard. - [Using the Saved Schema API](https://developer.dromo.io/guides/saved-schema-api.md): Create, update, and delete saved schemas with correctly shaped names, fields, settings, validators, and serialized hook callbacks. - [Validating Multiple Rows at Once](https://developer.dromo.io/guides/validate-multiple-rows.md): Validate requirements across an entire Dromo import and block completion with the beforeFinish callback and table-level errors. - [Validating with External Data](https://developer.dromo.io/guides/validate-external-data.md): Use asynchronous Dromo row hooks to validate imported values against an external API or another remote data source. - [Concatenating and Splitting Fields via addField](https://developer.dromo.io/guides/using-addField.md): Use step hooks, addField, removeField, and row hooks to dynamically concatenate, split, add, or remove fields during an import. - [Saving & Restoring Session Progress](https://developer.dromo.io/guides/saving-progress.md): Save an in-progress Dromo import, restore it later across devices, and securely manage session and hydration tokens. - [Building a Custom Step UI](https://developer.dromo.io/guides/custom-steps.md): Inject your own UI into the Dromo import flow between any two built-in steps using iframes and postMessage. - [Customizing Styles](https://developer.dromo.io/guides/custom-styling.md): Customize the Dromo Uploader's colors, typography, buttons, steps, modals, and other visual elements with style overrides. - [Bring Your Own Storage](https://developer.dromo.io/guides/bring-your-own-storage.md): Send Dromo import files and results directly to your AWS, Google Cloud, or Azure storage bucket with Bring Your Own Storage. - [Processing Import Results in Your Application](https://developer.dromo.io/guides/handling-results.md): Process completed Dromo import data and metadata in the browser, send results to your backend, or receive them through webhooks. - [Zapier Integration](https://developer.dromo.io/guides/zapier-integration.md): Connect Dromo imports to Zapier workflows using result-file and imported-row triggers for notifications, storage, and CRM automation. - [Mapping Multiple Columns to a Single Field](https://developer.dromo.io/guides/using-manyToOne.md): Configure manyToOne fields to map a variable number of uploaded spreadsheet columns into a single Dromo schema field. - [AI Editing with User Transformations](https://developer.dromo.io/guides/using-transform-data.md): Enable Transform Data so users can describe, preview, and apply AI-generated bulk data edits from Dromo's review step. - [Accessing Unmapped Columns](https://developer.dromo.io/guides/accessing-unmapped-columns.md): How to capture and process columns that weren't mapped to your schema fields. - [Importing a PDF table with a Custom Parser](https://developer.dromo.io/guides/importing-a-pdf.md): Build a custom Dromo file parser that extracts tabular data from PDF uploads with PDFTables and PapaParse. - [DromoUploader SDK Reference](https://developer.dromo.io/reference/dromo-uploader-sdk.md): Detailed reference for the DromoUploader JavaScript SDK instance, its constructor, and configuration methods. - [ Component Props](https://developer.dromo.io/reference/react-dromo-uploader.md): Reference for props accepted by the DromoUploader React component. - [Settings](https://developer.dromo.io/reference/settings/settings.md): Settings are supplied as an object to the Dromo instance on initialization. For details on how to supply settings to Dromo, see the Getting Started guide for the SDK you are using. - [Style Overrides](https://developer.dromo.io/reference/settings/style-overrides.md): Customize the Dromo Uploader with your own CSS styles. - [Deprecated Settings](https://developer.dromo.io/reference/settings/deprecated.md): Deprecated settings are settings that are no longer supported and will be removed in a future version of Dromo. These settings are provided for backwards compatibility and will be removed in a future version of Dromo. - [Fields](https://developer.dromo.io/reference/fields/fields.md): To implement Dromo in your application, you must first define a schema. A schema is an array of field objects. These fields will be matched to columns during the import process, and define the properties of the JSON payload passed back in the results. - [Field Types](https://developer.dromo.io/reference/fields/field-types.md): Dromo supports a variety of field types, each with their own unique properties and behaviors. This section describes the different types of fields available and their usage. - [Field Validators](https://developer.dromo.io/reference/fields/field-validators.md): Field validators allow you to enforce stricter rules about the data a user can import. - [Hooks](https://developer.dromo.io/reference/hooks.md): Reference for column, row, bulk row, and step hooks, including callback inputs and outputs, row-cell transformations, dynamic fields with addField, validation messages, and lifecycle timing. - [onUserEvent](https://developer.dromo.io/reference/on-user-event.md): Receive real-time notifications when a user interacts with specific UI controls inside the Dromo importer. - [Custom Steps](https://developer.dromo.io/reference/custom-steps.md): Reference for the custom step configuration and the postMessage API for injecting custom UI into the Dromo import flow. - [The User Object](https://developer.dromo.io/reference/users.md): Attach metadata about the end user launching a Dromo import with the user object and receive it alongside completed upload data. - [Import Results Callbacks and Metadata](https://developer.dromo.io/reference/results.md): Reference for Dromo's onResults and beforeFinish callbacks, returned row data, import metadata, and completion control. - [Custom File Parsers](https://developer.dromo.io/reference/custom-file-parsers.md): Custom file parsers allow you to parse any file format by giving you control of the parsing logic. Dromo natively supports common CSV and Excel formats, but with custom file parsers you can enable your users to import PDF, XML, HTML, or any other file type when you implement the file parsing. - [Webhooks](https://developer.dromo.io/reference/webhooks.md): You can use webhooks to get notified when your users complete an import using Dromo. - [FAQs](https://developer.dromo.io/faqs.md): Find answers to common questions about Dromo's spreadsheet importer, security, supported files, integrations, billing, and product capabilities. - [Changelog](https://developer.dromo.io/changelog.md): Review Dromo product releases, new SDK and API capabilities, behavior changes, accessibility improvements, and bug fixes. - [Authentication](https://developer.dromo.io/api-reference/authentication.md): Authenticate Dromo REST API requests with frontend or backend API keys and keep privileged credentials secure. - [Get all import schemas](https://developer.dromo.io/api-reference/import-schemas/get-all-import-schemas.md): Returns all saved import schemas available to the authenticated Dromo organization. - [Create a new import schema](https://developer.dromo.io/api-reference/import-schemas/create-a-new-import-schema.md): Creates a saved import schema with fields, settings, and optional hooks for reuse in Dromo imports. - [Get an import schema](https://developer.dromo.io/api-reference/import-schemas/get-an-import-schema.md): Returns one saved import schema by ID, including its fields, settings, and hooks. - [Update an import schema](https://developer.dromo.io/api-reference/import-schemas/update-an-import-schema.md): Replaces the fields, settings, and hooks of an existing saved import schema identified by ID. - [Delete an import schema](https://developer.dromo.io/api-reference/import-schemas/delete-an-import-schema.md): Permanently deletes a saved import schema identified by ID. - [Get all uploads](https://developer.dromo.io/api-reference/uploads/get-all-uploads.md): Lists completed Dromo uploads for the authenticated organization, optionally filtered by a start and end date. - [Get upload metadata](https://developer.dromo.io/api-reference/uploads/get-upload-metadata.md): Returns metadata for a completed Dromo upload, including information about its schema, user, and results. - [Delete an upload permanently](https://developer.dromo.io/api-reference/uploads/delete-an-upload-permanently.md): Permanently deletes a completed upload and its stored data from Dromo. - [Get presigned download URL for upload data](https://developer.dromo.io/api-reference/uploads/get-presigned-download-url-for-upload-data.md): Creates a temporary presigned URL for securely downloading the data from a completed upload. - [Retrieve headless import](https://developer.dromo.io/api-reference/headless/retrieve-headless-import.md): Returns the current status and available result or review information for a headless import by ID. - [Delete headless import](https://developer.dromo.io/api-reference/headless/delete-headless-import.md): Permanently deletes a headless import identified by ID. - [Get presigned download URL for headless import data](https://developer.dromo.io/api-reference/headless/get-presigned-download-url-for-headless-import-data.md): Creates a temporary presigned URL for downloading the processed data from a successful headless import. - [List headless imports](https://developer.dromo.io/api-reference/headless/list-headless-imports.md): Returns a paginated list of headless imports for the authenticated Dromo organization. - [Create a new headless import](https://developer.dromo.io/api-reference/headless/create-a-new-headless-import.md): Starts a headless import from an uploaded file or data payload using a saved or inline schema. - [List SFTP credentials](https://developer.dromo.io/api-reference/sftp-credentials/list-sftp-credentials.md): Returns the SFTP credential configurations available to the authenticated Dromo organization. - [Create SFTP credentials](https://developer.dromo.io/api-reference/sftp-credentials/create-sftp-credentials.md): Creates an SFTP credential configuration for connecting Dromo to an SFTP server. - [Retrieve SFTP credentials](https://developer.dromo.io/api-reference/sftp-credentials/retrieve-sftp-credentials.md): Returns one SFTP credential configuration by ID without exposing secret credential values. - [Update SFTP credentials](https://developer.dromo.io/api-reference/sftp-credentials/update-sftp-credentials.md): Updates an existing SFTP credential configuration identified by ID. - [Delete SFTP credentials](https://developer.dromo.io/api-reference/sftp-credentials/delete-sftp-credentials.md): Deletes an SFTP credential configuration identified by ID. - [Test SFTP connection](https://developer.dromo.io/api-reference/sftp-credentials/test-sftp-connection.md): Tests whether Dromo can connect to the SFTP server using the selected credential configuration. - [List SFTP connectors](https://developer.dromo.io/api-reference/sftp-connectors/list-sftp-connectors.md): Returns the automated SFTP import connectors configured for the authenticated Dromo organization. - [Create SFTP connector](https://developer.dromo.io/api-reference/sftp-connectors/create-sftp-connector.md): Creates an automated SFTP connector that imports files using configured credentials and schema settings. - [Retrieve SFTP connector](https://developer.dromo.io/api-reference/sftp-connectors/retrieve-sftp-connector.md): Returns one automated SFTP connector and its import configuration by ID. - [Update SFTP connector](https://developer.dromo.io/api-reference/sftp-connectors/update-sftp-connector.md): Updates an existing automated SFTP connector identified by ID. - [Delete SFTP connector](https://developer.dromo.io/api-reference/sftp-connectors/delete-sftp-connector.md): Deletes an automated SFTP connector identified by ID. - [Create a session](https://developer.dromo.io/api-reference/sessions/create-a-session.md): Creates a new partial-import session and mints the initial hydration token to pass to the widget. Requires your **backend** license key — never call this client-side. - [Resume a session (re-issue hydrationId)](https://developer.dromo.io/api-reference/sessions/resume-a-session-re-issue-hydrationid.md): Issues a fresh `hydrationId` for an existing session. Call this server-side when the user returns after their previous token has expired. The new token must belong to the same org as the session. - [Delete a session](https://developer.dromo.io/api-reference/sessions/delete-a-session.md): Permanently deletes the session and its saved state. All hydration tokens for this session are immediately invalidated — subsequent widget calls with the old `hydrationId` return 403. Idempotent: returns `{"success": true}` even if the session was already deleted. ## OpenAPI Specs - [openapi](/api-reference/openapi.json) - [sessions-openapi](/api-reference/sessions-openapi.json)