Import.io Extractor API
Create, configure, run, and manage web data extractors.
Create, configure, run, and manage web data extractors.
openapi: 3.0.3
info:
title: Import.io Crawlrun Extractor API
description: 'The Import.io API (v2.0) provides programmatic access to create, manage, and run
web data extractors, retrieve crawl run results, and manage reports. Everything
available in the Import.io UI can be accomplished via the API, including
scheduling extractions, managing data pipelines, and exporting data in JSON,
CSV, or Excel formats. Authenticated extraction is supported for data behind
login screens.
Authentication is performed by passing your API key as the `_apikey` query
parameter on every request. You can find your API key in the Import.io
dashboard under User Settings.
'
version: '2.0'
contact:
name: Import.io Support
url: https://help.import.io/
license:
name: Proprietary
url: https://www.import.io/terms-of-use/
servers:
- url: https://api.import.io
description: Production API
security:
- apiKeyAuth: []
tags:
- name: Extractor
description: Create, configure, run, and manage web data extractors.
paths:
/extractors/:
get:
tags:
- Extractor
summary: List extractors
description: Returns a paginated list of extractors owned by the authenticated user.
operationId: listExtractors
parameters:
- $ref: '#/components/parameters/ApiKey'
- $ref: '#/components/parameters/PerPage'
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/Sort'
- $ref: '#/components/parameters/SortDirection'
responses:
'200':
description: Array of extractors
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Extractor'
'401':
$ref: '#/components/responses/Unauthorized'
/extractors/{extractorId}:
parameters:
- $ref: '#/components/parameters/ExtractorId'
- $ref: '#/components/parameters/ApiKey'
get:
tags:
- Extractor
summary: Get extractor
description: Get information about a specific extractor.
operationId: getExtractor
responses:
'200':
description: Extractor details
content:
application/json:
schema:
$ref: '#/components/schemas/Extractor'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- Extractor
summary: Archive extractor
description: Archive (delete) an extractor. Data is retained in the database but the extractor is hidden from the UI and cannot be run.
operationId: deleteExtractor
responses:
'200':
description: Archived extractor
content:
application/json:
schema:
$ref: '#/components/schemas/Extractor'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/extractors/{extractorId}/inputs:
parameters:
- $ref: '#/components/parameters/ExtractorId'
- $ref: '#/components/parameters/ApiKey'
get:
tags:
- Extractor
summary: Get extractor inputs
description: Retrieve the current inputs configured for an extractor.
operationId: getExtractorInputs
responses:
'200':
description: Extractor inputs
content:
application/json:
schema:
$ref: '#/components/schemas/ExtractorInputs'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- Extractor
summary: Update extractor inputs
description: Update the inputs (URLs) configured for an extractor.
operationId: updateExtractorInputs
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ExtractorInputs'
responses:
'200':
description: Inputs updated
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/ServerError'
/extractors/{extractorId}/start:
post:
tags:
- Extractor
summary: Start extractor
description: Trigger an extractor to run.
operationId: startExtractor
parameters:
- $ref: '#/components/parameters/ExtractorId'
- $ref: '#/components/parameters/ApiKey'
responses:
'200':
description: Extractor started
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/ServerError'
/extractors/{extractorId}/stop:
post:
tags:
- Extractor
summary: Stop extractor
description: Halt a running extractor.
operationId: stopExtractor
parameters:
- $ref: '#/components/parameters/ExtractorId'
- $ref: '#/components/parameters/ApiKey'
responses:
'200':
description: Extractor stopped
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/ServerError'
/extractors/{extractorId}/duplicate:
post:
tags:
- Extractor
summary: Duplicate extractor
description: Create a copy of an existing extractor.
operationId: duplicateExtractor
parameters:
- $ref: '#/components/parameters/ExtractorId'
- $ref: '#/components/parameters/ApiKey'
responses:
'200':
description: Duplicated extractor
content:
application/json:
schema:
$ref: '#/components/schemas/Extractor'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/ServerError'
/extractors/{extractorId}/credentials:
post:
tags:
- Extractor
summary: Update extractor credentials
description: Update the authentication credentials used by an extractor for sites behind login.
operationId: updateExtractorCredentials
parameters:
- $ref: '#/components/parameters/ExtractorId'
- $ref: '#/components/parameters/ApiKey'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Credentials'
responses:
'200':
description: Credentials updated
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/ServerError'
components:
schemas:
Extractor:
type: object
properties:
guid:
type: string
format: uuid
name:
type: string
fields:
type: array
items:
type: object
additionalProperties: true
tags:
type: array
items:
type: string
archived:
type: boolean
proxy:
type: object
additionalProperties: true
webhooks:
type: array
items:
type: object
additionalProperties: true
chainingConfig:
type: object
additionalProperties: true
credentialsId:
type: string
format: uuid
_meta:
$ref: '#/components/schemas/Meta'
Error:
type: object
properties:
code:
type: integer
description: Internal error code.
message:
type: string
description: Human-readable error description.
error:
type: string
description: Deprecated error string.
deprecated: true
Meta:
type: object
description: Common metadata included on most resources.
properties:
createdAt:
type: string
format: date-time
modifiedAt:
type: string
format: date-time
ownerId:
type: string
format: uuid
creatorId:
type: string
format: uuid
editorId:
type: string
format: uuid
ExtractorInputs:
type: object
properties:
_url:
type: string
description: One or more URLs to extract data from. Multiple URLs may be newline-separated.
Credentials:
type: object
required:
- username
- password
properties:
username:
type: string
password:
type: string
format: password
responses:
ServerError:
description: Server error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Authentication failed.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Forbidden:
description: Forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
SortDirection:
name: _sortDirection
in: query
required: false
description: Sort direction.
schema:
type: string
enum:
- ASC
- DESC
default: DESC
ApiKey:
name: _apikey
in: query
required: true
description: Your Import.io API key.
schema:
type: string
Sort:
name: _sort
in: query
required: false
description: Field to sort by, e.g. `meta_created_at`.
schema:
type: string
ExtractorId:
name: extractorId
in: path
required: true
description: Unique identifier of the extractor.
schema:
type: string
format: uuid
PerPage:
name: _perpage
in: query
required: false
description: Number of items to return per page.
schema:
type: integer
Page:
name: _page
in: query
required: false
description: Page number to return (default 1).
schema:
type: integer
default: 1
securitySchemes:
apiKeyAuth:
type: apiKey
in: query
name: _apikey
description: API key obtained from the Import.io dashboard User Settings.