# Migration guide

Move your web data collection to a maintained REST API while keeping the parts of your application that already work. Start with one source, compare the output, then switch your pipeline over.

Still choosing an integration approach? Review the [workflow comparisons](/switch/) before planning the move.

## Start with one source

Choose a collection your application already uses. Bring its URL, a sample of your current output, and a list of the fields your application needs.

Write down the scope of the collection: filters, pages, detail fields, and how often you collect it. This gives you a concrete baseline to compare against.

## Build your replacement API

Open the [API generator](/start/) with your collection URL. Review the available data types, select the collection you need, and continue through field review and build validation.

Once the build is ready, use its saved schema and request example to make your first request. The [quickstart](/docs/quickstart/) walks through the connection details.

## Map your existing output

Keep your application’s field names where they are useful. Add a small mapping layer between the generated API response and the format your application already expects.

| Your current pipeline | What to carry over |
| --- | --- |
| Source URLs and filters | The same collection and scope |
| Record identifiers | A stable way to match and deduplicate items |
| Field names and types | A mapping from generated fields to your application’s schema |
| Missing values | Consistent handling of absent or empty fields |
| Schedules and storage | Your existing collection cadence and destination |

Check units, currencies, dates, and nested fields as well as names. A matching field name does not necessarily mean a matching value format.

## Compare a small run

Run both pipelines against the same bounded scope. Compare matching records and inspect the fields that matter to your application.

- Match items by a stable identifier or source URL.
- Compare required fields, types, and missing values.
- Check pagination and collection limits.
- Review execution summaries and partial results.
- Confirm that your application can store and use the mapped output.

Account for changes on the website between runs. Compare records and values alongside counts, especially for collections that change frequently.

## Switch your application over

Store your API credentials on your server and update the collection step to call the generated endpoint. Keep the definition version with your integration configuration so schema changes can be reviewed deliberately.

Start with a small scheduled run. Check the returned records, execution summary, and downstream processing before expanding the scope. Keep the previous integration available until you have verified the replacement, then disable the old schedule to avoid duplicate collection.

## Keep your pipeline healthy

Use [pagination and output](/docs/pagination/) to handle bounded collections, and [errors and retries](/docs/errors/) to decide what to do when a request is interrupted or returns partial results.

If you need help planning the move, [contact us](/contact/) with the source URL, required fields, and a sample output with credentials and sensitive values removed.
