> ## Documentation Index
> Fetch the complete documentation index at: https://www.algolia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Send and update your data

> Choose how to send data to Algolia based on where your data is stored and how you want to send updates.

export const Records = () => <Tooltip tip="A record is a searchable object in an Algolia index. Each record consists of named attributes." cta="Algolia records" href="/doc/guides/sending-and-managing-data/prepare-your-data#algolia-records">
    records
  </Tooltip>;

export const Index = () => <Tooltip tip="An Algolia index is a searchable dataset that consists of records and configuration settings. These settings define how the records are searched and ranked.">
    index
  </Tooltip>;

export const AcademyLink = ({href, title}) => {
  return <Card horizontal title="Algolia Academy" href={href} icon="square-play">Learn more about: {title}</Card>;
};

Algolia doesn't query your database.
It searches a copy of your data, stored as <Records /> in an <Index />.

After you've [structured your data](/doc/guides/sending-and-managing-data/prepare-your-data) into records,
choose how to send them to Algolia.

<AcademyLink href="https://academy.algolia.com/training/0199aaf1-800d-7fcf-aa9e-82636cfcf669/overview" title="Pushing Data to Algolia" />

## Choose how to send your data

Start with two questions.
Where is your data stored?
How to send it to Algolia?

### Index from a platform

If your data is in one of these platforms,
use an [integration](/doc/integration):
Shopify, Adobe Commerce, BigCommerce, commercetools, Salesforce B2C Commerce, or Zendesk.

Each integration copies your catalog to an index and sends the changes.
Shopify and BigCommerce also provide a search UI and can send click and conversion events.

### Let Algolia get your data

If Algolia can get your data directly,
use a [connector](/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors).
Examples are a hosted JSON or CSV file, MySQL, Elasticsearch, BigQuery, Supabase, or an Algolia index.

Algolia keeps the schedule, the retries, and the transformations.
Configure them in the Algolia dashboard without deploying code.

### Index a website

If your content is only web pages, and you don't have an API or database export,
use the [Crawler](/doc/tools/crawler/getting-started/overview).
The Crawler extracts content from your pages and turns it into records.

### Send records from your app

If your app controls which records to send and when, use code.

If your records need an Algolia-managed [transformation](/doc/guides/sending-and-managing-data/send-and-update-your-data/how-to/transform-your-data-with-code),
use the [Push to Algolia connector](/doc/guides/sending-and-managing-data/send-and-update-your-data/connectors/push).
If your records don't need a transformation,
use an [API client](/doc/guides/sending-and-managing-data/send-and-update-your-data/how-to/importing-with-the-api)
or a [web framework integration](/doc/framework-integration).

### Test with a local file

To test Algolia with sample data,
[upload a file in the Algolia dashboard](/doc/guides/sending-and-managing-data/send-and-update-your-data/how-to/importing-from-the-dashboard)
or use the [Algolia CLI](/doc/tools/cli/get-started).
For a source that changes, use one of the other methods.

## Update your data

After the first import, send the changes from your source to your index.

* [Incremental updates](/doc/guides/sending-and-managing-data/send-and-update-your-data/how-to/incremental-updates)
* [Data synchronization strategies](/doc/guides/sending-and-managing-data/send-and-update-your-data/in-depth/the-different-synchronization-strategies)
* [Index operations are asynchronous](/doc/guides/sending-and-managing-data/send-and-update-your-data/in-depth/index-operations-are-asynchronous)
* [Handle concurrency with versioning](/doc/guides/sending-and-managing-data/send-and-update-your-data/in-depth/handling-concurrency-with-versioning)
