Skip to content

CTR API

Fresh

Source: BIBLE.md (Phase 10 Route wrappers ctr-engine)

CTR endpoints: single click, batch, campaigns.

Routes

MethodRouteBody
POST/ctr/run{ keyword, targetDomain, city, state, dwellTime?, email?, ... }
POST/ctr/batch{ configs: [...] }
GET/campaigns-

Single CTR

bash
curl -X POST http://localhost:4700/ctr/run \
  -H "Content-Type: application/json" \
  -H "x-api-key: ghost-engine-key" \
  -d '{
    "keyword": "junk removal dallas",
    "targetDomain": "journeyjunkremoval.com",
    "city": "Dallas",
    "state": "TX",
    "dwellTime": "medium"
  }'

Return shape

json
{
  "success": true,
  "keyword": "junk removal dallas",
  "targetDomain": "journeyjunkremoval.com",
  "location": "Dallas, TX",
  "found": true,
  "position": 7,
  "dwelledMs": 198420,
  "totalTimeMs": 312000,
  "warmupSearches": 2,
  "preClicks": 1,
  "internalClicks": 3
}

Parameters

ParameterValuesDefault
keywordany stringrequired
targetDomaindomainrequired
citystringrequired
state2-letter coderequired
dwellTimeshort/medium/longmedium
emailaccount emailrandom
warmupSearchestrue/falsetrue
maxPages1-103
testModetrue/falsefalse

Batch CTR

bash
curl -X POST http://localhost:4700/ctr/batch \
  -H "Content-Type: application/json" \
  -H "x-api-key: ghost-engine-key" \
  -d '{
    "configs": [
      { "keyword": "junk removal dallas", "targetDomain": "client.com", "city": "Dallas", "state": "TX" },
      { "keyword": "junk hauling dallas", "targetDomain": "client.com", "city": "Dallas", "state": "TX" }
    ],
    "concurrency": 2
  }'

List campaigns

bash
curl http://localhost:4700/campaigns