RankSharkDocs
Campaigns

Replace a campaign

RankShark EnhanceScopecampaigns:write

PUT
/api/v1/campaigns/{id}

Send the whole campaign document (as GET returns it, edited). Masked secrets ("********") keep their stored value. The workflow is changed with PUT /api/v1/campaigns/{id}/flow.

Authorization

headerAuthorizationBearer <token>

An Enhance API key (rsen_…) or an OAuth 2.1 access token, as "Authorization: Bearer …".

Path Parameters

id*string

Campaign id

Request Body

application/json
  1. body

A campaign document. Only the main fields are listed; the other settings come back as they are stored and are kept when you send them back (the panel's campaign editor covers them; GET /api/v1/schema/document describes them). Secrets (passwords and keys) are returned as "********": send them back unchanged and the stored value is kept.

Id*string

Campaign id

CampaignName*string
TargetKeywod?string

The main keyword (the field name is spelled this way)

TargetWebsiteOrBusinessName?string
Tags?array<string>
CreatedDate?string
Formatdate-time
lastStatus?string

The last status text

Running?boolean
Stopped?boolean
Completed?boolean
TotalVisitorsSent?integer
DailyVisitorsSent?integer
DailyVisitorsLimit?integer

0 = no daily limit

Configuration?

Campaign-wide settings

Tasks?array<>

The traffic sources

FlowGraph?string

The stored workflow (use /api/v1/campaigns/{id}/flow)

[key: string]?any

Response Body

The saved campaign

application/json
  1. response

A campaign document. Only the main fields are listed; the other settings come back as they are stored and are kept when you send them back (the panel's campaign editor covers them; GET /api/v1/schema/document describes them). Secrets (passwords and keys) are returned as "********": send them back unchanged and the stored value is kept.

Id*string

Campaign id

CampaignName*string
TargetKeywod?string

The main keyword (the field name is spelled this way)

TargetWebsiteOrBusinessName?string
Tags?array<string>
CreatedDate?string
Formatdate-time
lastStatus?string

The last status text

Running?boolean
Stopped?boolean
Completed?boolean
TotalVisitorsSent?integer
DailyVisitorsSent?integer
DailyVisitorsLimit?integer

0 = no daily limit

Configuration?

Campaign-wide settings

Tasks?array<>

The traffic sources

FlowGraph?string

The stored workflow (use /api/v1/campaigns/{id}/flow)

[key: string]?any
Example Request
curl -X PUT 'https://panel.rankshark.io/api/v1/campaigns/string' \  -H 'Content-Type: application/json' \  -d '{  "Id": "3f6c2a9e-5b1d-4c7a-9e2f-8a4b6c1d2e3f",  "CampaignName": "Harbor Bakery - organic search (spring)",  "TargetKeywod": "sourdough bakery portland",  "TargetWebsiteOrBusinessName": "harborbakery.example",  "Tags": [    "bakery",    "search"  ],  "CreatedDate": "2026-10-20T09:15:00Z",  "lastStatus": "Visit completed",  "Running": true,  "Stopped": false,  "Completed": false,  "TotalVisitorsSent": 412,  "DailyVisitorsSent": 18,  "DailyVisitorsLimit": 60,  "Configuration": {    "NumberOfVisitors": 1000,    "UnlimitedVisitors": false,    "SearchLanguage": "en",    "Scrolling": true,    "LogEnabled": true  },  "Tasks": [    {      "TargetAddress": "harborbakery.example",      "TrafficMode": {        "TrafficSettingsRefactored": {          "$type": "GoogleTraffic",          "SearchEngineWebsiteAddress": "google.com",          "ClickChance": 100,          "Language": "en",          "FromPage": 1,          "ToPage": 5        }      }    }  ]}'
Example Response
{  "Id": "string",  "CampaignName": "string",  "TargetKeywod": "string",  "TargetWebsiteOrBusinessName": "string",  "Tags": [    "string"  ],  "CreatedDate": "2019-08-24T14:15:22Z",  "lastStatus": "string",  "Running": true,  "Stopped": true,  "Completed": true,  "TotalVisitorsSent": 0,  "DailyVisitorsSent": 0,  "DailyVisitorsLimit": 0,  "Configuration": {},  "Tasks": [    {}  ],  "FlowGraph": "string"}