Outlets

Endpoints for listing and retrieving outlet details from the Presscart marketplace.

List outlets

GET /outlets

List outlet products from the marketplace.

Scope: outlets.lists

Description: Returns outlet products with nested outlet details, channels, tags, and pricing. Defaults to active outlets. API-token callers with pro pricing enabled receive all pricing tiers.

Note: Each record's id is the product ID. Use the outlet_id field when calling GET /outlets/{outlet_id} to retrieve outlet details.

Parameters

ParameterTypeDescription
limitnumberNumber of records per page (default: 25)
pagenumberPage number (default: 1)
sort_bystringField to sort by: name, created_at, domain_authority, domain_ranking (default: created_at)
order_bystringSort direction: asc or desc (default: desc)

Filters

Pass filters as query parameters using bracket notation, e.g. filters[search]=tech&filters[channel_type]=WEBSITE.

FilterTypeDescription
filters[search]stringSearch by product name or outlet name
filters[status]stringOutlet status: ACTIVE, INACTIVE, DRAFT, PENDING_REVIEW, PENDING_AGREEMENT, REJECTED, ARCHIVED, SUSPENDED (default: ACTIVE)
filters[channel_type]stringFilter by channel type: WEBSITE, NEWSLETTER, INSTAGRAM, LINKEDIN, YOUTUBE, TIKTOK, TWITTER_X, PODCAST, OTHER
filters[placement_type]stringFilter by placement type: FULL_FEATURE, PRESS_RELEASE, MENTION, QUOTE, LISTICLE
filters[is_do_follow]booleanFilter by do-follow link status
filters[is_indexed]booleanFilter by indexed status
filters[disclaimer]stringFilter by disclaimer name (see List disclaimers)
filters[tags]string[]Filter by tag names (see List tags). Example: filters[tags][0]=Tech&filters[tags][1]=Finance
filters[country]stringFilter by country (Global outlets are always included)
filters[state]stringFilter by state
filters[city]stringFilter by city
filters[pricing][min]numberMinimum price
filters[pricing][max]numberMaximum price
filters[domain_authority][min]numberMinimum domain authority
filters[domain_authority][max]numberMaximum domain authority
filters[domain_ranking][min]numberMinimum domain ranking
filters[domain_ranking][max]numberMaximum domain ranking
filters[turnaround_time][min]numberMinimum turnaround time (days)
filters[turnaround_time][max]numberMaximum turnaround time (days)
filters[most_popular]booleanWhen true, return records sorted by most ordered
filters[new_last_30_days]booleanWhen true, only return records created within the last 30 days, sorted by newest first

Request

curl "https://api.presscart.com/outlets?limit=10&page=1&filters[search]=tech&filters[channel_type]=WEBSITE" \
  -H "Authorization: Bearer $PRESSCART_API_TOKEN"

Response

{
  "records": [
    {
      "id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
      "outlet_id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
      "name": "Premium Tech Feature",
      "description": "Full-length feature article on a leading tech publication",
      "requirements": "Must include company background and product details",
      "min_delivery_days": 5,
      "max_delivery_days": 14,
      "is_featured": false,
      "created_at": "2025-01-15T10:30:00.000Z",
      "outlet_name": "TechDaily",
      "website_url": "https://techdaily.com",
      "logo": "https://cdn.presscart.com/logos/techdaily.png",
      "city": "San Francisco",
      "state": "CA",
      "country": "US",
      "channels": [
        {
          "channel_type": "WEBSITE",
          "placement_type": "FULL_FEATURE",
          "is_do_follow": true,
          "domain_authority": 72,
          "domain_ranking": 65,
          "disclaimer_name": "Sponsored",
          "disclaimer_description": "This is a sponsored post"
        }
      ],
      "tags": [{ "name": "Technology" }, { "name": "Startups" }],
      "prices": [
        {
          "unit_amount": 1500,
          "currency": "usd",
          "pricing_tier": "basic"
        }
      ]
    }
  ],
  "total_records": 150,
  "total_pages": 15,
  "current_page": 1,
  "next_page": 2,
  "previous_page": null
}

Get outlet

GET /outlets/{outlet_id}

Retrieve a single outlet by ID.

Scope: outlets.read

Description: Returns the full outlet details. Internal pricing fields are removed for API-token callers.

Path parameters

ParameterTypeDescription
outlet_idstringUUID of the outlet

Request

curl "https://api.presscart.com/outlets/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" \
  -H "Authorization: Bearer $PRESSCART_API_TOKEN"

Response

{
  "id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
  "name": "TechDaily",
  "description": "A leading technology news publication",
  "website_url": "https://techdaily.com",
  "logo": "https://cdn.presscart.com/logos/techdaily.png",
  "country": "US",
  "state": "CA",
  "city": "San Francisco",
  "is_indexed": true,
  "tags": [{ "name": "Technology" }, { "name": "Startups" }],
  "outlet_channels": [
    {
      "id": "cccccccc-cccc-cccc-cccc-cccccccccccc",
      "outlet_id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
      "channel_type": "WEBSITE",
      "placement_type": "FULL_FEATURE",
      "channel_handle": null,
      "channel_url": "https://techdaily.com",
      "social_links": [],
      "is_do_follow": true,
      "domain_authority": 72,
      "domain_ranking": 65,
      "do_follow_links_allowed": null,
      "disclaimer_name": "Sponsored",
      "disclaimer_description": "This is a sponsored post"
    }
  ],
  "created_at": "2025-01-15T10:30:00.000Z",
  "updated_at": "2025-03-10T08:00:00.000Z"
}

List outlet products

GET /outlets/{outlet_id}/products

Retrieve a paginated list of products for a specific outlet.

Scope: outlets.read

Description: Returns products belonging to the specified outlet, with nested channels, tags, and pricing. Supports the same filters and sorting as GET /outlets.

Path parameters

ParameterTypeDescription
outlet_idstringUUID of the outlet

Parameters

ParameterTypeDescription
limitnumberNumber of records per page (default: 25)
pagenumberPage number (default: 1)
sort_bystringField to sort by: name, created_at, domain_authority, domain_ranking (default: created_at)
order_bystringSort direction: asc or desc (default: desc)

Filters are the same as List outlets — see the filters table above.

Request

curl "https://api.presscart.com/outlets/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/products?limit=10&page=1" \
  -H "Authorization: Bearer $PRESSCART_API_TOKEN"

Response

{
  "records": [
    {
      "id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
      "outlet_id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
      "name": "Premium Tech Feature",
      "description": "Full-length feature article on a leading tech publication",
      "requirements": "Must include company background and product details",
      "min_delivery_days": 5,
      "max_delivery_days": 14,
      "is_featured": false,
      "created_at": "2025-01-15T10:30:00.000Z",
      "outlet_name": "TechDaily",
      "website_url": "https://techdaily.com",
      "logo": "https://cdn.presscart.com/logos/techdaily.png",
      "city": "San Francisco",
      "state": "CA",
      "country": "US",
      "channels": [
        {
          "channel_type": "WEBSITE",
          "placement_type": "FULL_FEATURE",
          "is_do_follow": true,
          "domain_authority": 72,
          "domain_ranking": 65,
          "disclaimer_name": "Sponsored",
          "disclaimer_description": "This is a sponsored post"
        }
      ],
      "tags": [{ "name": "Technology" }, { "name": "Startups" }],
      "prices": [
        {
          "unit_amount": 1500,
          "currency": "usd",
          "pricing_tier": "basic"
        }
      ]
    }
  ],
  "total_records": 3,
  "total_pages": 1,
  "current_page": 1,
  "next_page": null,
  "previous_page": null
}

List countries

GET /outlets/locations/countries

Scope: outlets.read

Returns distinct countries where outlets are located. Optionally filter by country name.

Parameters

ParameterTypeRequiredDescription
countrystringNoFilter by country (e.g. United States)

Request

curl "https://api.presscart.com/outlets/locations/countries" \
  -H "Authorization: Bearer $PRESSCART_API_TOKEN"

Response

{
  "countries": ["Australia", "Canada", "Philippines", "Spain", "United Kingdom", "United States"]
}

List states

GET /outlets/locations/states

Scope: outlets.read

Returns distinct states. Optionally filter by country.

Parameters

ParameterTypeRequiredDescription
countrystringNoFilter by country (e.g. United States)

Request

curl "https://api.presscart.com/outlets/locations/states?country=United%20States" \
  -H "Authorization: Bearer $PRESSCART_API_TOKEN"

Response

{
  "states": ["California", "Florida", "New York", "Texas"]
}

List cities

GET /outlets/locations/cities

Scope: outlets.read

Returns distinct cities. Optionally filter by country and/or state.

Parameters

ParameterTypeRequiredDescription
countrystringNoFilter by country (e.g. United States)
statestringNoFilter by state (e.g. California)

Request

curl "https://api.presscart.com/outlets/locations/cities?country=United%20States&state=California" \
  -H "Authorization: Bearer $PRESSCART_API_TOKEN"

Response

{
  "cities": ["Los Angeles", "San Diego", "San Francisco", "San Jose"]
}

List tags

GET /tags

Scope: tags.lists

Returns a list of tag names. Use these values in the filters[tags] parameter when calling List outlets or List product listings.

Parameters

ParameterTypeDescription
limitnumberRecords per page (default: 25)
pagenumberPage number

Filters

FilterTypeDescription
filters[search]stringSearch by tag name
filters[category]stringFilter by category: TOPIC, AUDIENCE, LOCATION, ROLE, COMPANY_SIZE
filters[fetch_all]stringSet to true to return all tags without pagination

Request

curl "https://api.presscart.com/tags?filters[category]=TOPIC" \
  -H "Authorization: Bearer $PRESSCART_API_TOKEN"

Response

{
  "records": [
    { "name": "Technology" },
    { "name": "Finance" },
    { "name": "Healthcare" }
  ],
  "total_records": 42,
  "total_pages": 2,
  "current_page": 1,
  "next_page": 2,
  "previous_page": null
}

List disclaimers

GET /outlet-disclaimers

Scope: outlet_disclaimers.lists

Returns a list of disclaimers with their names and descriptions. Use the name values in the filters[disclaimer] parameter when calling List outlets, or in filters[disclaimer_ids] when calling List product listings.

Parameters

ParameterTypeDescription
limitnumberRecords per page (default: 25)
pagenumberPage number

Filters

FilterTypeDescription
filters[fetch_all]stringSet to true to return all disclaimers without pagination

Request

curl "https://api.presscart.com/outlet-disclaimers?filters[fetch_all]=true" \
  -H "Authorization: Bearer $PRESSCART_API_TOKEN"

Response

{
  "records": [
    {
      "id": "dddddddd-dddd-dddd-dddd-dddddddddddd",
      "name": "Sponsored",
      "description": "This is a sponsored post"
    },
    {
      "id": "eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee",
      "name": "Advertorial",
      "description": "Paid promotional content"
    }
  ],
  "total_records": 5,
  "total_pages": 1,
  "current_page": 1,
  "next_page": null,
  "previous_page": null
}

On this page