Manage API keys →

Marketing that connects to your app.

Brandsoara has its own accounts, company workspaces, and deployment. Connect any application through your backend.

Connect in four steps

  1. Create a Brandsoara company workspace and configure its brand, or use PUT /brand.
  2. Open Integrations and create a key with only the permissions your backend needs. Store it in your backend’s secret manager.
  3. Request campaigns with a stable Idempotency-Key. A 202 response means accepted; the worker dispatches queued requests every minute. Poll the campaign every 10–15 seconds until status is review or failed. Image generation may continue after captions reach review.
  4. Open the returned review_path in Brandsoara for approval and scheduling. Report verified business outcomes from your backend using a unique event_key.

Available endpoints

EndpointPermission
GET /brandbrand:read
PUT /brandbrand:write
GET /campaignscampaigns:read
POST /campaignscampaigns:generate
GET /campaigns/:idcampaigns:read
GET /campaigns/:id/resultscampaigns:read
POST /campaigns/:id/outcomesoutcomes:write
Download the OpenAPI 3.1 contract →

Request a campaign from your backend

const response = await fetch(
  process.env.POSTLY_URL + '/api/v1/campaigns',
  {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer ' + process.env.POSTLY_API_KEY,
      'Content-Type': 'application/json',
      'Idempotency-Key': 'spring-launch-2027-001'
    },
    body: JSON.stringify({
      name: 'Spring launch',
      goal: 'leads',
      audience: 'Local business owners seeking our services',
      offer: 'Book a consultation with our team',
      landing_url: 'https://your-company.example/consult',
      platforms: ['facebook', 'instagram'],
      post_count: 4,
      model: 'gpt-6.1-sol'
    })
  }
);
const payload = await response.json();
if (!response.ok) throw new Error(payload.error.message);
// Persist payload.data.id and poll its status_url.
// Open review_path in Brandsoara to approve and schedule posts.

Authentication, retries, and limits