canonical: https://jentic.com/apis/import.io

# import.io APIs

import.io is a web data extraction platform that turns configured extractors into structured datasets. Its APIs cover the full crawl lifecycle for an extractor: schedule recurring runs, launch or cancel runs on demand, run one-off adhoc extractions inline, read the latest crawl results as CSV or JSON, and monitor run history through a feed. Together they let pipelines and agents automate scraping of target web pages and pull the resulting rows into downstream systems.

## For AI agents

An agent can drive an import.io extractor end to end: start or cancel crawl runs, run adhoc extractions for the freshest data, schedule recurring runs, watch a run feed for completion, and fetch the latest results as CSV or JSON. This lets an agent automate web data collection and hand structured rows to downstream tools without writing per-endpoint code.

## Scope

Use for: Automating the crawl lifecycle of pre-configured import.io extractors: scheduling, running, monitoring, and reading structured web-scraped results as CSV or JSON.

Not supported:
- extractor authoring
- arbitrary URL scraping
- webhook notifications
- run result webhooks
- data transformation

## APIs

| API | Category | Endpoints | Description |
| --- | --- | --- | --- |
| import.io Schedule API | data-enrichment | 4 | Manage recurring crawl schedules for import.io extractors. |
| import.io Data API | data-enrichment | 2 | Fetch the latest crawl results from an import.io extractor as CSV or JSON. |
| import.io Run API | data-enrichment | 2 | Start and cancel crawl runs for an import.io extractor. |
| import.io Extraction API | data-enrichment | 1 | Run an adhoc extraction against an import.io extractor and receive the result inline. |
| import.io RSS API | data-enrichment | 1 | Read a feed of recent crawl runs for a specific import.io extractor. |

## Which API to use

| Need | API | Why |
| --- | --- | --- |
| Get fresh structured data from an extractor right now | extraction | Runs the extractor inline and returns rows in a single call, without scheduling or reading stored output. |
| Read the most recent crawl output without re-running | data | Returns the latest stored run results as CSV or JSON, cheaper than triggering a live extraction. |
| Trigger or stop a crawl run on demand | run | Starts and cancels individual runs; results are read later via the Data API. |
| Automate a run on a fixed cadence | schedule | Creates, lists, retrieves, and deletes recurring schedules so runs fire without manual triggers. |
| Detect when a run completes | rss | Exposes a feed of recent runs for monitoring and triggers, avoiding polling the Run or Data APIs. |

## Cross-API use cases

### On-demand pipeline refresh

An agent starts a crawl for a saved extractor, waits for the run to appear in the run feed, then fetches the refreshed rows for downstream loading. This drives freshness on demand without relying on the platform's own schedules.

Example prompt: Start extractor ext-prices, poll the run feed until the new run appears, then fetch the latest JSON results and report the row count.

### Scheduled collection with completion monitoring

An agent schedules an extractor to run daily and watches the run feed to confirm each scheduled run finished before reading the latest output for reporting.

Example prompt: Schedule extractor ext-competitor-prices for 06:00 UTC daily, then each morning confirm the run in the feed and fetch the latest CSV.

### Freshness fallback for reads

An agent tries the cheap stored-results read first; if the latest run is stale it runs an adhoc extraction inline to get up-to-the-minute rows.

Example prompt: Fetch the latest JSON for extractor ext-news; if the newest run is older than one hour, run an adhoc extraction instead and return those rows.

### Schedule cleanup with manual triggering

An agent decommissions a recurring schedule and switches an extractor to on-demand triggering, then verifies runs still fire manually.

Example prompt: Delete the schedule on extractor ext-old-feed, confirm it no longer lists, then start a one-off run to verify manual triggering works.

## Why Jentic

- **Setup:** Wiring import.io by hand means passing your apikey as a query parameter against five separate hosts (schedule, run, extraction, data, and rss) and shaping each request yourself. Through Jentic you install once, import the import.io APIs you need from the Jentic API Directory, store the apikey once, and your agent calls them.
- **Permission scoping:** The import.io surfaces range from read-only reads and feeds to run triggers and schedule deletes. Because your own rules choose which operations an agent may call, you can allow it to read results and monitor runs while withholding operations that start crawls or delete schedules.
- **Credential handling:** Your import.io apikey is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context, and one key covers all five APIs.
- **Discovery method:** Agents search Jentic by intent such as 'schedule an extractor' or 'fetch the latest extractor results', and Jentic returns the matching import.io operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related vendors

- **Apify** — Web scraping and crawling platform with an actor and dataset model plus native run webhooks, an alternative to import.io extractors.
- **ScraperAPI** — Proxy and scraping API for arbitrary URLs, useful when there is no pre-configured extractor to run.
- **Bright Data** — Data collection and web scraping infrastructure covering proxies, scrapers, and structured datasets at scale.

## FAQ

### What can an agent do across the import.io APIs?

An agent can manage the full lifecycle of a configured extractor: schedule recurring runs, start or cancel runs on demand, run one-off adhoc extractions, monitor run history through a feed, and read the latest results as CSV or JSON.

### Do the import.io APIs share one credential?

Yes. Every surface authenticates with the same apikey query parameter, so a single import.io account key works across the Schedule, Run, Extraction, Data, and RSS APIs.

### What is the difference between the Extraction API and the Data API?

Extraction runs the extractor live and returns rows inline, which is best when freshness matters. Data reads the latest stored crawl output as CSV or JSON, which is cheaper and faster when a recent run already exists.

### How do these APIs fit together into a scrape pipeline?

Schedule or Run starts work, RSS reports when a run completes, and Data exposes the resulting rows. Chaining them lets an agent trigger, watch, and read a crawl without manual steps.

### Can these APIs scrape any URL or build new extractors?

No. They operate on extractors that are already configured in import.io. There is no operation to author an extractor or scrape an arbitrary URL that has no extractor defined for it.

### How does an agent pick the right import.io API for a task?

Use Run or Schedule to trigger crawls, RSS to detect completion, Extraction for immediate inline results, and Data to read the most recent stored output. Through Jentic the agent searches by intent and gets the matching operation and its schema.
