A dlt source for Apple App Store Connect API
Project description
dlt-source-app-store-connect
A dlt source for Apple App Store Connect API.
Features
- 15 resources covering apps, builds, TestFlight, subscriptions, and reports
- Incremental loading for sales, finance, and analytics reports
- Automatic JWT token refresh
- Rate limit handling with exponential backoff
- Works with any dlt destination (BigQuery, Snowflake, DuckDB, etc.)
Installation
pip install dlt-source-app-store-connect
Or with uv:
uv add dlt-source-app-store-connect
Quick start
import dlt
from dlt_source_app_store_connect import app_store_connect_source
pipeline = dlt.pipeline(
pipeline_name="app_store_connect",
destination="bigquery", # or any dlt destination
dataset_name="source_app_store_connect",
)
source = app_store_connect_source(
key_id="YOUR_KEY_ID",
issuer_id="YOUR_ISSUER_ID",
private_key=open("AuthKey_XXXXX.p8").read(),
vendor_number="YOUR_VENDOR_NUMBER", # required for sales/finance reports
)
load_info = pipeline.run(source)
print(load_info)
Load specific resources
source = app_store_connect_source(
key_id="YOUR_KEY_ID",
issuer_id="YOUR_ISSUER_ID",
private_key=open("AuthKey_XXXXX.p8").read(),
resources=["apps", "builds", "sales_reports"],
)
Resources
| Resource | Write Disposition | Incremental | Description |
|---|---|---|---|
apps |
merge | - | App metadata |
app_store_versions |
merge | - | App Store version history |
builds |
merge | - | Build information |
beta_testers |
merge | - | TestFlight testers |
beta_groups |
merge | - | TestFlight groups |
bundle_ids |
merge | - | Bundle identifiers |
certificates |
merge | - | Signing certificates |
devices |
merge | - | Registered devices |
in_app_purchases |
merge | - | In-app purchase products |
subscriptions |
merge | - | Subscription products |
subscription_groups |
merge | - | Subscription groups |
users |
merge | - | Team members |
sales_reports |
append | daily | Sales and trends reports |
finance_reports |
append | monthly | Financial reports |
analytics_reports |
append | by processing date | Analytics reports |
sales_reports and finance_reports require vendor_number.
Authentication
You need an API key from App Store Connect.
Required credentials:
| Parameter | Description |
|---|---|
key_id |
The identifier for your API key |
issuer_id |
Your team's issuer ID |
private_key |
Contents of the .p8 file downloaded when creating the key |
vendor_number |
Your vendor number (required for sales/finance reports) |
Development
git clone https://github.com/ota2000/dlt-source-app-store-connect.git
cd dlt-source-app-store-connect
uv sync --group dev
uv run pytest -v
uv run ruff check .
Contributing
See CONTRIBUTING.md.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dlt_source_app_store_connect-0.2.0.tar.gz.
File metadata
- Download URL: dlt_source_app_store_connect-0.2.0.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b99799153cb85e95668c769512fddb815226b8028728bac60744474cadd58c2a
|
|
| MD5 |
8c7effc00fa3add825dcb1c915b6d5f5
|
|
| BLAKE2b-256 |
d33fd390f3627c96683e65b3a9197bfca76094f37dbe94493d6d66c64bb10a38
|
Provenance
The following attestation bundles were made for dlt_source_app_store_connect-0.2.0.tar.gz:
Publisher:
publish.yaml on ota2000/dlt-source-app-store-connect
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dlt_source_app_store_connect-0.2.0.tar.gz -
Subject digest:
b99799153cb85e95668c769512fddb815226b8028728bac60744474cadd58c2a - Sigstore transparency entry: 1185939572
- Sigstore integration time:
-
Permalink:
ota2000/dlt-source-app-store-connect@09a22897f3e5eeec603b7863a520d327fca75a7c -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/ota2000
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@09a22897f3e5eeec603b7863a520d327fca75a7c -
Trigger Event:
push
-
Statement type:
File details
Details for the file dlt_source_app_store_connect-0.2.0-py3-none-any.whl.
File metadata
- Download URL: dlt_source_app_store_connect-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cad64878ff2594be6f95ad87acfca217f71908513fa6bc4431c0eb1bcc56e98a
|
|
| MD5 |
e0e05c9e0aff3f2fda2bf0c505ecfaf4
|
|
| BLAKE2b-256 |
34da916758016b921b08c4eb91389ccf8d6c325dc1580317da65fcb97bb504df
|
Provenance
The following attestation bundles were made for dlt_source_app_store_connect-0.2.0-py3-none-any.whl:
Publisher:
publish.yaml on ota2000/dlt-source-app-store-connect
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dlt_source_app_store_connect-0.2.0-py3-none-any.whl -
Subject digest:
cad64878ff2594be6f95ad87acfca217f71908513fa6bc4431c0eb1bcc56e98a - Sigstore transparency entry: 1185939585
- Sigstore integration time:
-
Permalink:
ota2000/dlt-source-app-store-connect@09a22897f3e5eeec603b7863a520d327fca75a7c -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/ota2000
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@09a22897f3e5eeec603b7863a520d327fca75a7c -
Trigger Event:
push
-
Statement type: