Dashboard

Campaigns

Auth Required

Restore Campaign Version

POSThttps://api.inboxjot.com/v1/campaigns/{campaign_id}/versions/{version_id}/restore

Puts a version back into the campaign. The state before it stays in history. It changes the content, sender, subject and preview text. It keeps the name, audience and topic. Needs a Full key. A key limited to one domain answers 403. Send an optional Idempotency-Key header to retry safely. See Idempotency.

POST/v1/campaigns/{campaign_id}/versions/{version_id}/restore
curl -X POST https://api.inboxjot.com/v1/campaigns/cpg_06d2mfk8r7hm4ps9wb2kd/versions/ver_06d2mfk8r5cx3nd8vt1qb/restore \
  -H "Authorization: Bearer $INBOXJOT_API_KEY"
{
  "id": "cpg_06d2mfk8r7hm4ps9wb2kd",
  "name": "October product update",
  "status": "draft",
  "from": "Acme <hello@acme.dev>",
  "reply_to": null,
  "subject": "What’s new in October",
  "preheader": "Scheduled sends are here",
  "html": "<!DOCTYPE html><html>…</html>",
  "text": "Hi Suhasinee, scheduled sends are here…",
  "template_id": null,
  "template": null,
  "include_segment_ids": [
    "seg_06d2mfk8r2kd7fq4mx9ab"
  ],
  "include_segments": [
    {
      "id": "seg_06d2mfk8r2kd7fq4mx9ab",
      "name": "Customers"
    }
  ],
  "exclude_segment_ids": [],
  "exclude_segments": [],
  "topic_id": "top_06d2mfk8r6pn2tc8yw3hd",
  "topic": {
    "id": "top_06d2mfk8r6pn2tc8yw3hd",
    "name": "Product updates"
  },
  "audience_count": null,
  "queued_count": 0,
  "skipped_count": 0,
  "paused_reason": null,
  "failure_reason": null,
  "scheduled_at": null,
  "started_at": null,
  "completed_at": null,
  "warmup_next_limit": null,
  "created_at": "2026-10-21T09:00:00.000Z",
  "updated_at": "2026-10-21T09:00:00.000Z"
}

Restored the version into the campaign. The state before it stays in history.

Path Parameters

campaign_idstringrequired

The campaign id.

version_idstringrequired

The version id.

Response

idstring

The campaign id.

namestring

The campaign name.

statusstring

draft, scheduled, sending, paused, failed, sent or canceled.

fromstring

The from address.

reply_tostring | null

The reply-to address.

subjectstring

The subject.

preheaderstring

The preview text.

htmlstring | null

The rendered HTML, or null before there is content.

textstring | null

The plain text version.

template_idstring | null

The id of the linked template.

templateobject | null

The linked template.

include_segment_idsstring[]

The ids of the segments it sends to.

include_segmentsobject[]

The segments it sends to.

exclude_segment_idsstring[]

The ids of the segments it leaves out.

exclude_segmentsobject[]

The segments it leaves out.

topic_idstring

The id of the topic.

topicobject | null

The topic.

audience_countinteger | null

How many contacts the campaign goes to, once it starts.

queued_countinteger

Emails queued so far.

skipped_countinteger

Contacts skipped, such as suppressed addresses.

paused_reasonstring | null

Why a paused campaign stopped: manual, daily_limit, warmup, sending_paused or domain_unverified.

failure_reasonstring | null

Why a failed campaign stopped.

scheduled_atstring | null

When a scheduled campaign starts.

started_atstring | null

When sending started.

completed_atstring | null

When sending finished.

warmup_next_limitinteger | null

The daily limit of the next warmup step when domain warmup paused the campaign, otherwise null.

created_atstring

When it was created.

updated_atstring

When it last changed.

Responses

POST/v1/campaigns/{campaign_id}/versions/{version_id}/restore
curl -X POST https://api.inboxjot.com/v1/campaigns/cpg_06d2mfk8r7hm4ps9wb2kd/versions/ver_06d2mfk8r5cx3nd8vt1qb/restore \
  -H "Authorization: Bearer $INBOXJOT_API_KEY"
{
  "id": "cpg_06d2mfk8r7hm4ps9wb2kd",
  "name": "October product update",
  "status": "draft",
  "from": "Acme <hello@acme.dev>",
  "reply_to": null,
  "subject": "What’s new in October",
  "preheader": "Scheduled sends are here",
  "html": "<!DOCTYPE html><html>…</html>",
  "text": "Hi Suhasinee, scheduled sends are here…",
  "template_id": null,
  "template": null,
  "include_segment_ids": [
    "seg_06d2mfk8r2kd7fq4mx9ab"
  ],
  "include_segments": [
    {
      "id": "seg_06d2mfk8r2kd7fq4mx9ab",
      "name": "Customers"
    }
  ],
  "exclude_segment_ids": [],
  "exclude_segments": [],
  "topic_id": "top_06d2mfk8r6pn2tc8yw3hd",
  "topic": {
    "id": "top_06d2mfk8r6pn2tc8yw3hd",
    "name": "Product updates"
  },
  "audience_count": null,
  "queued_count": 0,
  "skipped_count": 0,
  "paused_reason": null,
  "failure_reason": null,
  "scheduled_at": null,
  "started_at": null,
  "completed_at": null,
  "warmup_next_limit": null,
  "created_at": "2026-10-21T09:00:00.000Z",
  "updated_at": "2026-10-21T09:00:00.000Z"
}

Restored the version into the campaign. The state before it stays in history.