pydomo is the official Python SDK for interacting with the Domo API. It provides a convenient way to manage Domo datasets, users, groups, and more, streamlining data integration and automation workflows. The current version is 0.3.0.16, with an active but irregular release cadence focusing on bug fixes, feature parity with the R SDK, and API improvements.
pip install pydomoVerified import paths — ran on the pinned version, not inferred.
Initializes the Domo client and demonstrates how to list the first 10 datasets in your Domo instance. Ensure `DOMO_CLIENT_ID` and `DOMO_CLIENT_SECRET` environment variables are set.
Review release notes for v0.3.0 and update method calls to the new naming conventions and access patterns. For example, some operations previously accessed via sub-clients might now be directly on the main client.
Ensure your code is updated to process Pandas DataFrames when consuming data downloaded via the SDK. Use DataFrame methods for manipulation or convert to other formats if necessary.
When deleting datasets programmatically, add the argument `prompt_before_delete=False` to the `datasets.delete()` method call to bypass the interactive confirmation.
Thoroughly review and test any code interacting with group management functions. Pay close attention to parameter types, order, and expected return values as they have changed.
Verify your API client ID and client secret are accurate, and ensure the associated API client in the Domo Developer Portal has the 'data' scope or other required permissions to create datasets.
Examine the full error message for more specific details. Common solutions include ensuring your data (e.g., CSV) is correctly formatted, matches the dataset's schema, and that part numbers for large or incremental uploads are consecutive and well-ordered, starting from 1.
Modify your CSV data to ensure the number of columns precisely matches the column count in the corresponding Domo dataset's schema.
Pass the SQL query directly as a string to the `query` parameter, for example: `df = domo.ds_query(dataset_id=dataset_id, query="SELECT * FROM table", return_data=True)`.