Skip to main content

EnsembleData Python API

pypi pypi

Documentation

Check out the API docs to see which endpoints are available for each social media and for detailed descriptions of their parameters and functionality.

Installation

Install the package with pip as you would any other python package.

pip install ensembledata

Requirements

  • The package only supports Python 3.7 and above.

Usage

Register to get your free API token.

from ensembledata.api import EDClient


client = EDClient("API-TOKEN")
result = client.tiktok.user_info_from_username(username="daviddobrik")

print("Data: ", result.data)
print("Units charged:", result.units_charged)

# Other Examples:
# result = client.instagram.user_info(username="daviddobrik")
# result = client.youtube.channel_subscribers(channel_id="UCnQghMm3Z164JFhScQYFTBw")

TikTok Guide

Get started with the TikTok API Guide. Find out which endpoints are available, and how you can use them with examples using the ensembledata python package.

Instagram Guide

Get started with the Instagram API Guide. Find out which endpoints are available, and how you can use them with examples using the ensembledata python package.



Missing Endpoints / Parameters

If you find that one of the endpoints from our API docs is not yet available in this package, you can use the EDClient.request method to specify the endpoint manually in the meantime.

from ensembledata.api import EDClient

client = EDClient("API-TOKEN")
result = client.request("/instagram/[example]", params={"foo": "...", "bar": "..."})

If you find that one the parameters to an existing endpoint is missing, you can still send this parameter via the extra_params dictionary which is available on all endpoint methods. See the example below:

from ensembledata.api import EDClient

client = EDClient("API-TOKEN")
result = client.instagram.user_info(username="...", extra_params={"baz": "..."})


Handling Errors

In the API docs, each endpoint lists a handful of possible errors the API may respond with. You can handle these errors by catching the EDError exception.

from ensembledata.api import EDClient, EDError, errors


client = EDClient("API-TOKEN")
try:
    result = client.tiktok.user_info_from_username(username="daviddobrik")
except EDError as e:

    # Rate limit exceeded...
    if e.status_code == errors.STATUS_429_RATE_LIMIT_EXCEEDED:
        print(e.detail)

    # Subscription expired...
    if e.status_code == errors.STATUS_493_SUBSCRIPTION_EXPIRED:
        print(e.detail)

except Exception as e:
    # Some other error occurred, unrelated to the EnsembleData API
    # E.g. httpx.RequestError, json.JSONDecodeError
    pass

    


Async

This package provides an asynchronous client, EDAsyncClient, which will give you access to async versions of all the same methods that can be found on the EDClient.

import asyncio

from ensembledata.api import EDAsyncClient


async def main():
    client = EDAsyncClient("API-TOKEN")
    result = await client.tiktok.user_info_from_username(username="daviddobrik")

if __name__ == "__main__":
    asyncio.run(main())

Network Retries

By default the EDClient will perform 3 retries when it encounters network issues. If you would like to customise this behaviour, you can pass in the max_network_retries param as show below:

Note: if the request times out, it will not be retried.

from ensembledata.api import EDClient

client = EDClient("API-TOKEN", max_network_retries=5)

Configure Timeout

If you would like control over the read timeout, you can configure this either for all request by setting timeout when creating the EDClient, or you can specify the timeout per request, on any of the individual methods as shown below:

Note: the timeout is specified in seconds.

from ensembledata.api import EDClient

client = EDClient("API-TOKEN", timeout=120)
result = client.tiktok.user_info_from_username(username="daviddobrik", timeout=10)

Types

The package uses type hints, and is type checked with the latest version of mypy. If you experience any type checking related issues with the package, please let us know by creating an issue.

Metadata

Release files for ensembledata 0.2.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ensembledata 0.2.11
File Size Uploaded
ensembledata-0.2.11.tar.gz 18.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ensembledata 0.2.11
File Interpreter ABI Platform
ensembledata-0.2.11-py3-none-any.whl Python 3 none any Details

Total release size: 31.2 kB

Release files / ensembledata-0.2.11.tar.gz

Download URL ensembledata-0.2.11.tar.gz
Size 18.1 kB
Tags Source
SHA-256 checksum
How to use checksums
16508b17778abb44184e4b391e552d185fba11b64abfe5e129103a3152cb160b
BLAKE2b-256 checksum
How to use checksums
17c87eb5e523845b37898510542843dd1ae499a263b2344fcc8f2903e9c1172b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 22, 2026.

Transparency log

Release files / ensembledata-0.2.11-py3-none-any.whl

Download URL ensembledata-0.2.11-py3-none-any.whl
Size 13.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5c303912b378b0a68028199265e563baa6ac3207fdacb8c37963c1d25c256cae
BLAKE2b-256 checksum
How to use checksums
c4ab0a0fb8f388b81e6c1921ea2a822e0912c03982ae2944d377cd516b006f44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 22, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.11 This release

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page