Outlets¶
Browse the marketplace of outlets (publications, newsletters, social channels) and their metadata.
client.outlets # OutletsResource
Methods overview¶
Method |
HTTP |
Scope |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
list¶
List marketplace outlets.
def list(
*,
limit: int = 25,
page: int = 1,
sort_by: str | None = None,
order_by: str | None = None,
filters: dict | None = None,
as_json: bool | None = None,
) -> Paginated[OutletListing] | dict
Returns a Paginated envelope of OutletListing. See Pagination.
sort_by options: name, created_at, domain_authority, domain_ranking
order_by options: asc, desc (default desc)
filters (all optional):
Key |
Type |
Values |
|---|---|---|
|
|
Free-text on outlet/product name |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Disclaimer name |
|
|
Tag names |
|
|
|
|
|
USD cents |
|
|
|
|
|
|
|
|
Days |
Example
page = client.outlets.list(
limit=50,
sort_by="domain_authority",
order_by="desc",
filters={
"country": "United States",
"channel_type": "WEBSITE",
"is_do_follow": True,
"pricing[max]": 50000, # cents
},
)
for row in page.records:
print(f"{row.outlet_name:40} ${row.prices[0].unit_amount/100:>7.2f}")
Note: in the listing response,
idis a product id (what you pass toorders.create_checkout). The outlet id isoutlet_id.
get¶
Fetch a single outlet with its channels.
def get(
outlet_id: str,
*,
as_json: bool | None = None,
) -> Outlet | dict
Returns Outlet.
Example
outlet = client.outlets.get("out_123")
for ch in outlet.outlet_channels:
print(ch.channel_type, ch.placement_type, ch.domain_authority)
Errors — NotFoundError if the outlet doesn’t exist or is on another team.
list_products¶
Products for a single outlet. Same filter/sort shape as list, but scoped to one outlet.
def list_products(
outlet_id: str,
*,
limit: int = 25,
page: int = 1,
sort_by: str | None = None,
order_by: str | None = None,
filters: dict | None = None,
as_json: bool | None = None,
) -> Paginated[OutletListing] | dict
Returns a Paginated envelope of OutletListing.
list_countries¶
def list_countries(
*,
country: str | None = None,
as_json: bool | None = None,
) -> CountriesResponse | dict
Returns CountriesResponse — a wrapper around {"countries": [...]}.
list_states¶
def list_states(
*,
country: str | None = None,
as_json: bool | None = None,
) -> StatesResponse | dict
Returns StatesResponse — a wrapper around {"states": [...]}. Pass country to scope states to one country.
list_cities¶
def list_cities(
*,
country: str | None = None,
state: str | None = None,
as_json: bool | None = None,
) -> CitiesResponse | dict
Returns CitiesResponse — a wrapper around {"cities": [...]}.
list_disclaimers¶
def list_disclaimers(
*,
limit: int = 25,
page: int = 1,
filters: dict | None = None,
as_json: bool | None = None,
) -> Paginated[DisclaimerRecord] | dict
Returns a Paginated envelope of DisclaimerRecord. Use filters={"fetch_all": "true"} to get them all at once.
Recipes¶
Find the top 10 US outlets by DA¶
top = client.outlets.list(
limit=10,
sort_by="domain_authority",
order_by="desc",
filters={"country": "United States"},
)
for o in top.records:
print(o.outlet_name, o.channels[0].domain_authority)
Budget filter¶
affordable = client.outlets.list(
filters={"pricing[min]": 5000, "pricing[max]": 25000} # $50–$250
)