Technical Tip: How to export and import FortiSOAR connector using the API
Description
This article describes how to export and import a FortiSOAR connector using the API.
Scope
FortiSOAR.
Solution
- Log in to FortiSOAR.
Use an admin user with CRUD permissions on the Connector and Solution Packs modules.
This generates a token which will be used in the 'Authorization' header of subsequent queries to maintain the session.
curl --location 'https://<FSR_IP>/auth/authenticate' \ --header 'Content-Type: application/json' \ --data-raw '{ "credentials": { "loginid": "<admin>", "password":"<password>" } }'
- List all installed connectors:
curl --location 'https://<FSR_IP>/api/query/solutionpacks' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "sort": [ { "field": "label", "direction": "ASC" } ], "page": 1, "limit": 30, "logic": "AND", "filters": [ { "field": "type", "operator": "in", "value": [ "connector" ] }, { "field": "installed", "operator": "eq", "value": true }, { "logic": "OR", "filters": [ { "field": "development", "operator": "eq", "value": false }, { "field": "type", "operator": "eq", "value": "widget" }, { "field": "type", "operator": "eq", "value": "solutionpack" } ] } ], "search": "team" }'
All connectors can info can be listed using the Postman script and the visualize tab:
-
Get details of a connector:
Make sure to put the '/' at the end of the URL.
For example: https://<FSR_IP>/api/integration/connectors/activedirectory/2.4.0/.
curl --location 'https://<FSR_IP>/api/integration/connectors/<connector_name>/<version>/' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{} '
This shows the details of the connector, including the 'id' of the connector, which is used in the next request to export the connector:

- Export a connector:
curl --location --request GET 'https://<FSR_IP>/api/integration/connector/development/entity/<connector_id>/export/?format=json' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{} '
When using Postman, it is necessary to use the 'Send and Download' option to save the connector in .tgz format.
- Import a connector:
In the URL, 'replace=true' will replace the connector if it already exists in FortiSOAR.
curl --location 'https://<FSR_IP>/api/3/solutionpacks/install?%24type=connector&%24replace=true' \ --header 'Authorization: Bearer <token>' \ --form 'file=@"/<path to connector-file on local machine>"'
- Logout:
curl --location 'https://<FSR_IP>/api/3/logout' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{}'
- Refer to the GitHub repository for the Python script to automate the whole process: FortiSOAR Connector Export/Import Tool.
- If using Postman, the API Collection can be forked from the FortiSOAR Connector Export/Import Tool.
- Set these variables before running:
- host: FortiSOAR hostname/IP.
- admin: Admin username (must have CRUD permissions on Connectors and Solution Packs modules).
- password: Admin password.
Related document:
