> ## Documentation Index
> Fetch the complete documentation index at: https://docs.launchpointhq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Resume Campaign

> Resumes a paused campaign. Resuming an already-active campaign is a no-op and returns the unchanged campaign. A campaign that was auto-paused for a billing issue cannot be resumed until the issue is fixed in the dashboard.



## OpenAPI

````yaml POST /campaigns/{campaign_id}/resume
openapi: 3.1.0
info:
  title: Launchpoint Buyer API
  description: The API Launchpoint brands and agencies can use to manage their campaigns
  license:
    name: MIT
    identifier: MIT
  version: 2026-07
servers:
  - url: https://api.launchpoint.sh/2026-07
security:
  - bearerAuth: []
tags:
  - name: Campaigns
    description: >-
      Create and manage campaigns, review creators and content, and read
      performance data
paths:
  /campaigns/{campaign_id}/resume:
    post:
      tags:
        - Campaigns
      summary: Resume a campaign
      description: >-
        Resumes a paused campaign. Resuming an already-active campaign is a
        no-op and returns the unchanged campaign. A campaign that was
        auto-paused for a billing issue cannot be resumed until the issue is
        fixed in the dashboard.
      operationId: resumeCampaign
      parameters:
        - $ref: '#/components/parameters/CampaignId'
      responses:
        '200':
          description: The resumed campaign
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  parameters:
    CampaignId:
      name: campaign_id
      in: path
      description: The campaign ID
      required: true
      schema:
        type: string
        format: uuid
  schemas:
    Campaign:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 3f8e4567-e89b-12d3-a456-426614174000
        name:
          type: string
          example: Spring UGC Push
        brand_id:
          type: string
          format: uuid
          example: 9a2b4567-e89b-12d3-a456-426614174000
        brand_name:
          type: string
          example: Acme Skincare
        status:
          $ref: '#/components/schemas/CampaignStatus'
        status_detail:
          $ref: '#/components/schemas/CampaignStatusDetail'
        visibility:
          $ref: '#/components/schemas/Visibility'
        invite_code:
          type:
            - string
            - 'null'
          description: >-
            Access code creators use to join an `unlisted` campaign. Null for
            `public` campaigns.
          example: GLOW2026
        description:
          type:
            - string
            - 'null'
          description: What the campaign is about, shown to creators
          example: Short-form UGC for our spring launch.
        instructions:
          type:
            - string
            - 'null'
          description: Campaign-wide instructions for creators
          example: Film in daylight and show the product in the first 3 seconds.
        icon_url:
          type:
            - string
            - 'null'
          format: uri
          description: Campaign icon shown to creators
        brief_url:
          type:
            - string
            - 'null'
          format: uri
          description: Link to an external full brief document
        video_examples:
          type: array
          description: Campaign-level example video URLs
          items:
            type: string
            format: uri
        links:
          type: array
          description: Links given to creators alongside the brief
          items:
            $ref: '#/components/schemas/CampaignLink'
        targeting:
          $ref: '#/components/schemas/Targeting'
        product:
          $ref: '#/components/schemas/ProductInfo'
        spent_cents:
          type: integer
          description: Total paid to creators on this campaign, in cents. Read-only.
          example: 123400
        accepting_submissions:
          type: boolean
          description: >-
            Whether new creators can currently start work. Controlled by
            pause/resume.
          example: true
        content_deadline_date:
          type:
            - string
            - 'null'
          format: date
          description: Date by which creators must submit content for review
          example: '2026-03-01'
        post_deadline_date:
          type:
            - string
            - 'null'
          format: date
          description: Date by which approved content must be posted
          example: '2026-03-15'
        settings:
          $ref: '#/components/schemas/CampaignSettings'
        tasks:
          type: array
          description: >-
            The campaign's tasks. Embedded when fetching a single campaign;
            omitted in list responses (use `tasks_count`).
          items:
            $ref: '#/components/schemas/Task'
        tasks_count:
          type: integer
          example: 2
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    CampaignStatus:
      type: string
      description: >-
        Campaign lifecycle status. `draft` → `pending_approval` (submitted for
        Launchpoint review) → `active` ⇄ `paused` → `completed`. A denied
        publish returns the campaign to `draft` with `status_detail` populated.
      enum:
        - draft
        - pending_approval
        - active
        - paused
        - completed
      example: active
    CampaignStatusDetail:
      type:
        - object
        - 'null'
      description: >-
        Why the campaign is in its current status. Null unless the campaign was
        auto-paused or a publish request was denied.
      properties:
        kind:
          type: string
          enum:
            - auto_paused
            - publish_denied
        reason:
          type: string
          description: >-
            For `auto_paused`: one of `billing_issue`, `other`. For
            `publish_denied`: the reviewer's explanation.
          example: billing_issue
        occurred_at:
          type: string
          format: date-time
    Visibility:
      type: string
      description: >-
        `public` campaigns appear in creator discovery; `unlisted` campaigns are
        reachable only via an access code or direct link
      enum:
        - public
        - unlisted
      example: public
    CampaignLink:
      type: object
      description: >-
        A link given to creators alongside the brief (store page, app listing,
        affiliate link, ...)
      required:
        - url
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          example: https://acme.com/products/glow-serum
        service:
          type:
            - string
            - 'null'
          description: What the link points at, e.g. `shopify`, `appstore`, `playstore`
          example: shopify
        description:
          type:
            - string
            - 'null'
          example: Product page to link in bio
        affiliate_code:
          type:
            - string
            - 'null'
          example: CREATOR20
    Targeting:
      type:
        - object
        - 'null'
      description: >-
        Which creators can join the campaign. Groups combine via
        `root_operator`; conditions within a group combine via the group's
        `operator`. Null means no targeting (open to all).
      required:
        - root_operator
        - groups
      properties:
        root_operator:
          type: string
          enum:
            - AND
            - OR
        groups:
          type: array
          items:
            $ref: '#/components/schemas/TargetingGroup'
    ProductInfo:
      type: object
      description: The product this campaign promotes
      required:
        - name
      properties:
        name:
          type: string
          example: Acme Glow Serum
        url:
          type:
            - string
            - 'null'
          format: uri
          example: https://acme.com/products/glow-serum
        image_url:
          type:
            - string
            - 'null'
          format: uri
          example: https://cdn.acme.com/glow-serum.png
    CampaignSettings:
      type: object
      description: Approval workflow and task-completion settings
      properties:
        creator_approval_required:
          type: boolean
          description: Whether creators must be approved before starting work
          example: true
        brand_approval_required:
          type: boolean
          description: >-
            For agency-managed campaigns: whether the brand also signs off on
            content after the agency's review
          example: false
        post_approval_mode:
          type: string
          description: >-
            How strictly submitted content is reviewed before it can be posted.
            `strict`, `moderate`, and `lenient` tune the review bar; `always`
            auto-approves every submission with no manual review.
          enum:
            - strict
            - moderate
            - lenient
            - always
          example: strict
        completion_mode:
          $ref: '#/components/schemas/CompletionMode'
    Task:
      type: object
      description: >-
        A deliverable creators complete for the campaign. Tasks on Canvas
        campaigns are readable but not writable via the API, and some fields
        (e.g. `max_posts_per_creator`) don't apply to them.
      properties:
        id:
          type: string
          format: uuid
        title:
          type: string
          example: 15s unboxing video
        instructions:
          type: string
          example: Open the package on camera and show your first reaction.
        platforms:
          type: array
          items:
            $ref: '#/components/schemas/Platform'
          example:
            - tiktok
            - instagram
        formats:
          type: array
          items:
            $ref: '#/components/schemas/Format'
          example:
            - feed_video
        caption:
          type:
            - string
            - 'null'
          description: Caption the creator must use when posting
          example: Obsessed with my new glow ✨ @acmeskincare
        require_ad_disclosure:
          type: boolean
          description: >-
            Whether the post must carry the platform's paid-partnership / ad
            disclosure
          example: true
        tiktok_sound_url:
          type:
            - string
            - 'null'
          format: uri
          description: TikTok sound the content must use
        instagram_sound_url:
          type:
            - string
            - 'null'
          format: uri
          description: Instagram sound the content must use
        video_examples:
          type: array
          description: URLs of example videos showing creators what to make
          items:
            type: string
            format: uri
        image_url:
          type:
            - string
            - 'null'
          format: uri
          description: Cover image shown with the task
        review_mode:
          type: string
          description: >-
            `media_review`: you review each submission. `autoreview`:
            submissions are reviewed automatically — set `autoreview_prompt` to
            have the AI check content against it first.
          enum:
            - media_review
            - autoreview
          example: media_review
        autoreview_prompt:
          type:
            - string
            - 'null'
          description: >-
            What the AI should verify before approving a submission. Only used
            when `review_mode` is `autoreview`. Optional — with no prompt,
            autoreview approves every submission.
          example: The product must be clearly visible and mentioned by name.
        is_required:
          type: boolean
          description: >-
            Whether every creator must complete this task. Only authored
            directly when the campaign's `settings.completion_mode` is
            `some_required`; other modes derive it.
          example: true
        max_posts_per_creator:
          type:
            - integer
            - 'null'
          description: >-
            Null means unlimited. Not applicable to Canvas campaigns, which cap
            videos weekly instead — always null there.
          example: 1
        display_order:
          type: integer
          description: Position of the task in the campaign's brief
          example: 0
        status:
          $ref: '#/components/schemas/TaskStatus'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    Error:
      required:
        - error
        - message
      type: object
      properties:
        error:
          type: integer
          format: int32
          description: The HTTP status code
        message:
          type: string
          description: >-
            Human-readable explanation, naming the offending field where
            applicable
        code:
          type: string
          description: >-
            Machine-readable error code, e.g. `invalid_state_transition`,
            `missing_scope`, `already_reviewed`
          example: invalid_state_transition
    TargetingGroup:
      type: object
      required:
        - operator
        - conditions
      properties:
        name:
          type: string
          example: North America
        operator:
          type: string
          description: How conditions within this group combine
          enum:
            - AND
            - OR
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/TargetingCondition'
    CompletionMode:
      type: string
      description: >-
        How creators engage with the campaign's tasks. `all_required`: every
        task must be completed. `pick_one`: the creator commits to exactly one
        task. `all_optional`: any subset. `some_required`: each task's own
        `is_required` flag decides.
      enum:
        - all_required
        - pick_one
        - all_optional
        - some_required
      example: all_optional
    Platform:
      type: string
      enum:
        - tiktok
        - instagram
        - youtube
        - snapchat
      example: tiktok
    Format:
      type: string
      description: The content format for a task
      enum:
        - feed_video
        - feed_images
        - feed_video_ugc
        - feed_video_music
        - feed_images_music
        - story_video
        - story_images
      example: feed_video
    TaskStatus:
      type: string
      description: '`active` tasks accept new work; `archived` tasks accept no new creators'
      enum:
        - active
        - archived
      example: active
    TargetingCondition:
      type: object
      required:
        - property
        - operator
        - values
      properties:
        property:
          type: string
          description: >-
            The creator property to match on: an opaque `id` from [List
            Targeting
            Properties](/api-reference/campaigns/list-targeting-properties). It
            may be a UUID or a short slug (e.g. `followers`); pass it back
            exactly as returned.
          example: 877972f8-af4b-4918-95df-d35377234817
        operator:
          type: string
          enum:
            - IN
            - NOT_IN
        values:
          type: array
          items:
            type: string
          example:
            - 9b1f8c72-3d4e-4a2b-8c1a-2f6e5d4c3b2a
          description: >-
            For `option` properties: opaque `value`s from the property's values
            list, passed verbatim (not the human-readable label). For `number`
            properties: a single `"min-max"` range string, e.g. `"10000-50000"`.
  responses:
    Unauthorized:
      description: The API key is missing, unknown, or revoked (`unauthenticated`)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: >-
        The resource does not exist or is not visible to this API key
        (`not_found`)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Conflict:
      description: >-
        The action conflicts with the resource's current state — e.g.
        `invalid_state_transition`, `field_locked_for_status`,
        `already_decided`, `already_reviewed`, or `idempotency_conflict`
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: >-
        The rate limit was exceeded (`rate_limited`). Wait for the number of
        seconds in the `Retry-After` header before retrying.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
        X-RateLimit-Limit:
          description: Requests allowed per minute for this key.
          schema:
            type: integer
        X-RateLimit-Remaining:
          description: Requests remaining in the current window.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````