Outreach Import API

## Import Relationships ## Import Resource Metadata | **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** | | --- | --- | --- | | canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta | ## ⌵ Import Actions

Operations 7

GET /imports/{id} Get an Import by ID #
POST /imports/actions/accountsImport Accounts Import #
POST /imports/actions/bulkUpsert Bulk Upsert #
POST /imports/actions/customObjectBulkUpsert Custom Object Bulk Upsert #
POST /imports/actions/prospectsImport Prospects Import #
POST /imports/actions/validateUpload Validate Upload #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/outreach-import-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

outreach-import-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Outreach Public API is documented here, at the Development Portal, expand the link Outreach REST API Reference in the left navigation bar to see human-readable description of endpoints and data types.
  title: Outreach REST API Reference Import API
  version: ''
servers:
- url: https://api.outreach.io/api/v2
security:
- bearerAuth: []
tags:
- description: '## Import Relationships


    ## Import Resource Metadata


    | **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** |

    | --- | --- | --- |

    | canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta |


    ## ⌵ Import Actions'
  name: Import
  x-internal: false
paths:
  /imports/{id}:
    get:
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/importResponse'
          description: OK
        '404':
          content:
            application/vnd.api+json:
              schema:
                properties:
                  errors:
                    items:
                      properties:
                        detail:
                          type: string
                        id:
                          type: string
                        title:
                          type: string
                      type: object
                    type: array
          description: Not Found
      summary: Get an Import by ID
      tags:
      - Import
      x-internal: false
      operationId: getImportsById
      x-operation-id-source: derived
  /imports/actions/accountsImport:
    post:
      description: '### Import Action


        This is the action to import an uploaded file into account''s table. Accounts have `customId` as a unique field. If you upload a file with unique fields that already exist in Outreach database, the dupe method will be applied.'
      requestBody:
        content:
          application/vnd.api+json:
            schema:
              properties:
                data:
                  properties:
                    attributes:
                      properties:
                        dupeMethod:
                          description: Method used to treat duplicated records (overwrite | skip | missing).
                          type: string
                        fileName:
                          description: Name of the file from which the data comes from.
                          type: string
                        mappings:
                          description: 'Mappings of the import represented as {"source": "destination"}.'
                          type: object
                        recordCount:
                          description: The number of rows in the import file.
                          type: integer
                        storageKey:
                          description: Reference of the storage where the file was uploaded. This can was obtained using /api/v2/imports/actions/generateUploadLink
                          type: string
                type:
                  type: string
              type: object
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/importResponse'
          description: OK
        '422':
          content:
            application/vnd.api+json:
              schema:
                properties:
                  errors:
                    items:
                      properties:
                        detail:
                          type: string
                        id:
                          type: string
                        title:
                          type: string
                      type: object
                    type: array
          description: JSON error message
      summary: Accounts Import
      tags:
      - Import
      x-internal: false
      operationId: postImportsActionsAccountsImport
      x-operation-id-source: derived
  /imports/actions/bulkUpsert:
    post:
      description: '### Import Action


        This is the action to sync multiple API v2 objects to Outreach tablesBulk upsert uses a record''s `data.id` attribute to determine uniqueness.The provided dupe method will be applied during processing of records that already exist in Outreach.'
      requestBody:
        content:
          application/vnd.api+json:
            schema:
              properties:
                data:
                  properties:
                    attributes:
                      properties:
                        dupeMethod:
                          description: Method used to treat duplicated records (overwriteNoCreate | overwrite | skip | missing).
                          type: string
                        fileName:
                          description: The filename Outreach is going to use to store records during processing.
                          type: string
                        records:
                          description: The collection of API v2 resource objects to upsert.
                          items:
                            type: object
                          type: array
                type:
                  type: string
              type: object
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/importResponse'
          description: OK
        '422':
          content:
            application/vnd.api+json:
              schema:
                properties:
                  errors:
                    items:
                      properties:
                        detail:
                          type: string
                        id:
                          type: string
                        title:
                          type: string
                      type: object
                    type: array
          description: JSON error message
      summary: Bulk Upsert
      tags:
      - Import
      x-internal: false
      operationId: postImportsActionsBulkUpsert
      x-operation-id-source: derived
  /imports/actions/customObjectBulkUpsert:
    post:
      description: '### Import Action


        This is the action to upsert records of a custom object. Bulk upsert uses a record''s `data.id` attribute to determine uniqueness. The provided dupe method will be applied during processing of records that already exist in Outreach.'
      requestBody:
        content:
          application/vnd.api+json:
            schema:
              properties:
                data:
                  properties:
                    attributes:
                      properties:
                        dupeMethod:
                          description: Method used to treat duplicated records (overwrite | skip | missing | overwriteNoCreate).
                          type: string
                        fileName:
                          description: The filename Outreach is to use to store records during processing.
                          type: string
                        records:
                          description: The collection of custom object records to upsert.
                          items:
                            type: object
                          type: array
                type:
                  type: string
              type: object
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/importResponse'
          description: OK
        '422':
          content:
            application/vnd.api+json:
              schema:
                properties:
                  errors:
                    items:
                      properties:
                        detail:
                          type: string
                        id:
                          type: string
                        title:
                          type: string
                      type: object
                    type: array
          description: JSON error message
      summary: Custom Object Bulk Upsert
      tags:
      - Import
      x-internal: false
      operationId: postImportsActionsCustomObjectBulkUpsert
      x-operation-id-source: derived
  /imports/actions/generateUploadLink:
    post:
      description: '### Upload Action


        Generates a link, an URL at which the file should be uploaded, and a storage key, a reference for the upload'
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/uploadResponse'
          description: OK
        '422':
          content:
            application/vnd.api+json:
              schema:
                properties:
                  errors:
                    items:
                      properties:
                        detail:
                          type: string
                        id:
                          type: string
                        title:
                          type: string
                      type: object
                    type: array
          description: JSON error message
      summary: Generate Upload Link
      tags:
      - Import
      x-internal: false
      operationId: postImportsActionsGenerateUploadLink
      x-operation-id-source: derived
  /imports/actions/prospectsImport:
    post:
      description: '### Import Action


        This is the action to import an uploaded file into prospect''s table Prospects have `externalId` as a unique field. If you upload a file with unique fields that already exist in Outreach database, the dupe method will be applied.'
      requestBody:
        content:
          application/vnd.api+json:
            schema:
              properties:
                data:
                  properties:
                    attributes:
                      properties:
                        dupeMethod:
                          description: Method used to treat duplicated records (overwrite | skip | missing).
                          type: string
                        fileName:
                          description: Name of the file from which the data comes from.
                          type: string
                        mappings:
                          description: 'Mappings of the import represented as {"source": "destination"}.'
                          type: object
                        recordCount:
                          description: The number of rows in the import file.
                          type: integer
                        storageKey:
                          description: Reference of the storage where the file was uploaded. This can was obtained using /api/v2/imports/actions/generateUploadLink
                          type: string
                type:
                  type: string
              type: object
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/importResponse'
          description: OK
        '422':
          content:
            application/vnd.api+json:
              schema:
                properties:
                  errors:
                    items:
                      properties:
                        detail:
                          type: string
                        id:
                          type: string
                        title:
                          type: string
                      type: object
                    type: array
          description: JSON error message
      summary: Prospects Import
      tags:
      - Import
      x-internal: false
      operationId: postImportsActionsProspectsImport
      x-operation-id-source: derived
  /imports/actions/validateUpload:
    post:
      description: '### Validate Upload Action


        Validates the uploaded file'
      parameters:
      - explode: true
        in: query
        name: actionParams
        schema:
          properties:
            hash:
              description: The hash of the uploaded file
            storageKey:
              description: The storage key of the uploaded file
          required:
          - hash
          - storageKey
        style: deepObject
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/validateUploadResponse'
          description: OK
        '422':
          content:
            application/vnd.api+json:
              schema:
                properties:
                  errors:
                    items:
                      properties:
                        detail:
                          type: string
                        id:
                          type: string
                        title:
                          type: string
                      type: object
                    type: array
          description: JSON error message
      summary: Validate Upload
      tags:
      - Import
      x-internal: false
      operationId: postImportsActionsValidateUpload
      x-operation-id-source: derived
components:
  schemas:
    validateUploadResponse:
      properties:
        attributes:
          properties:
            headerValue:
              description: the headers of the uploaded file with the first value
              properties:
                header:
                  description: the header name
                  type: string
                value:
                  description: the first value of the header
                  type: string
              type: object
            recordCount:
              description: the number of records in the uploaded file.
              type: integer
          type: object
        type:
          type: string
      type: object
    importResponse:
      properties:
        attributes:
          $ref: '#/components/schemas/import'
        id:
          type: integer
        relationships:
          $ref: '#/components/schemas/importRelationships'
        type:
          type: string
      type: object
      x-internal: false
    importRelationships:
      properties:
        creator:
          description: '<img src=https://developers.outreach.io/badges/readonly.svg>


            '
          properties:
            data:
              properties:
                id:
                  type: integer
                type:
                  enum:
                  - user
                  type: string
              type:
              - object
              - 'null'
            links:
              properties:
                related:
                  format: uri
                  type: string
              type: object
      type: object
    import:
      description: 'An operation that imports data into Outreach

        '
      properties:
        createdAt:
          description: '<img src=https://developers.outreach.io/badges/readonly.svg>


            The date and time the import was created.'
          format: date-time
          type:
          - string
          - 'null'
          x-internal: false
        dupeMethod:
          description: '


            The type of deduplication strategy, skip, missing or overwrite.'
          maxLength: 255
          type:
          - string
          - 'null'
          x-internal: false
        dupes:
          description: '


            The number of dupes for the import.'
          type:
          - integer
          - 'null'
          x-internal: false
        errorReason:
          description: '


            The reason for the failure of an import.'
          maxLength: 65535
          type:
          - string
          - 'null'
          x-internal: false
        externalId:
          description: '


            The ID of a Report in a CRM for ReportImport (is not related to external/external_input_payload)'
          maxLength: 255
          type:
          - string
          - 'null'
          x-internal: false
        externalName:
          description: '


            The name of a Report in a CRM for ReportImport (is not related to external/external_input_payload)'
          maxLength: 255
          type:
          - string
          - 'null'
          x-internal: false
        externalType:
          description: '


            The Type of a Report in a CRM for ReportImport (is not related to external/external_input_payload)'
          maxLength: 255
          type:
          - string
          - 'null'
          x-internal: false
        failures:
          description: '


            The total number of failures associated with this import.'
          type:
          - integer
          - 'null'
          x-internal: false
        fileName:
          description: '


            The file name for the import.'
          maxLength: 255
          type:
          - string
          - 'null'
          x-internal: false
        fileSize:
          description: '


            The size of the file for the import'
          type:
          - integer
          - 'null'
          x-internal: false
        frequency:
          description: '<img src=https://developers.outreach.io/badges/filterable.svg> <img src=https://developers.outreach.io/badges/sortable.svg>


            The frequency an import will recur on (once, hourly, daily)'
          maxLength: 255
          type:
          - string
          - 'null'
          x-internal: false
        importType:
          description: '


            The type of import.'
          maxLength: 255
          type:
          - string
          - 'null'
          x-internal: false
        loadFromPlugin:
          description: '


            Indicates if the import leverages load_from_crm or is a ReportImport'
          type:
          - boolean
          - 'null'
          x-internal: false
        mappings:
          description: '


            The mapping of rows to properties of the item.'
          type:
          - object
          - 'null'
          x-internal: false
        pluginId:
          description: '


            The ID of the Outreach Plugin powering the load_from_crm or ReportImport functionality'
          type:
          - integer
          - 'null'
          x-internal: false
        prospectOwnerId:
          description: '


            Owner ID to override during import (applies to prospects, accounts, and opportunities)'
          type:
          - integer
          - 'null'
          x-internal: false
        recurring:
          description: '<img src=https://developers.outreach.io/badges/readonly.svg> <img src=https://developers.outreach.io/badges/filterable.svg> <img src=https://developers.outreach.io/badges/sortable.svg>


            Whether or not the import is a recurring import'
          type:
          - boolean
          - 'null'
          x-internal: false
        reportInstanceId:
          description: '


            The ID of the salesforce report import'
          maxLength: 255
          type:
          - string
          - 'null'
          x-internal: false
        scheduledAt:
          description: '


            The next scheduled run for a recurring import'
          format: date-time
          type:
          - string
          - 'null'
          x-internal: false
        source:
          description: '


            Source to override during prospect import'
          maxLength: 255
          type:
          - string
          - 'null'
          x-internal: false
        stageId:
          description: '


            Stage ID to override to during import'
          type:
          - integer
          - 'null'
          x-internal: false
        state:
          description: '<img src=https://developers.outreach.io/badges/filterable.svg> <img src=https://developers.outreach.io/badges/sortable.svg>


            The state of the import.'
          maxLength: 255
          type:
          - string
          - 'null'
          x-internal: false
        stateChangedAt:
          description: '


            Indicates the last mutation to the state field'
          format: date-time
          type:
          - string
          - 'null'
          x-internal: false
        syncedUntil:
          description: '


            The point in time this report is synced to'
          format: date-time
          type:
          - string
          - 'null'
          x-internal: false
        timeZone:
          description: '


            TimeZone to override during prospect import'
          maxLength: 255
          type:
          - string
          - 'null'
          x-internal: false
        total:
          description: '


            The total number of items associated with this import.'
          type:
          - integer
          - 'null'
          x-internal: false
        updatedAt:
          description: '<img src=https://developers.outreach.io/badges/readonly.svg>


            The date and time the import was last updated.'
          format: date-time
          type:
          - string
          - 'null'
          x-internal: false
      type: object
      x-internal: false
    uploadResponse:
      properties:
        attributes:
          properties:
            storageKey:
              description: the reference to the upload to use in following API calls such as import.
              type: string
            uploadURL:
              description: the AWS S3 presigned URL at which the file should be uploaded.
              type: string
          type: object
        type:
          type: string
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http
    s2sAuthToken:
      bearerFormat: JWT
      scheme: bearer
      type: http