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

# Disable repurpose

> Turns off an active or paused repurpose. Activating it again starts from that moment, so videos posted while it was off are not repurposed. From any other status the request returns `422` on `status`.



## OpenAPI

````yaml /openapi.json post /repurposes/{repurpose}/disable
openapi: 3.1.0
info:
  title: TryPost API
  version: 2.0.0
  description: >-
    REST API for TryPost. Authenticate with a workspace API key as a Bearer
    token.
servers:
  - url: https://app.trypost.it/api
    description: TryPost Cloud
security:
  - bearerAuth: []
tags:
  - name: Posts
    description: Create, read, update, delete and preview posts.
  - name: Post notes
    description: Internal notes on a post, visible to workspace members.
  - name: Approvals
    description: Approve or reject posts waiting for approval.
  - name: Recurrence
    description: Make a post repeat on a schedule.
  - name: Media and uploads
    description: Upload files and attach media to posts.
  - name: Social accounts
    description: Connected social accounts and their network-specific options.
  - name: Channels
    description: A channel's posting schedule and queue.
  - name: Ideas
    description: Ideas on the Create board.
  - name: Idea stages
    description: The groups (columns) of the ideas board.
  - name: Analytics
    description: Workspace and channel insights.
  - name: Labels
    description: Labels to organize posts and ideas.
  - name: Signatures
    description: Reusable text to append to posts.
  - name: Workspace
    description: The workspace the API key belongs to.
  - name: API keys
    description: Personal API keys for this workspace.
  - name: Webhooks
    description: Outgoing webhooks and their delivery logs.
  - name: Repurposes
    description: Automations that republish videos posted outside TryPost.
  - name: Platform
    description: Platform capabilities and content types.
paths:
  /repurposes/{repurpose}/disable:
    parameters:
      - $ref: '#/components/parameters/RepurposeId'
    post:
      tags:
        - Repurposes
      summary: Disable repurpose
      description: >-
        Turns off an active or paused repurpose. Activating it again starts from
        that moment, so videos posted while it was off are not repurposed. From
        any other status the request returns `422` on `status`.
      operationId: disableRepurpose
      responses:
        '200':
          description: The disabled repurpose.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Repurpose'
              example:
                id: 9a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d
                source_social_account_id: 9c8b7a69-4c5d-4e6f-8a0b-2c3d4e5f6071
                source_format: reel
                publish_mode: publish
                destinations:
                  - social_account_id: 9c8b7a67-2a3b-4c5d-8e9f-0a1b2c3d4e5f
                    content_type: tiktok_video
                    meta:
                      privacy_level: PUBLIC_TO_EVERYONE
                  - social_account_id: 9c8b7a6a-5d6e-4f70-9b1c-3d4e5f607182
                    content_type: youtube_short
                status: disabled
                paused_reason: null
                activated_at: null
                last_polled_at: '2026-10-08T13:45:00+00:00'
                next_poll_at: null
                last_error: null
                created_at: '2026-09-30T18:00:00+00:00'
                updated_at: '2026-10-08T15:00:00+00:00'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/ValidationError'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  parameters:
    RepurposeId:
      name: repurpose
      in: path
      required: true
      description: Repurpose id. A repurpose of another workspace returns `404`.
      schema:
        type: string
        format: uuid
      example: 9a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d
  schemas:
    Repurpose:
      type: object
      properties:
        id:
          type: string
          format: uuid
        source_social_account_id:
          type:
            - string
            - 'null'
          format: uuid
          description: >-
            Instagram or Facebook account watched for new videos. `null` when
            that account was removed.
        source_account:
          oneOf:
            - $ref: '#/components/schemas/SocialAccount'
            - type: 'null'
          description: >-
            The source account, `null` when it was removed. Returned by `GET
            /repurposes` (and by `PUT` on an active repurpose).
        source_format:
          type: string
          enum:
            - reel
            - video
            - story
        publish_mode:
          type: string
          enum:
            - publish
            - draft
          description: >-
            `publish` publishes each new video to the destinations; `draft`
            saves it as drafts.
        destinations:
          type: array
          items:
            $ref: '#/components/schemas/RepurposeDestination'
        status:
          type: string
          enum:
            - draft
            - active
            - paused
            - disabled
        paused_reason:
          type:
            - string
            - 'null'
          enum:
            - source_removed
            - source_unavailable
            - no_destinations
            - null
          description: >-
            Why TryPost paused it. `null` when it is not paused or you paused
            it.
        activated_at:
          type:
            - string
            - 'null'
          format: date-time
          description: ISO 8601, UTC. Only videos posted after this instant are repurposed.
          examples:
            - '2026-10-01T09:00:00+00:00'
        last_polled_at:
          type:
            - string
            - 'null'
          format: date-time
          description: ISO 8601, UTC.
          examples:
            - '2026-10-08T13:45:00+00:00'
        next_poll_at:
          type:
            - string
            - 'null'
          format: date-time
          description: ISO 8601, UTC.
          examples:
            - '2026-10-08T14:00:00+00:00'
        last_error:
          type:
            - string
            - 'null'
        published_items_count:
          type: integer
          description: >-
            Items with status `published`. Items saved as drafts (`drafted`) are
            not counted. Only in `GET /repurposes`.
        created_at:
          type: string
          format: date-time
          description: ISO 8601, UTC.
          examples:
            - '2026-09-30T18:00:00+00:00'
        updated_at:
          type: string
          format: date-time
          description: ISO 8601, UTC.
          examples:
            - '2026-10-08T13:45:00+00:00'
    SocialAccount:
      type: object
      properties:
        id:
          type: string
          format: uuid
        platform:
          $ref: '#/components/schemas/Platform'
        display_name:
          type:
            - string
            - 'null'
        username:
          type:
            - string
            - 'null'
        status:
          type: string
          enum:
            - connected
            - disconnected
            - token_expired
        has_posting_schedule:
          type: boolean
          description: >-
            Whether the channel has posting times. Queueing a post (`queue`)
            needs them.
        timezone:
          type: string
          description: IANA time zone of the channel. Queue slots and recurrence follow it.
        posting_goal:
          type:
            - integer
            - 'null'
          description: Posts per week the channel aims for.
        max_content_length:
          type: integer
          description: >-
            Text limit of this account, in characters. An X account with long
            posts gets 25000.
        long_posts:
          type: boolean
          description: Whether this X account can publish long posts.
        verified_badge:
          type:
            - string
            - 'null'
          enum:
            - blue
            - business
            - government
            - null
          description: >-
            X checkmark; `null` on other networks or unverified accounts. A
            badge alone does not mean long posts: read `long_posts`.
    RepurposeDestination:
      type: object
      required:
        - social_account_id
        - content_type
      properties:
        social_account_id:
          type: string
          format: uuid
          description: >-
            Social account of the workspace. Google Business is refused (its
            posts do not take video), and so is the source account.
        content_type:
          allOf:
            - $ref: '#/components/schemas/ContentType'
          description: >-
            Format to publish as. It must belong to the account's network and
            take video (for example `instagram_reel`, `tiktok_video`,
            `youtube_short`, `x_post`).
        meta:
          allOf:
            - $ref: '#/components/schemas/PlatformMeta'
          description: >-
            Per-network settings, with the same rules as a post's
            `platforms[].meta` (thread reply media by `url` is refused). On an
            active repurpose, the settings a network needs to publish are
            required, as on a scheduled post (for example TikTok
            `privacy_level`, Pinterest `board_id`, Discord `channel_id`, and a
            valid YouTube `description`).
    ErrorBody:
      type: object
      properties:
        message:
          type: string
    ValidationErrorBody:
      type: object
      properties:
        message:
          type: string
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
    RateLimitErrorBody:
      type: object
      properties:
        name:
          type: string
          const: rate_limit_exceeded
        message:
          type: string
          examples:
            - Rate limit exceeded. Please retry after 30 seconds.
    Platform:
      type: string
      enum:
        - linkedin
        - linkedin-page
        - x
        - tiktok
        - youtube
        - facebook
        - instagram
        - instagram-facebook
        - threads
        - pinterest
        - bluesky
        - mastodon
        - telegram
        - discord
        - google_business
      description: >-
        Network of a social account. `linkedin-page` is a LinkedIn company page,
        `instagram-facebook` an Instagram account connected through a Facebook
        Page.
    ContentType:
      type: string
      enum:
        - instagram_feed
        - instagram_reel
        - instagram_story
        - linkedin_post
        - linkedin_page_post
        - facebook_post
        - facebook_reel
        - facebook_story
        - tiktok_video
        - tiktok_photo
        - youtube_short
        - x_post
        - threads_post
        - threads_ghost_post
        - pinterest_pin
        - pinterest_video_pin
        - pinterest_carousel
        - bluesky_post
        - mastodon_post
        - telegram_post
        - discord_message
        - google_business_post
      description: >-
        Post format on one network. It must belong to the destination's network.
        `GET /content-types` lists the formats of each network with their media
        rules. Instagram and Facebook stories publish no text.
    PlatformMeta:
      description: >-
        Per-network settings of one destination. Pick the shape of the
        destination's network. Keys without a rule are dropped. Every known key
        is validated whatever the network, but only the keys of the
        destination's network are used when publishing. On update, `meta` is
        merged with the stored settings: send `null` for a key to clear it
        (string, list and object settings; boolean settings cannot be cleared,
        so send `true` or `false`); `thread_replies` replaces the whole list.
        Required to schedule or publish: TikTok `privacy_level`, Pinterest
        `board_id`, Discord `channel_id`, Google Business `event` on
        `EVENT`/`OFFER`, YouTube a title (`title` or the first line of the
        text). `GET /content-types` lists the unconditional ones (TikTok,
        Pinterest, Discord) per network as `required_meta`.
      anyOf:
        - $ref: '#/components/schemas/PlatformMetaX'
        - $ref: '#/components/schemas/PlatformMetaBluesky'
        - $ref: '#/components/schemas/PlatformMetaMastodon'
        - $ref: '#/components/schemas/PlatformMetaTikTok'
        - $ref: '#/components/schemas/PlatformMetaPinterest'
        - $ref: '#/components/schemas/PlatformMetaDiscord'
        - $ref: '#/components/schemas/PlatformMetaYouTube'
        - $ref: '#/components/schemas/PlatformMetaInstagram'
        - $ref: '#/components/schemas/PlatformMetaThreads'
        - $ref: '#/components/schemas/PlatformMetaFacebook'
        - $ref: '#/components/schemas/PlatformMetaLinkedIn'
        - $ref: '#/components/schemas/PlatformMetaGoogleBusiness'
        - $ref: '#/components/schemas/PlatformMetaNone'
    PlatformMetaX:
      type: object
      title: X
      description: Settings for `x_post`.
      properties:
        thread_replies:
          type:
            - array
            - 'null'
          maxItems: 24
          description: >-
            Up to 24 replies published under the post as a thread. Each item is
            a `ThreadReply`, or a plain string for a text-only reply. On update
            this list replaces the stored one.
          items:
            oneOf:
              - type: string
                maxLength: 25000
                title: Text-only reply
              - $ref: '#/components/schemas/ThreadReply'
        is_ai_generated:
          type: boolean
          description: >-
            Discloses AI-generated media on the post (sent to X as
            `made_with_ai`).
    PlatformMetaBluesky:
      type: object
      title: Bluesky
      description: Settings for `bluesky_post`.
      properties:
        thread_replies:
          type:
            - array
            - 'null'
          maxItems: 24
          description: >-
            Up to 24 replies published under the post as a thread. Each item is
            a `ThreadReply`, or a plain string for a text-only reply. On update
            this list replaces the stored one.
          items:
            oneOf:
              - type: string
                maxLength: 25000
                title: Text-only reply
              - $ref: '#/components/schemas/ThreadReply'
        link_preview:
          type: boolean
          default: true
          description: >-
            Send `false` (a real boolean) to publish a text post with a link
            without its preview card.
    PlatformMetaMastodon:
      type: object
      title: Mastodon
      description: Settings for `mastodon_post`.
      properties:
        thread_replies:
          type:
            - array
            - 'null'
          maxItems: 24
          description: >-
            Up to 24 replies published under the post as a thread. Each item is
            a `ThreadReply`, or a plain string for a text-only reply. On update
            this list replaces the stored one.
          items:
            oneOf:
              - type: string
                maxLength: 25000
                title: Text-only reply
              - $ref: '#/components/schemas/ThreadReply'
        spoiler_text:
          type:
            - string
            - 'null'
          maxLength: 500
          description: Content warning. Counts toward the 500-character post limit.
    PlatformMetaTikTok:
      type: object
      title: TikTok
      description: >-
        Settings for `tiktok_video` and `tiktok_photo`. `privacy_level` is
        required to schedule or publish; read the allowed values from `GET
        /social-accounts/{account}/tiktok-creator-info` and keep
        `allow_comments`, `allow_duet` and `allow_stitch` false when it reports
        them disabled. `SELF_ONLY` cannot be combined with
        `brand_content_toggle`.
      properties:
        privacy_level:
          type:
            - string
            - 'null'
          enum:
            - PUBLIC_TO_EVERYONE
            - MUTUAL_FOLLOW_FRIENDS
            - FOLLOWER_OF_CREATOR
            - SELF_ONLY
            - null
          description: Who can see the post. Required to schedule or publish.
        allow_comments:
          type: boolean
        allow_duet:
          type: boolean
          description: '`tiktok_video` only.'
        allow_stitch:
          type: boolean
          description: '`tiktok_video` only.'
        is_aigc:
          type: boolean
          description: AI-generated content label. `tiktok_video` only.
        auto_add_music:
          type: boolean
          description: '`tiktok_photo` only.'
        disclose:
          type: boolean
          description: Commercial content disclosure.
        brand_content_toggle:
          type: boolean
          description: Paid partnership.
        brand_organic_toggle:
          type: boolean
          description: Promotes your own brand.
    PlatformMetaPinterest:
      type: object
      title: Pinterest
      description: >-
        Settings for `pinterest_pin`, `pinterest_video_pin` and
        `pinterest_carousel`. The pin description is the post content; a video
        pin cover is the media item's `meta.cover_offset_ms`.
      properties:
        board_id:
          type:
            - string
            - 'null'
          description: >-
            Board to pin to. Required to schedule or publish. List boards with
            `GET /social-accounts/{account}/boards` or create one with `POST
            /social-accounts/{account}/boards`.
        title:
          type:
            - string
            - 'null'
          maxLength: 100
        link:
          type:
            - string
            - 'null'
          format: uri
          maxLength: 2048
          description: Destination URL (`http` or `https`).
    PlatformMetaDiscord:
      type: object
      title: Discord
      description: Settings for `discord_message`.
      properties:
        channel_id:
          type:
            - string
            - 'null'
          description: >-
            Channel to post in. Required to schedule or publish. List channels
            with `GET /social-accounts/{account}/channels`.
        channel_name:
          type:
            - string
            - 'null'
          description: Channel name shown in the app.
        mentions:
          type:
            - array
            - 'null'
          items:
            type: object
            required:
              - token
            properties:
              token:
                type: string
                description: Mention token, for example `@everyone` or `<@&roleId>`.
              label:
                type:
                  - string
                  - 'null'
        embeds:
          type:
            - array
            - 'null'
          maxItems: 10
          items:
            type: object
            properties:
              title:
                type:
                  - string
                  - 'null'
                maxLength: 256
              description:
                type:
                  - string
                  - 'null'
                maxLength: 4096
              url:
                type:
                  - string
                  - 'null'
                format: uri
              image:
                type:
                  - string
                  - 'null'
                format: uri
                description: Image URL.
              color:
                type:
                  - string
                  - 'null'
                pattern: ^#?[0-9A-Fa-f]{6}$
                description: Hex color, `#RRGGBB`.
    PlatformMetaYouTube:
      type: object
      title: YouTube
      description: >-
        Settings for `youtube_short`. A post needs `title` or text to be
        scheduled or published.
      properties:
        title:
          type:
            - string
            - 'null'
          maxLength: 100
          description: >-
            No `<` or `>` (refused even on drafts). Omitted, it is the first
            non-empty line of the text with `<` and `>` removed, cut to 100
            characters.
        description:
          type:
            - string
            - 'null'
          description: >-
            Plain text, at most 5000 bytes. Omit or send `null` to use the post
            content.
        category_id:
          type:
            - string
            - 'null'
          enum:
            - '1'
            - '2'
            - '10'
            - '15'
            - '17'
            - '19'
            - '20'
            - '22'
            - '23'
            - '24'
            - '25'
            - '26'
            - '27'
            - '28'
            - '29'
            - null
          default: '22'
          description: >-
            YouTube category: 1 Film & Animation, 2 Autos & Vehicles, 10 Music,
            15 Pets & Animals, 17 Sports, 19 Travel & Events, 20 Gaming, 22
            People & Blogs, 23 Comedy, 24 Entertainment, 25 News & Politics, 26
            Howto & Style, 27 Education, 28 Science & Technology, 29 Nonprofits
            & Activism. An integer id is accepted and stored as a string.
        privacy_status:
          type:
            - string
            - 'null'
          enum:
            - public
            - unlisted
            - private
            - null
          default: public
        license:
          type:
            - string
            - 'null'
          enum:
            - youtube
            - creativeCommon
            - null
          default: youtube
        notify_subscribers:
          type: boolean
          default: true
        embeddable:
          type: boolean
          default: true
        made_for_kids:
          type: boolean
          default: false
        is_ai_generated:
          type: boolean
          description: Discloses altered or synthetic content.
    PlatformMetaInstagram:
      type: object
      title: Instagram
      description: >-
        Settings for `instagram_feed`, `instagram_reel` and `instagram_story`
        (both `instagram` and `instagram-facebook` accounts). An
        `instagram_feed` post with a single video publishes as a Reel. People
        tags are the media item's `meta.user_tags`; a video cover is
        `meta.cover_offset_ms`. A post may carry at most 5 hashtags.
      properties:
        is_ai_generated:
          type: boolean
          description: AI-generated label (feed, reels, stories, carousels).
        share_to_feed:
          type: boolean
          default: true
          description: '`instagram_reel` only: also show the Reel in the profile feed.'
    PlatformMetaThreads:
      type: object
      title: Threads
      description: >-
        Settings for `threads_post`. Use the content type `threads_ghost_post`
        for a text-only post archived after 24 hours (no media, no topic).
      properties:
        topic_tag:
          type:
            - string
            - 'null'
          description: >-
            Topic, 1 to 50 characters after a leading `#` is dropped, without
            `.` or `&`.
    PlatformMetaFacebook:
      type: object
      title: Facebook
      description: >-
        Settings for `facebook_post`. Facebook reels and stories take no
        settings; stories publish no text.
      properties:
        link_preview:
          type: boolean
          default: true
          description: >-
            Send `false` (a real boolean) to publish a text post with a link
            without its preview card.
    PlatformMetaLinkedIn:
      type: object
      title: LinkedIn
      description: Settings for `linkedin_post` and `linkedin_page_post`.
      properties:
        link_preview:
          type: boolean
          default: true
          description: >-
            Send `false` (a real boolean) to publish a text post with a link
            without its preview card.
        document_title:
          type:
            - string
            - 'null'
          maxLength: 300
          description: Title shown on a PDF document post. Defaults to the file name.
    PlatformMetaGoogleBusiness:
      type: object
      title: Google Business Profile
      description: >-
        Settings for `google_business_post`. An `EVENT` or `OFFER` needs
        `event.title`, `event.start_date` and `event.end_date` (the title is the
        offer title), and cannot end before it starts.
      properties:
        topic_type:
          type:
            - string
            - 'null'
          enum:
            - STANDARD
            - EVENT
            - OFFER
            - null
          default: STANDARD
        call_to_action:
          type:
            - object
            - 'null'
          description: Button on the post. Not on `OFFER`.
          properties:
            action_type:
              type:
                - string
                - 'null'
              enum:
                - NONE
                - BOOK
                - ORDER
                - SHOP
                - LEARN_MORE
                - SIGN_UP
                - CALL
                - null
            url:
              type:
                - string
                - 'null'
              format: uri
              maxLength: 2048
              description: Required unless `action_type` is `NONE` or `CALL`.
        event:
          type:
            - object
            - 'null'
          description: Required on `EVENT` and `OFFER`.
          properties:
            title:
              type:
                - string
                - 'null'
              maxLength: 58
            start_date:
              type:
                - string
                - 'null'
              format: date
              description: '`YYYY-MM-DD`.'
            end_date:
              type:
                - string
                - 'null'
              format: date
              description: '`YYYY-MM-DD`, not before `start_date`.'
            start_time:
              type:
                - string
                - 'null'
              pattern: ^\d{2}:\d{2}$
              description: '`HH:MM`.'
            end_time:
              type:
                - string
                - 'null'
              pattern: ^\d{2}:\d{2}$
              description: '`HH:MM`.'
        offer:
          type:
            - object
            - 'null'
          description: '`OFFER` only.'
          properties:
            coupon_code:
              type:
                - string
                - 'null'
            redeem_online_url:
              type:
                - string
                - 'null'
              format: uri
              maxLength: 2048
            terms_conditions:
              type:
                - string
                - 'null'
              maxLength: 5000
    PlatformMetaNone:
      type: object
      title: Telegram
      description: Telegram (and Facebook reels and stories) take no settings.
      properties: {}
    ThreadReply:
      type: object
      description: >-
        One reply published under the post as a thread (X, Bluesky and
        Mastodon). A reply needs text or media. Its text must fit the account
        limit (Bluesky 300, Mastodon 500 including the content warning, which
        every reply repeats, X 280 or 25000 for accounts with long posts). Its
        media belongs to this reply only and follows the media rules of a post
        on that network.
      properties:
        text:
          type:
            - string
            - 'null'
          maxLength: 25000
        media:
          type: array
          maxItems: 4
          description: >-
            Up to 4 media items, each given by `url`, `id` or `upload_token`,
            with optional `meta.alt_text`.
          items:
            $ref: '#/components/schemas/MediaReference'
      examples:
        - text: 3/ Full changelog below.
          media:
            - url: https://example.com/changelog.png
    MediaReference:
      type: object
      description: >-
        One media item to put on a post. Give **exactly one** of `upload_token`,
        `url` or `id`, otherwise the request fails with `Each media item needs
        exactly one of upload_token, url or id.`
      properties:
        upload_token:
          type: string
          format: uuid
          description: >-
            Token from `POST /uploads` or a signed upload URL. Single use: the
            first post that takes it consumes it. Kept 24 hours.
        url:
          type: string
          format: uri
          maxLength: 2048
          description: >-
            Public `http` or `https` URL of the file itself. Downloaded once per
            request; redirects are not followed and private hosts are refused.
        id:
          type: string
          format: uuid
          description: >-
            Id of a media item already in this workspace (for example
            `media[].id` of another post). The file is copied.
        alt:
          type: string
          maxLength: 2000
          description: >-
            Alt text shorthand. Applies to images only; `meta.alt_text` wins
            when both are sent.
        meta:
          $ref: '#/components/schemas/MediaItemMeta'
      examples:
        - url: https://example.com/launch.jpg
          alt: Product launch banner
    MediaItemMeta:
      type: object
      description: >-
        Editable settings of one media item. Other keys the server measured (for
        example `width`, `height`, `duration`) may also appear in responses.
      properties:
        alt_text:
          type: string
          maxLength: 2000
          description: >-
            Accessibility description. Applies to images; each network truncates
            it to its own cap.
        user_tags:
          type: array
          maxItems: 20
          description: People tagged on an Instagram image.
          items:
            type: object
            required:
              - username
              - x
              - 'y'
            properties:
              username:
                type: string
                pattern: ^@?[A-Za-z0-9._]{1,30}$
                description: Public Instagram username. A leading `@` is dropped.
              x:
                type: number
                minimum: 0
                maximum: 1
                description: Offset from the left edge, 0 to 1.
              'y':
                type: number
                minimum: 0
                maximum: 1
                description: Offset from the top edge, 0 to 1.
        cover_offset_ms:
          type: integer
          minimum: 0
          description: >-
            Video frame used as the cover, in milliseconds from the start.
            Cannot pass the end of the video.
  responses:
    Unauthorized:
      description: >-
        Missing, invalid, revoked or expired API key. Bodies: `Unauthenticated.`
        (no key, or a key that is invalid or revoked), `Token expired.` (past
        its `expires_at`), `Token not found.` and `No workspace selected.` (the
        key is no longer bound to a workspace).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorBody'
          example:
            message: Unauthenticated.
    PaymentRequired:
      description: >-
        TryPost Cloud only: the workspace's account has no active subscription
        or trial. Body: `{"message": "Active subscription required."}`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorBody'
          example:
            message: Active subscription required.
    Forbidden:
      description: >-
        The request is not allowed. API keys work only for workspace admins (the
        account owner or a member marked as admin): otherwise every request
        returns `Insufficient workspace permissions.`. Other bodies: `Workspace
        access denied.` (the key's user left the workspace) and `Personal access
        token required.` (an MCP OAuth token was sent) and `This action is
        unauthorized.` (the note belongs to another member).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorBody'
    NotFound:
      description: The resource does not exist in this workspace.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorBody'
    ValidationError:
      description: Validation failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationErrorBody'
    TooManyRequests:
      description: 'Rate limit exceeded. Limits: 60 requests per minute per workspace.'
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RateLimitErrorBody'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Workspace API key from Settings → API Keys.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.