Export and import with Postman
Overview
Postman can build a collection of every Ada API request, including the Snapshot API, from an AI Agent’s own API specification. Set up one collection per Agent, test it with any request, then run the export, validate, and apply requests from the config folder.
Read the prerequisites before the first import. Postman does not change what the API requires of the target Agent.
Limitations
- One collection per Agent. Each Agent has its own API key and host. The export runs from one collection and the import from another. Duplicating the first collection is the quickest way to make the second.
- Two requests are not in the specification. The archive download and the archive upload go to temporary links, not to the API. You add those two requests yourself, with No Auth. The steps below show how.
- Download the archive with Send and Download. A plain Send shows the archive as response text and does not save it. Name the saved file with a
.tar.gzextension. - Postman on the web cannot send files. Use the Postman desktop app, or install the Postman Desktop Agent.
- The collection is a copy of the specification. When the API changes, import the specification again.
Quick start
Set up, test, then run. Details for each step are in Implementation & usage.
Import the source Agent's specification
In Postman, click Import and paste https://<handle>.ada.support/api/v2/spec, using the host you use to open the Agent’s dashboard. Rename the collection after the Agent.
Set the key and the base URL
On the collection, set Authorization to Bearer Token and paste the Agent’s API key. On Variables, set baseUrl to the Agent’s host plus /api.
Test with any request
Open any request, keep Inherit auth from parent, and send it. A 200 means the collection is set up.
Implementation & usage
Each step, with the Postman controls to use and what to look for in the response.
Prerequisites
- The Postman desktop app, or Postman on the web with the Desktop Agent installed.
- Everything in the prerequisites: an API key for each Agent, and the target Agent set up by hand.
Set up a collection for an Agent
Every Agent serves its own API documentation at https://<handle>.ada.support/api/v2/docs and its specification at https://<handle>.ada.support/api/v2/spec. Use the host you use to open that Agent’s dashboard.
To set up a collection:
- In Postman, click Import, paste the specification URL, and press Enter. Postman creates a collection named Ada API V2 with one folder per API family. The Snapshot API requests are in the
configfolder. - Rename the collection after the Agent, for example Ada API V2 - Sandbox.
- Open the collection and click the Authorization tab. Set Auth Type to Bearer Token and paste the Agent’s API key from Config > PLATFORM > API keys. When Postman offers to secure the key in its Vault, accept. The key then never appears in the collection.
- Click the Variables tab. Set the Current value of
baseUrlto the Agent’s host plus/api, for examplehttps://EXAMPLE.ada.support/api. - Click Save.
Each generated request has its own Authorization set to Bearer Token with an empty bearerToken variable. Before you send a request, open its Authorization tab and choose Inherit auth from parent. A 401 means you skipped this step.
To test the setup:
- Open any request in the collection, for example Get a list of channels under
channels. - On the request’s Authorization tab, choose Inherit auth from parent.
- Click Send. A
200 OKmeans the key and the base URL are right.
To set up the second collection:
- Right-click the collection and choose Duplicate.
- Rename the copy after the other Agent, for example Ada API V2 - Production.
- Repeat the Authorization and Variables steps with that Agent’s key and host, then test it the same way.
Use the source Agent’s collection for the export and the target Agent’s collection for the validate and apply.
Export a snapshot
To export the source Agent:
- In the source collection, open
configand send Export the agent configuration as a downloadable archive with Inherit auth from parent. The response has ajob_id. - Open Get the status and result of a config export/import job. On the Params tab, set the
job_idpath variable to that id. Send it untilstatusiscompleted. Poll every 5 seconds for the first minute, then every 15 seconds. - Note the names under
result.secrets. The target must have those secret values, and you supply them in the import request. - Download the archive from
result.url. Paste the link into a browser that keeps the file as.tar.gz. Or hold Cmd (Ctrl on Windows), click the link, and use Send and Download. Safari unpacks the file and keeps the name, and the import then rejects it.
The download link is valid for one hour. If it has expired, send the job request again for a fresh one.
Validate a snapshot
The example below moves the API tools (the actions section) from a sandbox to a production Agent, with the secret values they use.
To validate the archive against the target Agent:
-
In the target collection, open
configand open Import a full configuration snapshot, including knowledge articles. Set Authorization to Inherit auth from parent. -
On the Body tab, replace the example with your request:
Leave out
includeto validate the whole snapshot. Do not sendsecretson a validate: the values are stored on the Agent as soon as the request is accepted. Aclient_secret_missingwarning in the result names each secret to supply on the apply. -
Click Send. The response has a
job_idand anupload.url. -
Hold Cmd (Ctrl on Windows) and click the
upload.urllink in the response. Postman opens it in a new request tab, outside the collection, so it sends no Authorization header. Change the method to PUT. On the Body tab, select binary, click Select File, and choose the archive. Click Send. A200with an empty body means the upload succeeded. Anything else means it did not; send the import request again for a fresh link and retry. -
Send the job status request with the new
job_iduntilstatusiscompleted. Allow up to two minutes inwaiting_for_upload. -
Read the result.
selectionshows what came along: withinclude: ["actions"], a variable the API tools use is pulled in too ("included": ["actions", "variables"],"pulled": {"variables": 1}).changesnames what the apply would create, update, and delete. Ifresult.statusisblocked, fix each blocking issue on the target (see Pre-import checks) and repeat from step 3.
Apply a snapshot
To apply the archive to the target Agent:
-
Open the import request again. On the Body tab, change
modetoapply, keep the sameinclude, and add the secret values under the names from the export: -
Click Send. The response has a new
job_idand a newupload.url. The link from the validate round cannot be reused. -
Hold Cmd (Ctrl on Windows), click the new
upload.url, change the method to PUT, select the same file under Body > binary, and send it. Expect200. -
Send the job status request until
statusiscompletedorfailed. Onfailed, readfailure_reasonandfailure_detail; see When a job fails for what to do. -
Check the target in the dashboard. In the example, the target’s Tools page now lists only the API tools from the archive, because the
actionssection was replaced. The pulled-in variable exists under Settings > Variables, and the secret value you supplied is under Authentication. -
Work through After the apply.
Best practices
- Keep the API key in Postman’s Vault, never in the collection’s Initial value, so it stays out of anything you share or export.
- Keep one saved archive per export, named with the date, outside Postman.
- Run the validate round every time, with the same
includeas the apply, even for a same-Agent restore. - Name the two collections after their Agents, so the export and the import never run against the wrong one.
Related features
- Snapshot API overview: what a snapshot carries, the pre-import checks, and the limits.
- Getting started: the prerequisites checklist and the step-by-step procedure.
- Export and import with an AI assistant: the same flow driven by a prompt.
- Authentication: generate an API key.