ShopUpdate Campaign

Update Campaign

Change the name, dates, refresh interval, or which jobs are included in a campaign. Send only the fields you want to change. See Publish a Campaign.

curl -X PATCH "https://api.getkini.com/campaigns/4711/" \
  -H "Content-Type: application/json" \
  -H "Company-Id: 1" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
  "name": "Sponsored Jobs Berlin",
  "starts_at": "2026-11-16T00:00:00Z",
  "ends_at": "2026-12-16T00:00:00Z",
  "refresh_interval": 14,
  "job_selection_mode": "manual",
  "job_filter": [
    {
      "field": "city",
      "op": "eq",
      "value": "Berlin"
    }
  ],
  "included_jobs": [
    123456
  ]
}'
{
  "id": 4711,
  "name": "Sponsored Jobs Berlin",
  "status": "active",
  "provider_product": 3104,
  "job_selection_mode": "manual",
  "job_filter": [
    {
      "field": "city",
      "op": "eq",
      "value": "Berlin"
    }
  ],
  "budget": "1500.00",
  "budget_interval": "monthly",
  "refresh_interval": 14,
  "starts_at": "2026-11-16T00:00:00Z",
  "ends_at": "2026-12-16T00:00:00Z",
  "transaction": "b7e1c2a0-4f3d-4a1e-9c2b-6d5e4f3a2b10",
  "incomplete_count": 0,
  "created_at": "2026-11-09T09:00:00Z",
  "updated_at": "2026-11-09T09:00:00Z"
}
PATCH
/campaigns/{campaign_id}/
PATCH
Base URLstring

Target server for requests. Edit to use your own host.

Bearer Token
Bearer Tokenstring
Required

Authenticate every request with an API key from the Kini Partner App, sent as Authorization: Bearer <your_api_key>.

Authenticate every request with an API key from the Kini Partner App, sent as Authorization: Bearer <your_api_key>.
path
campaign_idinteger
Required

Kini ID of the campaign

Content-Typestring
Required

The media type of the request body

Options: application/json
header
Company-Idinteger
Required

Kini ID of the applicable company.

namestring

Label shown on the campaign.

starts_atstring

When the campaign begins. Cannot be in the past.

Format: date-time
ends_atstring

When the campaign ends. Must be after starts_at.

Format: date-time
refresh_intervalinteger

How often the jobs are refreshed, in days. Send a value from the product's refresh_interval_options.

job_selection_modestring

Which jobs the campaign covers. all is every active job. manual is the ids in included_jobs. dynamic is the jobs that match job_filter. Defaults to all.

Options: all, manual, dynamic
job_filterarray

Used when job_selection_mode is dynamic. Each rule has field, op, and value.

included_jobsarray

Used when job_selection_mode is manual. Kini IDs of the jobs to include. Each job must belong to the company.

Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

Bearer token. Authenticate every request with an API key from the Kini Partner App, sent as Authorization: Bearer <your_api_key>.

Path Parameters

campaign_idinteger
Required

Kini ID of the campaign

Example:
4711

Headers

Company-Idinteger
Required

Kini ID of the applicable company.

Example:
1

Body

application/json
namestring

Label shown on the campaign.

Example:
Sponsored Jobs Berlin
starts_atstring

When the campaign begins. Cannot be in the past.

Example:
2026-11-16T00:00:00Z
ends_atstring

When the campaign ends. Must be after starts_at.

Example:
2026-12-16T00:00:00Z
refresh_intervalinteger

How often the jobs are refreshed, in days. Send a value from the product's refresh_interval_options.

Example:
14
job_selection_modestring

Which jobs the campaign covers. all is every active job. manual is the ids in included_jobs. dynamic is the jobs that match job_filter. Defaults to all.

Allowed values:allmanualdynamic
job_filterarray

Used when job_selection_mode is dynamic. Each rule has field, op, and value.

included_jobsarray

Used when job_selection_mode is manual. Kini IDs of the jobs to include. Each job must belong to the company.

Example:
[123456]

Responses

idinteger

Kini ID of the campaign.

namestring

Label shown on the campaign.

statusstring

Current status of the campaign.

Allowed values:draftactiveaction_requiredpausedclosedcompleteddeleted
provider_productinteger

Kini ID of the company-specific price from List Products.

job_selection_modestring

Which jobs the campaign covers. all is every active job. manual is the ids in included_jobs. dynamic is the jobs that match job_filter. Defaults to all.

Allowed values:allmanualdynamic
job_filterarray

Used when job_selection_mode is dynamic. Each rule has field, op, and value.

budgetstring

Budget in EUR for a sponsored product.

budget_intervalstring

How often the budget is charged. Set from the product's pricing.price_interval.

Allowed values:one_timemonthly
refresh_intervalinteger

How often the jobs are refreshed, in days. Send a value from the product's refresh_interval_options.

starts_atstring

When the campaign begins. Cannot be in the past.

ends_atstring

When the campaign ends. Must be after starts_at.

transactionstring

Transaction that records this campaign and the billing detail it is invoiced to.

incomplete_countinteger

How many jobs are missing data the job board needs.

created_atstring
updated_atstring