Skip to main content
Run backlink research campaigns, manage opportunities discovered for each campaign, and generate or send personalized outreach emails. Function: public-api-backlinks Base path: https://app.keupera.com/api/v1/public-api-backlinks

List campaigns

GET /campaigns
ParameterTypeDescription
website_idUUIDTarget website

Response

{
  "data": [
    {
      "id": "uuid",
      "keyword": "seo tools",
      "niche": "Digital Marketing",
      "status": "active",
      "language": "en",
      "general_strategies": [],
      "websites": { "url": "https://example.com" },
      "created_at": "2024-01-15T10:00:00Z"
    }
  ]
}

Create campaign

POST /campaigns

Request body

{
  "website_id": "uuid",
  "keyword": "seo tools",
  "niche": "Digital Marketing",
  "language": "en"
}
FieldRequiredDescription
keywordYesTarget keyword for backlink research
nicheYesIndustry/niche context
languageNoLanguage code (defaults to website language)

Response (201)

{
  "data": {
    "id": "uuid",
    "keyword": "seo tools",
    "niche": "Digital Marketing",
    "status": "active"
  }
}
Backlink opportunity research is automatically triggered in the background once a campaign is created.

Get campaign details

GET /campaigns/:id

Response

{
  "data": {
    "id": "uuid",
    "keyword": "seo tools",
    "niche": "Digital Marketing",
    "general_strategies": [],
    "websites": { "url": "https://example.com" }
  }
}

List campaign opportunities

GET /campaigns/:id/opportunities

Response

{
  "data": [
    {
      "id": "uuid",
      "url": "https://target-site.com/article",
      "title": "Top SEO Tools Review",
      "strategy": "guest_post",
      "type": "blog",
      "relevance_score": 85,
      "domain_authority": 45,
      "status": "new",
      "contact_email": null,
      "outreach_status": null,
      "notes": null
    }
  ]
}

Get strategic recommendations

GET /campaigns/:id/recommendations

Response

{
  "data": {
    "campaign_id": "uuid",
    "strategies": [
      {
        "title": "Guest Posting on Authority Blogs",
        "description": "Write high-quality guest posts...",
        "difficulty": "medium",
        "impact": "high"
      }
    ]
  }
}

Get a single opportunity

GET /opportunities/:id

Response

{
  "data": {
    "id": "uuid",
    "url": "https://target-site.com/article",
    "title": "Top SEO Tools Review",
    "strategy": "guest_post",
    "relevance_score": 85,
    "status": "new",
    "contact_email": null,
    "backlink_campaigns": {
      "keyword": "seo tools",
      "websites": { "url": "https://example.com" }
    }
  }
}

Update an opportunity

PATCH /opportunities/:id

Request body

{
  "status": "contacted",
  "contact_email": "editor@target-site.com",
  "contact_name": "John Doe",
  "outreach_status": "email_sent",
  "notes": "Sent initial outreach on Jan 15"
}
FieldTypeDescription
statusstringOpportunity status
contact_emailstringContact email address
contact_namestringContact person name
outreach_statusstringOutreach progress status
notesstringFree-text notes

Response

{
  "success": true,
  "updated": { "status": "contacted", "contact_email": "editor@target-site.com" }
}

Generate an outreach email

POST /opportunities/:id/generate-email
Generates an AI-written personalized outreach email for the opportunity.

Response

{
  "data": {
    "opportunity_id": "uuid",
    "email_text": "Subject: Partnership Opportunity...\n\nHi,\n\n...",
    "email_html": "<p>Subject: Partnership Opportunity...</p>..."
  }
}

Send an outreach email

POST /opportunities/:id/send-email

Request body

{
  "to_email": "editor@target-site.com",
  "subject": "Partnership Opportunity — SEO Tools",
  "body_text": "Hi John,\n\nI'd love to collaborate...",
  "body_html": "<p>Hi John,</p><p>I'd love to collaborate...</p>"
}
FieldRequiredDescription
to_emailYesRecipient email address
subjectYesEmail subject line
body_textYesPlain text email body
body_htmlNoHTML email body
Organization SMTP settings must be configured under Settings before sending.

Response

{
  "success": true,
  "message": "Email queued for sending. Opportunity status updated to outreach_sent.",
  "data": { "opportunity_id": "uuid", "to_email": "editor@target-site.com", "subject": "..." }
}