Import Tool (beta)

Importing data is helpful when onboarding a new client portfolio or managing any data that's not available via a portfolio data feed.

You can programmatically automate all data import workflows with the Import Tool API. All existing and future import types are supported.

📘

The Import Tool API is in closed beta

The ability to use the Import Tool API described herein is available only to a pre-selected group of Addepar clients within the Addepar Beta Program. All beta features described herein are provided “as is'” and “as available” with no warranty or guarantee of functionality and may be modified or removed at any time by Addepar.


Base route/v1/imports
/v1/import_results
EndpointsPOST
/v1/imports

GET
/v1/imports/:id
/v1/import_results/:id
ProducesJSON
PaginationNo
Application
permissions required
"API Access: Create, edit, and delete"

“Import Tool (In-app): Access to in-app tool”

"Portfolio Access" determines the entities that are accessible.

Additional required permissions will vary based on import type.
Details can be found in the Help Center.
OAuth scopesNone

Resource overview

The payload must follow the same CSV format as when importing data in the Addepar app. For detailed information on each import type and their required columns, learn more in the Help Center.

Status

StatusDescription
UPLOADINGThe data is being uploaded.
PROCESSINGThe data is in the queue.
VALIDATINGThe uploaded data is being checked for errors and inconsistencies.
IMPORTINGThe validated data is being imported.
ERRORS_READY_FOR_REVIEWErrors were found; review is required.
WARNINGS_READY_FOR_REVIEWWarnings were detected; review is recommended but not mandatory.
ERRORS_AND_WARNINGS _READY_FOR_REVIEWBoth errors and warnings were found; review is required.
DRY_RUN_SUCCESSFULDry run has been completed and no errors were found.
IMPORT_SUCCESSFULThe data imported successfully.
VALIDATION_FAILEDValidation was unsuccessful due to unknown error.
IMPORT_FAILEDImport was unsuccessful due to unknown error.

Required parameters

There are 3 parameters that you must specify with the POST call.

  1. import_type
  2. is_dry_run
  3. ignore_warnings

1. Import type parameter

All possible import type routes are listed below. They are case-sensitive and must be in all caps.

/v1/imports?import_type=IMPORT_TYPE

Import typeDescription
ATTRIBUTESImport static, multi-value and historical attribute values onto entities and positions. More details here.
BENCHMARKSImport custom benchmarks and benchmark returns.
More details here.
BENCHMARK_ASSOCIATIONSUpdate benchmark associations.
More details here.
BILLABLE_PORTFOLIOSImport billable portfolios.
More details here.
CONTACTSCreate or update contacts.
More details here.
COST_BASISAdd or update original and/or adjusted tax lot values for share-based assets.
More details here.
ESTIMATED_RETURNSImport estimated returns to existing value-based assets.
More details here.
GROUPSCreate groups, add group members, or delete group members.
More details here.
HISTORICAL_PRICESImport historical prices for share-based assets.
More details here.
MANAGE_INVESTMENTSCreate new investments and/or update attributes on existing investments.
More details here.
MANAGE_OWNERSHIPCreate new ownership entities and set up ownership structure.
More details here.
MANUAL_ADJUSTMENTSApply fee adjustments to bills.
More details here.
CONSTITUENTSImport ETF constituent data.
More details here.
POSITION_VALUATIONSAdd or update valuations of value-based assets, as well as snapshots for share-based assets.
More details here.
SUMMARY_DATAAdd or update historical performance data.
More details here.
TARGET_ALLOCATIONSCreate target allocation models and create, edit, and/or assign target allocations to entities or groups.
More details here.
TOTAL_OUTSTANDING_SHARESAdd total outstanding shares for existing share based managed funds.
More details here.
TRANSACTIONSCreate and/or update transactions.
More details here.
VALUES_AND_FLOWSLink a segment of historical performance data with online data.
More details here.

2. Dry run parameter

/v1/imports?is_dry_run=true

When set to true, the parameter allows you to simulate the import and review the results, errors, and warnings without making any actual changes to Addepar.

3. Ignore warnings parameter

/v1/imports?ignore_warnings=true

This parameter determines how warnings are handled during the import process. When set to true, the import will proceed even if warnings are encountered. Errors cannot be ignored and must be addressed before import can be complete.


Import data

Imports data for one import type.

Provide the payload in plain text format.

POST /v1/imports

Example:

POST https://examplefirm.addepar.com/api/v1/imports?import_type=ATTRIBUTES&is_dry_run=false&ignore_warnings=true

Owned Id, Asset Class
123, Equity
{
  "data": {
    "id": "86e53d26-d69b-4590-aa61-c94cf7755d57",
    "type": "imports",
    "attributes": {
      "status": "UPLOADING"
    },
    "links": {
      "self": "/v1/imports/"
    }
  },
  "included": []
}

Response codes

  • 200 OK: Success. Returns json with import id.
  • 400 Bad Request: Incorrect Formatting.
  • 400 Bad Request: Missing or incorrectly formatted parameters.
  • 400 Bad Request: Payload size exceeded 20 MB.

Get import status

Check an import's status by its ID.

GET /v1/imports/:id

GET https://examplefirm.addepar.com/api/v1/imports/86e53d26-d69b-4590-aa61-c94cf7755d57
{
  "data": {
    "id": "86e53d26-d69b-4590-aa61-c94cf7755d57",
    "type": "imports",
    "attributes": {
      "status": "IMPORT_SUCCESSFUL"
    },
    "links": {
      "self": "/v1/imports/"
    }
  },
  "included": []
}

Response codes

  • 200 OK: Success.
  • 404 Not Found: Import ID not found.
  • 404 Not Found: User does not have permission to view import information.

Get import results

See information about an import's results with digests, warnings, and errors.

  • digests: A summary of everything that will be created or updated. Digests are only shown when there are no errors.
  • warnings: A list of warnings encountered during the validation process broken down by row, column, or table based on the type of warning.
  • errors: A list of errors encountered during the validation process broken down by row, column, or table based on the type of error.

GET /v1/import_results/:id

GET https://examplefirm.addepar.com/api/v1/import_results/86e53d26-d69b-4590-aa61-c94cf7755d57
{
  "data": {
    "id": "86e53d26-d69b-4590-aa61-c94cf7755d57",
    "type": "import_results",
    "attributes": {
      "digests": [
        "1 attribute will be created"
      ]
    },
    "links": {
      "self": "/v1/import_results/86e53d26-d69b-4590-aa61-c94cf7755d57"
    }
  },
  "included": []
}
{
  "data": {
    "id": "86e53d26-d69b-4590-aa61-c94cf7755d57",
    "type": "import_results",
    "attributes": {
      "warnings": [
        {
          "message": "attribute value: column not recognized and will be ignored.",
          "type": "COLUMN",
          "affected_members": [
            "Column D"
          ]
        },
        {
          "message": "attribute name: column not recognized and will be ignored.",
          "type": "COLUMN",
          "affected_members": [
            "Column C"
          ]
        }
      ],
      "errors": [
        {
          "message": "Missing required field: Date.",
          "type": "COLUMN",
          "affected_members": [
            "Column null"
          ]
        },
        {
          "message": "Missing required field: Type.",
          "type": "COLUMN",
          "affected_members": [
            "Column null"
          ]
        }
      ]
    },
    "links": {
      "self": "/v1/import_results/86e53d26-d69b-4590-aa61-c94cf7755d57"
    }
  },
  "included": []
}

Response codes

  • 200 OK: Success.
  • 404 Not Found: Import ID not found.
  • 404 Not Found: User does not have permission to view import information.