Generated Python clients for the Target Plus Seller Cloud APIs. Three packages live in this monorepo, one per OpenAPI spec.
| Package | Path | Spec | Version |
|---|---|---|---|
target-orders-client |
orders/ |
seller_orders-v1 — orders, fulfillment, cancel |
1.0.0 |
target-sellers-client |
sellers/ |
sellers-v1 — products, quantities, prices, returns, payments |
1.0.0 |
target-taxonomy-client |
taxonomy/ |
item_taxonomies-v2 — categories + attributes |
2.0.0 |
All three are output of Swagger Codegen, then renamed so the three import names don't collide (the Codegen default is swagger_client — same name across all three packages).
Pin a tag per package — tag prefix disambiguates which package the version belongs to.
# uv
uv add "target-orders-client @ git+https://github.com/acksession/target-api-clients.git@orders-v1.0.0#subdirectory=orders"
uv add "target-sellers-client @ git+https://github.com/acksession/target-api-clients.git@sellers-v1.0.0#subdirectory=sellers"
uv add "target-taxonomy-client @ git+https://github.com/acksession/target-api-clients.git@taxonomy-v2.0.0#subdirectory=taxonomy"
# pip
pip install "target-orders-client @ git+https://github.com/acksession/target-api-clients.git@orders-v1.0.0#subdirectory=orders"For private repos, use a PAT in the URL or ~/.netrc:
pip install "target-orders-client @ git+https://${GITHUB_TOKEN}@github.com/acksession/target-api-clients.git@orders-v1.0.0#subdirectory=orders"[project]
dependencies = [
"target-orders-client @ git+https://github.com/acksession/target-api-clients.git@orders-v1.0.0#subdirectory=orders",
"target-sellers-client @ git+https://github.com/acksession/target-api-clients.git@sellers-v1.0.0#subdirectory=sellers",
"target-taxonomy-client @ git+https://github.com/acksession/target-api-clients.git@taxonomy-v2.0.0#subdirectory=taxonomy",
]from target_orders_client import Configuration, ApiClient, OrdersApi, OrderFulfillmentsApi
from target_sellers_client import (
Configuration as SellersCfg, ApiClient as SellersClient,
ProductsApi, QuantitiesApi, PricesApi, ProductReturnsApi, PaymentsApi,
)
from target_taxonomy_client import (
Configuration as TaxCfg, ApiClient as TaxClient, ItemsApi, TaxonomiesApi,
)
cfg = Configuration()
cfg.host = "https://api-extgw-dev.partnersonline.com"
cfg.api_key["x-api-key"] = "..."
cfg.api_key["x-seller-id"] = "..."
cfg.api_key["x-seller-token"] = "..."
orders = OrdersApi(ApiClient(cfg))
resp = orders.get_orders(
x_api_key=cfg.api_key["x-api-key"],
x_seller_id=cfg.api_key["x-seller-id"],
x_seller_token=cfg.api_key["x-seller-token"],
seller_id="...",
)Tag prefix per package keeps versions independent.
# Bump orders only
git tag orders-v1.0.1 -m "fix: correct fulfillment payload model"
git push --tags
# Bump sellers
git tag sellers-v1.1.0
git push --tagsConsumers update the @ ref in their pyproject.toml.
The OpenAPI YAML specs live in apps/connector/docs/Target Docs/ in the EasyeSuite monorepo. To regenerate a client:
docker run --rm -v ${PWD}:/work openapitools/openapi-generator-cli generate \
-i /work/specs/seller_orders-v1.yaml \
-g python \
-o /work/orders \
--package-name target_orders_client \
--additional-properties=projectName=target-orders-client,packageVersion=1.0.0Then commit + tag.
Proprietary — Acksession internal.