Skip to main content
Community Hub
TL;DR

Export assets, glossaries, and data products out of Atlan to a file—as a download, by email, or to object storage—using the Python SDK.

Your AI can read this via Docs MCPcurl -fsSL "https://docs.atlan.com/install-docs-mcp" | bashConnect

Run Asset Export Basic app App

You can use the Asset Export Basic app to export assets—and optionally glossaries and data products—out of Atlan to a file, delivered as a download in Atlan, by email, or to object storage (S3, GCS, or ADLS). This guide shows how to configure and run the app with the Python SDK (pyatlan).

Unlike a connector, this app doesn't crawl a source or create new assets—it reads existing metadata and writes a file, so a run leaves your catalog unchanged.

Prerequisites​

Before you begin:

  • Make sure the Asset Export Basic app is available on your tenant's marketplace. If you can't see it, raise a support request to have it enabled.
  • Set up the Python SDK and configure ATLAN_BASE_URL and ATLAN_API_KEY.
  • Only for object storage delivery, have credentials ready for the target S3, GCS, or ADLS bucket. Download and email delivery need no additional credentials.

Configure app workflow​

Build the workflow with the CsaUberAssetExportBasic builder—each method maps to a field in the app's setup form.

  1. Create the builder with an authenticated client and choose what to export:

    Choose what to export
    from pyatlan.client.atlan import AtlanClient
    from pyatlan.model.apps import CsaUberAssetExportBasic

    client = AtlanClient()

    export = (
    CsaUberAssetExportBasic(client)
    .export_scope("ENRICHED_ONLY") # ENRICHED_ONLY | ALL | GLOSSARIES_ONLY | PRODUCTS_ONLY
    .qualified_name_prefix_for_assets("default/snowflake/1234567890")
    .include_description(True)
    .include_glossaries(True)
    .include_data_products(True)
    .include_archived(False)
    )
    • Export scope selects ENRICHED_ONLY (assets enriched by users) or ALL (every asset under the prefix); use GLOSSARIES_ONLY or PRODUCTS_ONLY to scope to those.
    • Qualified name prefix is the starting qualifiedName that selects which assets to export.
  2. Choose how to deliver the export:

    • Download (kept in Atlan, on the Runs tab):

      export = export.export_via("DIRECT")
    • Email (sent as an attachment; addresses are comma-separated):

      export = export.export_via("EMAIL").recipient_email_addresses("jane@example.com,john@example.com")
    • Object storage (upload to S3, GCS, or ADLS). Provide the credential and target connection, then use CLOUD delivery. The raw secret is vaulted server-side before the run:

      export = (
      export.s3(username="••••••", password="••••••", region="us-east-1", s3_bucket="my-bucket")
      .connection(name="my-export-target", admin_users=["jdoe"])
      .export_via("CLOUD")
      )
      # Use .gcs(...) or .adls(...) for Google Cloud Storage or Azure Data Lake Storage.

Run app workflow​

Submit the run with a unique name:

Run the export
response = export.run(name="my asset export")
print(response.slug, response.run_id)

.run(...) creates the workflow and submits a run; use .create(...) to create it without running.

run is create-or-reuse by name

If a workflow with the same name already exists, .run(...) returns the existing one without submitting a new run, so run_id is None. Use a unique name each time to force a fresh run.

Validate results​

After the run starts:

  • Download: open the app's Runs tab in Atlan and download the generated file from the completed run.
  • Email: check the recipient inboxes for the export attachment.
  • Object storage: confirm the file was uploaded to the target bucket.

To check run status programmatically, pass response.run_id to client.app.get_run(...).

Need help​

If the app isn't available on your tenant or a run fails, contact Atlan Support by submitting a request.

See also​