trello Cards API

Operations for creating, retrieving, updating, and deleting cards, including managing card attachments, checklists, comments, labels, members, and stickers.

OpenAPI Specification

trello-cards-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Trello REST Actions Cards API
  description: The Trello REST API provides programmatic access to Trello boards, lists, cards, members, labels, checklists, and other resources that make up the Trello project management platform. Developers can create, read, update, and delete Trello objects, manage team collaboration workflows, and automate task management processes. The API uses key and token based authentication and returns JSON responses for all endpoints.
  version: '1'
  contact:
    name: Atlassian Developer Support
    url: https://developer.atlassian.com/support
  termsOfService: https://www.atlassian.com/legal/cloud-terms-of-service
servers:
- url: https://api.trello.com/1
  description: Trello API v1 Production Server
security:
- apiKey: []
  apiToken: []
tags:
- name: Cards
  description: Operations for creating, retrieving, updating, and deleting cards, including managing card attachments, checklists, comments, labels, members, and stickers.
paths:
  /cards:
    post:
      operationId: createCard
      summary: Create a Card
      description: Creates a new card on the specified list.
      tags:
      - Cards
      parameters:
      - name: name
        in: query
        description: The name for the card.
        schema:
          type: string
          minLength: 0
          maxLength: 16384
      - name: desc
        in: query
        description: The description for the card.
        schema:
          type: string
          maxLength: 16384
      - name: pos
        in: query
        description: The position of the card in the list.
        schema:
          type: string
          default: bottom
      - name: due
        in: query
        description: The due date for the card.
        schema:
          type: string
          format: date-time
      - name: start
        in: query
        description: The start date for the card.
        schema:
          type: string
          format: date-time
      - name: dueComplete
        in: query
        description: Whether the due date is complete.
        schema:
          type: boolean
          default: false
      - name: idList
        in: query
        required: true
        description: The ID of the list the card should be created in.
        schema:
          type: string
      - name: idMembers
        in: query
        description: Comma-separated list of member IDs to add to the card.
        schema:
          type: string
      - name: idLabels
        in: query
        description: Comma-separated list of label IDs to add to the card.
        schema:
          type: string
      - name: urlSource
        in: query
        description: A URL to attach to the card.
        schema:
          type: string
          format: uri
      - name: idCardSource
        in: query
        description: The ID of a card to copy into the new card.
        schema:
          type: string
      responses:
        '200':
          description: Successfully created the card.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Card'
        '400':
          description: Bad request. Missing required parameters.
        '401':
          description: Unauthorized.
  /cards/{id}:
    get:
      operationId: getCard
      summary: Get a Card
      description: Retrieves a single card by its identifier.
      tags:
      - Cards
      parameters:
      - $ref: '#/components/parameters/idParam'
      - name: fields
        in: query
        description: A comma-separated list of card fields to return.
        schema:
          type: string
          default: all
      - name: actions
        in: query
        description: A comma-separated list of action types to include.
        schema:
          type: string
      - name: attachments
        in: query
        description: Whether to include attachments.
        schema:
          type: string
          default: 'false'
      - name: members
        in: query
        description: Whether to include members.
        schema:
          type: boolean
          default: false
      - name: checkItemStates
        in: query
        description: Whether to include check item states.
        schema:
          type: boolean
          default: false
      - name: checklists
        in: query
        description: Whether to include checklists.
        schema:
          type: string
          enum:
          - all
          - none
          default: none
      responses:
        '200':
          description: Successfully retrieved the card.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Card'
        '401':
          description: Unauthorized.
        '404':
          description: Card not found.
    put:
      operationId: updateCard
      summary: Update a Card
      description: Updates the fields of a card, including name, description, position, due date, list assignment, and more.
      tags:
      - Cards
      parameters:
      - $ref: '#/components/parameters/idParam'
      - name: name
        in: query
        description: The new name for the card.
        schema:
          type: string
          maxLength: 16384
      - name: desc
        in: query
        description: The new description for the card.
        schema:
          type: string
          maxLength: 16384
      - name: closed
        in: query
        description: Whether the card is archived.
        schema:
          type: boolean
      - name: idMembers
        in: query
        description: Comma-separated list of member IDs.
        schema:
          type: string
      - name: idLabels
        in: query
        description: Comma-separated list of label IDs.
        schema:
          type: string
      - name: idList
        in: query
        description: The ID of the list to move the card to.
        schema:
          type: string
      - name: idBoard
        in: query
        description: The ID of the board to move the card to.
        schema:
          type: string
      - name: pos
        in: query
        description: The new position of the card.
        schema:
          type: string
      - name: due
        in: query
        description: The new due date for the card.
        schema:
          type: string
          format: date-time
      - name: start
        in: query
        description: The start date for the card.
        schema:
          type: string
          format: date-time
      - name: dueComplete
        in: query
        description: Whether the due date is complete.
        schema:
          type: boolean
      - name: subscribed
        in: query
        description: Whether the authenticated member is subscribed to the card.
        schema:
          type: boolean
      - name: cover
        in: query
        description: JSON string for the card cover.
        schema:
          type: string
      responses:
        '200':
          description: Successfully updated the card.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Card'
        '401':
          description: Unauthorized.
        '404':
          description: Card not found.
    delete:
      operationId: deleteCard
      summary: Delete a Card
      description: Permanently deletes a card. This action cannot be undone.
      tags:
      - Cards
      parameters:
      - $ref: '#/components/parameters/idParam'
      responses:
        '200':
          description: Successfully deleted the card.
        '401':
          description: Unauthorized.
        '404':
          description: Card not found.
  /cards/{id}/actions:
    get:
      operationId: getCardActions
      summary: Get Actions on a Card
      description: Retrieves a list of actions (activity events) on a card.
      tags:
      - Cards
      parameters:
      - $ref: '#/components/parameters/idParam'
      - name: filter
        in: query
        description: A comma-separated list of action types to filter by.
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved card actions.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Action'
        '401':
          description: Unauthorized.
        '404':
          description: Card not found.
  /cards/{id}/actions/comments:
    post:
      operationId: createCardComment
      summary: Add a Comment to a Card
      description: Adds a new comment to a card.
      tags:
      - Cards
      parameters:
      - $ref: '#/components/parameters/idParam'
      - name: text
        in: query
        required: true
        description: The comment text.
        schema:
          type: string
          minLength: 1
          maxLength: 16384
      responses:
        '200':
          description: Successfully added the comment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Action'
        '401':
          description: Unauthorized.
        '404':
          description: Card not found.
  /cards/{id}/attachments:
    get:
      operationId: getCardAttachments
      summary: Get Attachments on a Card
      description: Retrieves all attachments on a card.
      tags:
      - Cards
      parameters:
      - $ref: '#/components/parameters/idParam'
      - name: fields
        in: query
        description: A comma-separated list of attachment fields to return.
        schema:
          type: string
          default: all
      responses:
        '200':
          description: Successfully retrieved card attachments.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Attachment'
        '401':
          description: Unauthorized.
        '404':
          description: Card not found.
    post:
      operationId: createCardAttachment
      summary: Create an Attachment on a Card
      description: Adds a new attachment to a card, either from a URL or a file upload.
      tags:
      - Cards
      parameters:
      - $ref: '#/components/parameters/idParam'
      - name: name
        in: query
        description: The name for the attachment.
        schema:
          type: string
      - name: mimeType
        in: query
        description: The MIME type of the attachment.
        schema:
          type: string
      - name: url
        in: query
        description: A URL to attach to the card.
        schema:
          type: string
          format: uri
      responses:
        '200':
          description: Successfully created the attachment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
        '401':
          description: Unauthorized.
        '404':
          description: Card not found.
  /cards/{id}/checklists:
    get:
      operationId: getCardChecklists
      summary: Get Checklists on a Card
      description: Retrieves all checklists on a card.
      tags:
      - Cards
      parameters:
      - $ref: '#/components/parameters/idParam'
      responses:
        '200':
          description: Successfully retrieved card checklists.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Checklist'
        '401':
          description: Unauthorized.
        '404':
          description: Card not found.
    post:
      operationId: createCardChecklist
      summary: Create a Checklist on a Card
      description: Creates a new checklist on the specified card.
      tags:
      - Cards
      parameters:
      - $ref: '#/components/parameters/idParam'
      - name: name
        in: query
        description: The name for the checklist.
        schema:
          type: string
      - name: idChecklistSource
        in: query
        description: The ID of a checklist to copy into the new checklist.
        schema:
          type: string
      - name: pos
        in: query
        description: The position of the checklist on the card.
        schema:
          type: string
          default: bottom
      responses:
        '200':
          description: Successfully created the checklist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Checklist'
        '401':
          description: Unauthorized.
        '404':
          description: Card not found.
  /cards/{id}/labels:
    post:
      operationId: addCardLabel
      summary: Add a Label to a Card
      description: Adds an existing label to a card.
      tags:
      - Cards
      parameters:
      - $ref: '#/components/parameters/idParam'
      - name: value
        in: query
        required: true
        description: The ID of the label to add.
        schema:
          type: string
      responses:
        '200':
          description: Successfully added the label.
        '401':
          description: Unauthorized.
        '404':
          description: Card or label not found.
  /cards/{id}/labels/{idLabel}:
    delete:
      operationId: removeCardLabel
      summary: Remove a Label from a Card
      description: Removes a label from a card.
      tags:
      - Cards
      parameters:
      - $ref: '#/components/parameters/idParam'
      - name: idLabel
        in: path
        required: true
        description: The ID of the label to remove.
        schema:
          type: string
      responses:
        '200':
          description: Successfully removed the label.
        '401':
          description: Unauthorized.
        '404':
          description: Card or label not found.
  /cards/{id}/members:
    post:
      operationId: addCardMember
      summary: Add a Member to a Card
      description: Adds a member to a card.
      tags:
      - Cards
      parameters:
      - $ref: '#/components/parameters/idParam'
      - name: value
        in: query
        required: true
        description: The ID of the member to add.
        schema:
          type: string
      responses:
        '200':
          description: Successfully added the member.
        '401':
          description: Unauthorized.
        '404':
          description: Card or member not found.
  /cards/{id}/members/{idMember}:
    delete:
      operationId: removeCardMember
      summary: Remove a Member from a Card
      description: Removes a member from a card.
      tags:
      - Cards
      parameters:
      - $ref: '#/components/parameters/idParam'
      - name: idMember
        in: path
        required: true
        description: The ID of the member to remove.
        schema:
          type: string
      responses:
        '200':
          description: Successfully removed the member.
        '401':
          description: Unauthorized.
        '404':
          description: Card or member not found.
  /cards/{id}/stickers:
    get:
      operationId: getCardStickers
      summary: Get Stickers on a Card
      description: Retrieves all stickers on a card.
      tags:
      - Cards
      parameters:
      - $ref: '#/components/parameters/idParam'
      responses:
        '200':
          description: Successfully retrieved card stickers.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Sticker'
        '401':
          description: Unauthorized.
        '404':
          description: Card not found.
    post:
      operationId: addCardSticker
      summary: Add a Sticker to a Card
      description: Adds a sticker to a card.
      tags:
      - Cards
      parameters:
      - $ref: '#/components/parameters/idParam'
      - name: image
        in: query
        required: true
        description: The sticker image identifier.
        schema:
          type: string
      - name: top
        in: query
        required: true
        description: The top position of the sticker as a percentage.
        schema:
          type: number
      - name: left
        in: query
        required: true
        description: The left position of the sticker as a percentage.
        schema:
          type: number
      - name: zIndex
        in: query
        required: true
        description: The z-index of the sticker.
        schema:
          type: integer
      - name: rotate
        in: query
        description: The rotation of the sticker in degrees.
        schema:
          type: number
          default: 0
      responses:
        '200':
          description: Successfully added the sticker.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Sticker'
        '401':
          description: Unauthorized.
        '404':
          description: Card not found.
components:
  schemas:
    CheckItem:
      type: object
      description: Represents a single item in a checklist that can be checked or unchecked.
      properties:
        id:
          type: string
          description: The unique identifier for the check item.
        name:
          type: string
          description: The name of the check item.
        state:
          type: string
          description: The completion state of the check item.
          enum:
          - complete
          - incomplete
        idChecklist:
          type: string
          description: The ID of the checklist the check item belongs to.
        pos:
          type: number
          description: The position of the check item in the checklist.
        due:
          type: string
          format: date-time
          description: The due date for the check item.
        idMember:
          type: string
          description: The ID of the member assigned to the check item.
    Card:
      type: object
      description: Represents a Trello card, which is the fundamental unit of work on a board. Cards live within lists and can have members, labels, checklists, attachments, due dates, and comments.
      properties:
        id:
          type: string
          description: The unique identifier for the card.
        name:
          type: string
          description: The name (title) of the card.
        desc:
          type: string
          description: The description of the card in Markdown.
        closed:
          type: boolean
          description: Whether the card is archived.
        idBoard:
          type: string
          description: The ID of the board the card is on.
        idList:
          type: string
          description: The ID of the list the card is in.
        idShort:
          type: integer
          description: The short numeric identifier for the card within its board.
        idMembers:
          type: array
          description: The IDs of members assigned to the card.
          items:
            type: string
        idLabels:
          type: array
          description: The IDs of labels on the card.
          items:
            type: string
        idChecklists:
          type: array
          description: The IDs of checklists on the card.
          items:
            type: string
        idAttachmentCover:
          type: string
          description: The ID of the attachment used as the card cover.
        pos:
          type: number
          description: The position of the card in its list.
        due:
          type: string
          format: date-time
          description: The due date for the card.
        dueComplete:
          type: boolean
          description: Whether the due date has been marked as complete.
        start:
          type: string
          format: date-time
          description: The start date for the card.
        url:
          type: string
          format: uri
          description: The full URL of the card.
        shortUrl:
          type: string
          format: uri
          description: The short URL of the card.
        shortLink:
          type: string
          description: The short link identifier for the card.
        subscribed:
          type: boolean
          description: Whether the authenticated member is subscribed to the card.
        dateLastActivity:
          type: string
          format: date-time
          description: The date and time of the last activity on the card.
        cover:
          type: object
          description: The card's cover image settings.
          properties:
            idAttachment:
              type: string
            color:
              type: string
            idUploadedBackground:
              type: string
            size:
              type: string
              enum:
              - normal
              - full
            brightness:
              type: string
            idPlugin:
              type: string
        labels:
          type: array
          description: The labels on the card.
          items:
            $ref: '#/components/schemas/Label'
        badges:
          type: object
          description: Badge counts and indicators for the card.
          properties:
            votes:
              type: integer
            attachments:
              type: integer
            comments:
              type: integer
            checkItems:
              type: integer
            checkItemsChecked:
              type: integer
            description:
              type: boolean
            due:
              type: string
              format: date-time
            dueComplete:
              type: boolean
            subscribed:
              type: boolean
    Member:
      type: object
      description: Represents a Trello user who can be a member of boards, organizations, and cards.
      properties:
        id:
          type: string
          description: The unique identifier for the member.
        username:
          type: string
          description: The username of the member.
        fullName:
          type: string
          description: The full name of the member.
        initials:
          type: string
          description: The initials of the member.
        bio:
          type: string
          description: The biography of the member.
        avatarHash:
          type: string
          description: The hash of the member's avatar image.
        avatarUrl:
          type: string
          format: uri
          description: The URL of the member's avatar image.
        url:
          type: string
          format: uri
          description: The URL of the member's Trello profile.
        confirmed:
          type: boolean
          description: Whether the member's email has been confirmed.
        memberType:
          type: string
          description: The type of member account.
        status:
          type: string
          description: The activity status of the member.
        idOrganizations:
          type: array
          description: The IDs of organizations the member belongs to.
          items:
            type: string
        idBoards:
          type: array
          description: The IDs of boards the member has access to.
          items:
            type: string
    Sticker:
      type: object
      description: Represents a decorative sticker placed on a card.
      properties:
        id:
          type: string
          description: The unique identifier for the sticker.
        image:
          type: string
          description: The image identifier for the sticker.
        imageUrl:
          type: string
          format: uri
          description: The URL of the sticker image.
        top:
          type: number
          description: The top position as a percentage.
        left:
          type: number
          description: The left position as a percentage.
        zIndex:
          type: integer
          description: The z-index of the sticker.
        rotate:
          type: number
          description: The rotation in degrees.
    Attachment:
      type: object
      description: Represents a file or URL attachment on a card.
      properties:
        id:
          type: string
          description: The unique identifier for the attachment.
        name:
          type: string
          description: The name of the attachment.
        url:
          type: string
          format: uri
          description: The URL of the attachment.
        bytes:
          type: integer
          description: The size of the attachment in bytes.
        date:
          type: string
          format: date-time
          description: The date the attachment was added.
        edgeColor:
          type: string
          description: The edge color of the attachment preview.
        idMember:
          type: string
          description: The ID of the member who added the attachment.
        isUpload:
          type: boolean
          description: Whether the attachment was uploaded (vs. linked).
        mimeType:
          type: string
          description: The MIME type of the attachment.
        previews:
          type: array
          description: Preview image versions of the attachment.
          items:
            type: object
            properties:
              id:
                type: string
              url:
                type: string
                format: uri
              width:
                type: integer
              height:
                type: integer
              bytes:
                type: integer
    Action:
      type: object
      description: Represents an activity event that occurred on a Trello object, such as creating a card, adding a comment, or moving a card between lists.
      properties:
        id:
          type: string
          description: The unique identifier for the action.
        idMemberCreator:
          type: string
          description: The ID of the member who performed the action.
        type:
          type: string
          description: The type of action that was performed.
        date:
          type: string
          format: date-time
          description: The date and time the action was performed.
        data:
          type: object
          description: Context data about the action, including references to the objects involved.
          properties:
            text:
              type: string
              description: The text content of the action, if applicable.
            board:
              type: object
              description: Reference to the board involved in the action.
              properties:
                id:
                  type: string
                name:
                  type: string
                shortLink:
                  type: string
            card:
              type: object
              description: Reference to the card involved in the action.
              properties:
                id:
                  type: string
                name:
                  type: string
                idShort:
                  type: integer
                shortLink:
                  type: string
            list:
              type: object
              description: Reference to the list involved in the action.
              properties:
                id:
                  type: string
                name:
                  type: string
            old:
              type: object
              description: The previous values of fields that were changed.
        display:
          type: object
          description: Display information for rendering the action.
        memberCreator:
          $ref: '#/components/schemas/Member'
    Label:
      type: object
      description: Represents a color-coded label that can be applied to cards for categorization and filtering.
      properties:
        id:
          type: string
          description: The unique identifier for the label.
        idBoard:
          type: string
          description: The ID of the board the label belongs to.
        name:
          type: string
          description: The name of the label.
        color:
          type: string
          description: The color of the label.
          enum:
          - yellow
          - purple
          - blue
          - red
          - green
          - orange
          - black
          - sky
          - pink
          - lime
          - null
    Checklist:
      type: object
      description: Represents a checklist on a card, containing a list of check items that can be marked as complete or incomplete.
      properties:
        id:
          type: string
          description: The unique identifier for the checklist.
        name:
          type: string
          description: The name of the checklist.
        idBoard:
          type: string
          description: The ID of the board the checklist belongs to.
        idCard:
          type: string
          description: The ID of the card the checklist is on.
        pos:
          type: number
          description: The position of the checklist on the card.
        checkItems:
          type: array
          description: The check items in the checklist.
          items:
            $ref: '#/components/schemas/CheckItem'
  parameters:
    idParam:
      name: id
      in: path
      required: true
      description: The ID of the resource.
      schema:
        type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: query
      name: key
      description: Your Trello API key, obtained from the Power-Ups admin page at https://trello.com/power-ups/admin.
    apiToken:
      type: apiKey
      in: query
      name: token
      description: A user token that grants access to Trello resources. Obtained by authorizing via the /1/authorize route or OAuth 1.0.
externalDocs:
  description: Trello REST API Documentation
  url: https://developer.atlassian.com/cloud/trello/rest/