Skip to main content
Mage supports integrating with any RESTful or file-based API. This allows you to extract data from JSON, CSV, TSV, XLSX responses, with support for pagination, authentication, and schema inference. 📚 Sample public APIs for testing: https://apipheny.io/free-api/

Basic Features (OSS)

Configuration Fields

You must enter the following credentials when configuring this source:

Mage Pro Features

The following features are available only in Mage Pro and are designed for advanced API integrations at scale:

Advanced Configuration (Mage Pro only)

These configuration parameters give you greater control over how data is fetched, parsed, and validated from APIs—especially useful for large files, custom encodings, or complex schemas. These options enhance your ability to handle diverse data formats and edge cases in production environments, giving you full control over data ingestion quality and reliability.

Multi-Stream Configuration (Mage Pro only)

Mage Pro supports defining multiple independent API configs using the streams key. Each key in the streams map represents a separate stream and can define its own URL, headers, parser, and pagination settings.
Each stream entry can independently use any configuration field supported in the single-stream format.

Pagination Configuration

To sync paginated API responses, the pagination_config config block supports two types:
  • "cursor" — follows a token provided in the API response (e.g., next_cursor)
  • "page" — iterates using a page number or offset (e.g., page=1, page=2, …)

Cursor-Based Pagination

Use when the API returns a next cursor/token in the response body.
*Either cursor_param or cursor_params must be provided. If cursor_params is used, next_cursor_path must be a dictionary mapping each param to its response path.
Example: Single cursor
Example: Multiple cursors

Page-Based Pagination

Use when the API accepts page numbers or offsets and optionally supports a limit parameter.
Example: Page + Total Pages (stop when last page reached)
Example: Offset + Limit (stop when response is empty)

Other Example Configs

Example GET API 1

The response from the above endpoint is:
However, with the response_parser value of response.docs[0].author_display, the data that is extracted from the API’s response is:
Since each item in the final data is not a JSON object, the columns configuration value is required. The final data is converted into a JSON object before being outputted to its destination:

Example GET API 2

The response from the above endpoint is:
Because there is no response_parser, the final data matches the exact response from the API. Since each item in the final data is a JSON object, the columns configuration value isn’t required.

Example POST API


Example XLSX or CSV

The response from the above endpoint is:
Data can also be checked by clicking on the “Load Sample data” button.