Herb Partner Program

Add Out-of-Home Advertising
to your platform in hours

Your users create stunning work. Give them a way to put it on billboards, transit screens, and DOOH displays nationwide — without leaving your app.

Integrates with
🎨 Canva
🎬 Higgsfield AI
Adobe Express Coming soon
📱 CapCut Coming soon
🖼 Figma Q3 2026
● Production & Network Partners — Live

The supply chain behind every install.

Herb doesn't try to do it all. We integrate with the best operators, printers, and exchanges in the country — and the buyer never knows there are five companies in the loop.

★ DIRECT REP NETWORK
Pearl Media
NEW YORK CITY · PARTNER INVENTORY
NYC's premier digital wallscape network. Brookfield Place, Manhattan West, Soho, Times Square. Pearl provides the inventory, Herb provides the sales floor and proof-of-install layer.
Format: Digital wallscapes & spectaculars
Reach: 685K+ weekly impressions
Take rate: 15% direct rep
▼ PRODUCTION + LIFT ERP
Larger Than Life
ERLANGER, KY · DIGITAL LARGE-FORMAT PRINT
One of the world's premier digital large-format print houses. Their Lift ERP platform integrates directly with Herb's data fabric — artwork in, verified spec, printed, shipped, installed, hashed.
Capability: Wallscapes, bulletins, transit, vinyl
Lead time: 5–7 business days from approval
Spec library: GitHub-style versioning, propagates platform-wide
⭐ OWNED INVENTORY
The Prism NJ
NEW JERSEY · 4 PREMIUM BULLETINS
Our owned-and-operated inventory. Route 80 East at Wharton, Route 17 North at Ramsey, more coming. Direct-billed at 70% net margin. The hardware flywheel that compounds with every acquisition.
Format: Digital bulletins (14×48)
Reach: ~210K weekly impressions per board
Year-1 target: 8 owned boards · ~$526K revenue
◇ PROGRAMMATIC EXCHANGE
AdQuick
NATIONAL · 22 LIVE UNITS · GROWING
Programmatic OOH inventory across the U.S. — freeway bulletins, transit, malls. Buyers get reach without curation overhead; Herb handles the spec validation and proof-of-install layer.
Format: Programmatic, mixed
Coverage: National, scaling weekly
Take rate: 8% programmatic
★ DIRECT NETWORK
Wild Postings Network
URBAN · 74 STREET-LEVEL UNITS
Street-level wild posting and non-traditional formats. Hell's Kitchen, Soho, Williamsburg. The format brands use when they want gritty, authentic urban presence — verified just like every other unit.
Format: Wild posting, street-sheet
Coverage: NYC + emerging markets
Take rate: 15% direct
⏳ IN DISCUSSION
Top-3 Operator Integration
NATIONAL · TBD
In discussions with Lamar, Clear Channel, and OUTFRONT for direct API integration. Founder relationships open the door; Herb's verification layer is the value-add they don't yet have.
Status: Active conversations
Target: Year-1 close
3
Markets Live
685K+
Weekly Impressions
48h
Avg. Time to Live
10%
Partner Rev Share
API Rate Limit (Growth+)

How it works

From creative to billboard
in one click

Herb handles inventory, spec validation, fulfillment, and billing — you just add the button.

01
🔌
Add the integration
Embed our widget in an iframe or call the API directly. Get a partner key and you're live the same day.
02
🎨
User creates their ad
They design in Canva, generate a video in Higgsfield, or export from any tool. The creative URL gets passed to Herb.
03
📍
Herb matches inventory
We auto-validate the creative against OOH specs, show available units in their market, and handle the booking.
04
💰
Both sides earn
You earn a revenue share on every campaign booked through your integration. Herb handles all fulfillment.
Live Demo

This is what your
users see

The booking widget is embedded directly in your app. Users never leave your platform — they select markets, choose units, and confirm. You get a webhook with the campaign details.

Works in any iframe (480×640px recommended)
Passes creative URL from your platform
postMessage callback when booking completes
Branded with your platform name
Embed snippet
<iframe
  src="https://herb.sasta.ai/widget
    ?partner=pk_canva_demo
    &creative_url={{EXPORT_URL}}
    &markets=nyc,nj
    &budget=5000"
  width="480" height="640"
  frameborder="0">
</iframe>
← Live demo — try selecting markets and units
API Reference

Simple. Three endpoints.

Base URL: https://herb.sasta.ai/api/v1

GET /inventory List available OOH units
ParamTypeRequiredDescription
marketstringoptionalnyc, nj, or all (default: all)
budgetnumberoptionalMax 4-week rate in USD
formatstringoptionalFilter by format keyword (e.g. "digital")
lat / lngnumberoptionalFilter by location
radius_milesnumberoptionalRadius for geo filter
limitnumberoptionalMax results (default: 30)
{
  "count": 12,
  "market": "nyc",
  "units": [
    {
      "id": "P-042",
      "neighborhood": "Lower East Side",
      "format": "Digital Bulletin",
      "size": "14'×48'",
      "market": "pearl",
      "lat": 40.7157,
      "lng": -73.9863,
      "impressions_weekly": "210,000",
      "rate_4wk": 7200,
      "rate_4wk_display": "$7,200"
    }
  ]
}
POST /campaigns Create a campaign → returns booking URL
Body FieldTypeRequiredDescription
creative_urlstringrequiredURL to the creative asset (image, video, PDF)
marketsstring[]requiredArray of market codes: ["nyc","nj"]
budgetnumberrequiredTotal campaign budget in USD
partner_keystringoptionalYour partner API key
duration_weeksnumberoptionalCampaign length (default: 4)
advertiserstringoptionalAdvertiser / brand name
contactstringoptionalContact email to pre-fill
// Request
{
  "creative_url": "https://cdn.higgsfield.ai/exports/abc123.mp4",
  "markets": ["nyc", "nj"],
  "budget": 8000,
  "partner_key": "pk_higgsfield_demo",
  "advertiser": "Tacos El Rey"
}

// Response 201
{
  "campaign_id": "cmp_m8x2k9",
  "status": "pending_booking",
  "partner": "Higgsfield AI",
  "booking_url": "https://herb.sasta.ai/widget?campaign_id=cmp_m8x2k9&...",
  "embed_url":   "https://herb.sasta.ai/widget?campaign_id=cmp_m8x2k9&...&embed=1",
  "preview_units": [...],
  "created_at": "2026-04-08T14:22:00Z"
}
POST /validate-creative Check a creative against OOH specs
Body FieldTypeRequiredDescription
urlstringrequiredCreative asset URL
format_idstringoptionale.g. "bulletin", "digital-brd"
width / heightnumberoptionalAsset dimensions in pixels
file_typestringoptionale.g. "jpg", "mp4"
// Response
{
  "status": "needs_review",
  "checks": [
    { "check": "file_type",   "pass": true,  "actual": "mp4" },
    { "check": "color_mode",  "pass": null,  "expected": "RGB" },
    { "check": "bleed",       "pass": null,  "expected": "None required" }
  ],
  "compatible_formats": [
    { "id": "digital-brd", "label": "Digital Billboard (16:9)", "type": "digital" }
  ],
  "recommended_action": "Review the flagged items with your vendor"
}
Integration Snippets
Canva Apps SDK
Higgsfield / API
Plain iframe
Webhook / postMessage
// Canva Apps SDK — add to your app's export handler
import { getCurrentPageAsImage } from '@canva/design';

async function publishToOOH() {
  // 1. Export the current Canva design
  const result = await getCurrentPageAsImage({ format: 'png' });

  // 2. Create a Herb campaign — returns a booking URL
  const res = await fetch('https://herb.sasta.ai/api/v1/campaigns', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      creative_url: result.url,
      markets:      ['nyc', 'nj'],
      budget:       5000,
      partner_key:  'YOUR_PARTNER_KEY',
    }),
  });
  const { embed_url } = await res.json();

  // 3. Open the booking widget in a Canva App panel
  openExternalUrl(embed_url);
}
// After Higgsfield video export — call from your "Distribute" button
async function distributeToOOH(videoExportUrl) {
  const res = await fetch('https://herb.sasta.ai/api/v1/campaigns', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      creative_url:   videoExportUrl,      // mp4 URL from Higgsfield CDN
      markets:        ['nyc'],
      budget:         8000,
      duration_weeks: 4,
      partner_key:    'YOUR_PARTNER_KEY',
    }),
  });

  const campaign = await res.json();

  // Option A: Open booking URL in new tab
  window.open(campaign.booking_url, '_blank');

  // Option B: Embed the widget in a modal
  showModal(`<iframe src="${campaign.embed_url}"
    width="480" height="640" frameborder="0"></iframe>`);
}
<!-- Drop this wherever you want the booking widget -->
<iframe
  id="prism-widget"
  src="https://herb.sasta.ai/widget
    ?partner=YOUR_PARTNER_KEY
    &creative_url=https://your-cdn.com/creative.jpg
    &markets=nyc,nj
    &budget=5000
    &embed=1"
  width="480"
  height="640"
  frameborder="0"
  allow="payment">
</iframe>
// Listen for booking confirmation via postMessage
window.addEventListener('message', (event) => {
  if (event.data?.type === 'prism:campaign_confirmed') {
    const { campaign_id, total, units, markets } = event.data;

    console.log(`Campaign booked: ${campaign_id}`);
    console.log(`${units} units across ${markets.join(', ')}`);
    console.log(`Total spend: $${total.toLocaleString()}`);

    // Close the widget / modal
    closeModal();

    // Track in your analytics
    analytics.track('ooh_campaign_booked', {
      campaign_id, total, units, markets,
    });
  }

  if (event.data?.type === 'prism:close') {
    closeModal();
  }
});

Partnership Tiers

Pick the model that fits

All tiers get access to the full inventory, booking widget, and API. Revenue share pays out monthly.

Starter
Referral
5% rev share
Add a "Run as OOH Ad" link or button. Users click through to Herb's site to book. Zero engineering required.
Referral link or button
Monthly payout on booked campaigns
Partner dashboard + analytics
No engineering required
Get Started →
Platform
White-Label
Custom deal
Herb powers your OOH distribution under your brand. Fully white-labeled, custom contracts, dedicated inventory allocation.
Fully white-labeled widget + API
Dedicated inventory allocation
Custom revenue share structure
Dedicated account manager
SLA + uptime guarantees
Direct inventory API access
Talk to Us →
Partner Application

Let's build this together

We review all applications within 48 hours. Growth and Platform partners get a partner key the same day.

🎯 Application received — we'll be in touch within 48 hours.