Trello REST API

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.

OpenAPI Specification

trello-rest-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Trello REST 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
externalDocs:
  description: Trello REST API Documentation
  url: https://developer.atlassian.com/cloud/trello/rest/
servers:
  - url: https://api.trello.com/1
    description: Trello API v1 Production Server
tags:
  - name: Actions
    description: >-
      Operations for retrieving and managing actions, which represent activity
      events that occur on Trello objects such as boards, lists, and cards.
  - name: Boards
    description: >-
      Operations for creating, retrieving, updating, and deleting boards, as
      well as managing board memberships, lists, cards, labels, and other
      board-level resources.
  - name: Cards
    description: >-
      Operations for creating, retrieving, updating, and deleting cards,
      including managing card attachments, checklists, comments, labels,
      members, and stickers.
  - name: Checklists
    description: >-
      Operations for creating, retrieving, updating, and deleting checklists
      and their check items on cards.
  - name: CustomFields
    description: >-
      Operations for creating, retrieving, updating, and deleting custom field
      definitions and their values on boards and cards.
  - name: Labels
    description: >-
      Operations for creating, retrieving, updating, and deleting labels on
      boards and cards.
  - name: Lists
    description: >-
      Operations for creating, retrieving, updating, and archiving lists on
      boards.
  - name: Members
    description: >-
      Operations for retrieving and updating member profiles, boards,
      organizations, and notification settings.
  - name: Notifications
    description: >-
      Operations for retrieving and managing member notifications about
      activity on boards, cards, and other Trello objects.
  - name: Organizations
    description: >-
      Operations for creating, retrieving, updating, and deleting Trello
      workspaces (organizations), including managing workspace members and
      settings.
  - name: Plugins
    description: >-
      Operations for managing Power-Up plugins, including listing, updating,
      and creating plugin marketplace listings.
  - name: Search
    description: >-
      Operations for searching across Trello boards, cards, members, and
      organizations using query strings.
  - name: Tokens
    description: >-
      Operations for retrieving and deleting API tokens and their associated
      webhooks.
  - name: Webhooks
    description: >-
      Operations for creating, retrieving, updating, and deleting webhooks
      that deliver real-time notifications when Trello models change.
security:
  - apiKey: []
    apiToken: []
paths:
  /actions/{id}:
    get:
      operationId: getAction
      summary: Get an Action
      description: >-
        Retrieves a single action by its identifier. Actions represent events
        that have occurred on Trello objects.
      tags:
        - Actions
      parameters:
        - $ref: '#/components/parameters/idParam'
      responses:
        '200':
          description: Successfully retrieved the action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Action'
        '401':
          description: Unauthorized. Invalid or missing API key and token.
        '404':
          description: Action not found.
    put:
      operationId: updateAction
      summary: Update an Action
      description: >-
        Updates the text of a comment action. Only comment actions can be
        updated.
      tags:
        - Actions
      parameters:
        - $ref: '#/components/parameters/idParam'
        - name: text
          in: query
          description: The new text for the comment action.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successfully updated the action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Action'
        '401':
          description: Unauthorized.
        '404':
          description: Action not found.
    delete:
      operationId: deleteAction
      summary: Delete an Action
      description: >-
        Deletes a comment action. Only comment actions can be deleted.
      tags:
        - Actions
      parameters:
        - $ref: '#/components/parameters/idParam'
      responses:
        '200':
          description: Successfully deleted the action.
        '401':
          description: Unauthorized.
        '404':
          description: Action not found.
  /actions/{id}/{field}:
    get:
      operationId: getActionField
      summary: Get a specific field of an Action
      description: >-
        Retrieves a single field value from an action.
      tags:
        - Actions
      parameters:
        - $ref: '#/components/parameters/idParam'
        - name: field
          in: path
          required: true
          description: The field to retrieve from the action.
          schema:
            type: string
            enum:
              - id
              - idMemberCreator
              - data
              - type
              - date
              - limits
              - display
              - memberCreator
      responses:
        '200':
          description: Successfully retrieved the field value.
        '401':
          description: Unauthorized.
        '404':
          description: Action not found.
  /actions/{id}/board:
    get:
      operationId: getActionBoard
      summary: Get the Board for an Action
      description: >-
        Retrieves the board associated with a given action.
      tags:
        - Actions
      parameters:
        - $ref: '#/components/parameters/idParam'
      responses:
        '200':
          description: Successfully retrieved the board.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Board'
        '401':
          description: Unauthorized.
        '404':
          description: Action not found.
  /actions/{id}/card:
    get:
      operationId: getActionCard
      summary: Get the Card for an Action
      description: >-
        Retrieves the card associated with a given action.
      tags:
        - Actions
      parameters:
        - $ref: '#/components/parameters/idParam'
      responses:
        '200':
          description: Successfully retrieved the card.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Card'
        '401':
          description: Unauthorized.
        '404':
          description: Action not found.
  /actions/{id}/list:
    get:
      operationId: getActionList
      summary: Get the List for an Action
      description: >-
        Retrieves the list associated with a given action.
      tags:
        - Actions
      parameters:
        - $ref: '#/components/parameters/idParam'
      responses:
        '200':
          description: Successfully retrieved the list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrelloList'
        '401':
          description: Unauthorized.
        '404':
          description: Action not found.
  /actions/{id}/member:
    get:
      operationId: getActionMember
      summary: Get the Member of an Action
      description: >-
        Retrieves the member who was the subject of a given action.
      tags:
        - Actions
      parameters:
        - $ref: '#/components/parameters/idParam'
      responses:
        '200':
          description: Successfully retrieved the member.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Member'
        '401':
          description: Unauthorized.
        '404':
          description: Action not found.
  /actions/{id}/memberCreator:
    get:
      operationId: getActionMemberCreator
      summary: Get the Member Creator of an Action
      description: >-
        Retrieves the member who created a given action.
      tags:
        - Actions
      parameters:
        - $ref: '#/components/parameters/idParam'
      responses:
        '200':
          description: Successfully retrieved the member creator.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Member'
        '401':
          description: Unauthorized.
        '404':
          description: Action not found.
  /actions/{id}/organization:
    get:
      operationId: getActionOrganization
      summary: Get the Organization for an Action
      description: >-
        Retrieves the organization (workspace) associated with a given action.
      tags:
        - Actions
      parameters:
        - $ref: '#/components/parameters/idParam'
      responses:
        '200':
          description: Successfully retrieved the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '401':
          description: Unauthorized.
        '404':
          description: Action not found.
  /actions/{id}/reactions:
    get:
      operationId: getActionReactions
      summary: List Reactions for an Action
      description: >-
        Retrieves all emoji reactions on a given action.
      tags:
        - Actions
      parameters:
        - $ref: '#/components/parameters/idParam'
      responses:
        '200':
          description: Successfully retrieved the reactions.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Reaction'
        '401':
          description: Unauthorized.
        '404':
          description: Action not found.
    post:
      operationId: createActionReaction
      summary: Create a Reaction for an Action
      description: >-
        Adds an emoji reaction to an action.
      tags:
        - Actions
      parameters:
        - $ref: '#/components/parameters/idParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                shortName:
                  type: string
                  description: The short name of the emoji to react with.
                skinVariation:
                  type: string
                  description: The skin variation of the emoji.
                native:
                  type: string
                  description: The native emoji character.
                unified:
                  type: string
                  description: The unified code of the emoji.
      responses:
        '200':
          description: Successfully created the reaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Reaction'
        '401':
          description: Unauthorized.
        '404':
          description: Action not found.
  /boards:
    post:
      operationId: createBoard
      summary: Create a Board
      description: >-
        Creates a new Trello board with the specified name and optional settings
        such as description, organization, permission level, and initial
        configuration.
      tags:
        - Boards
      parameters:
        - name: name
          in: query
          required: true
          description: The name for the new board.
          schema:
            type: string
            minLength: 1
            maxLength: 16384
        - name: defaultLabels
          in: query
          description: Whether to apply the default set of labels to the board.
          schema:
            type: boolean
            default: true
        - name: defaultLists
          in: query
          description: Whether to add the default set of lists to the board.
          schema:
            type: boolean
            default: true
        - name: desc
          in: query
          description: A description for the board.
          schema:
            type: string
            maxLength: 16384
        - name: idOrganization
          in: query
          description: The ID or name of the organization (workspace) the board should belong to.
          schema:
            type: string
        - name: idBoardSource
          in: query
          description: The ID of a board to copy into the new board.
          schema:
            type: string
        - name: prefs_permissionLevel
          in: query
          description: The permissions level of the board.
          schema:
            type: string
            enum:
              - org
              - private
              - public
            default: private
        - name: prefs_voting
          in: query
          description: Who can vote on the board.
          schema:
            type: string
            enum:
              - disabled
              - members
              - observers
              - org
              - public
            default: disabled
        - name: prefs_comments
          in: query
          description: Who can comment on cards on the board.
          schema:
            type: string
            enum:
              - disabled
              - members
              - observers
              - org
              - public
            default: members
        - name: prefs_background
          in: query
          description: The background color or image for the board.
          schema:
            type: string
            default: blue
        - name: prefs_cardAging
          in: query
          description: The style of card aging to apply to the board.
          schema:
            type: string
            enum:
              - pirate
              - regular
            default: regular
        - name: prefs_selfJoin
          in: query
          description: Whether workspace members can join the board themselves.
          schema:
            type: boolean
            default: true
      responses:
        '200':
          description: Successfully created the board.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Board'
        '400':
          description: Bad request. Missing required parameters.
        '401':
          description: Unauthorized.
  /boards/{id}:
    get:
      operationId: getBoard
      summary: Get a Board
      description: >-
        Retrieves a single board by its identifier, including its fields and
        optionally nested resources.
      tags:
        - Boards
      parameters:
        - $ref: '#/components/parameters/idParam'
        - name: actions
          in: query
          description: A comma-separated list of action types to include.
          schema:
            type: string
        - name: boardStars
          in: query
          description: Whether to include board stars.
          schema:
            type: string
            enum:
              - mine
              - none
        - name: cards
          in: query
          description: Filter cards to include.
          schema:
            type: string
            enum:
              - all
              - closed
              - none
              - open
              - visible
            default: none
        - name: card_fields
          in: query
          description: A comma-separated list of card fields to include.
          schema:
            type: string
        - name: checklists
          in: query
          description: Whether to include checklists.
          schema:
            type: string
            enum:
              - all
              - none
            default: none
        - name: fields
          in: query
          description: A comma-separated list of board fields to include.
          schema:
            type: string
            default: name,desc,descData,closed,idOrganization,pinned,url,shortUrl,prefs,labelNames
        - name: labels
          in: query
          description: Whether to include labels.
          schema:
            type: string
            enum:
              - all
              - none
        - name: lists
          in: query
          description: Filter lists to include.
          schema:
            type: string
            enum:
              - all
              - closed
              - none
              - open
            default: none
        - name: members
          in: query
          description: Whether to include members.
          schema:
            type: string
            enum:
              - admins
              - all
              - none
              - normal
              - owners
            default: none
        - name: memberships
          in: query
          description: Whether to include memberships.
          schema:
            type: string
        - name: organization
          in: query
          description: Whether to include the organization.
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: Successfully retrieved the board.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Board'
        '401':
          description: Unauthorized.
        '404':
          description: Board not found.
    put:
      operationId: updateBoard
      summary: Update a Board
      description: >-
        Updates a board's fields, including name, description, preferences, and
        organizational settings.
      tags:
        - Boards
      parameters:
        - $ref: '#/components/parameters/idParam'
        - name: name
          in: query
          description: The new name for the board.
          schema:
            type: string
            minLength: 1
            maxLength: 16384
        - name: desc
          in: query
          description: The new description for the board.
          schema:
            type: string
            maxLength: 16384
        - name: closed
          in: query
          description: Whether the board is closed (archived).
          schema:
            type: boolean
        - name: subscribed
          in: query
          description: Whether the authenticated member is subscribed to the board.
          schema:
            type: boolean
        - name: idOrganization
          in: query
          description: The ID of the organization to move the board to.
          schema:
            type: string
        - name: prefs/permissionLevel
          in: query
          description: The permission level for the board.
          schema:
            type: string
            enum:
              - org
              - private
              - public
        - name: prefs/selfJoin
          in: query
          description: Whether workspace members can join the board themselves.
          schema:
            type: boolean
        - name: prefs/cardCovers
          in: query
          description: Whether card covers are enabled.
          schema:
            type: boolean
        - name: prefs/hideVotes
          in: query
          description: Whether votes are hidden until voting is complete.
          schema:
            type: boolean
        - name: prefs/background
          in: query
          description: The background for the board.
          schema:
            type: string
        - name: prefs/cardAging
          in: query
          description: The card aging style.
          schema:
            type: string
            enum:
              - pirate
              - regular
        - name: labelNames/green
          in: query
          description: Name for the green label.
          schema:
            type: string
        - name: labelNames/yellow
          in: query
          description: Name for the yellow label.
          schema:
            type: string
        - name: labelNames/orange
          in: query
          description: Name for the orange label.
          schema:
            type: string
        - name: labelNames/red
          in: query
          description: Name for the red label.
          schema:
            type: string
        - name: labelNames/purple
          in: query
          description: Name for the purple label.
          schema:
            type: string
        - name: labelNames/blue
          in: query
          description: Name for the blue label.
          schema:
            type: string
      responses:
        '200':
          description: Successfully updated the board.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Board'
        '401':
          description: Unauthorized.
        '404':
          description: Board not found.
    delete:
      operationId: deleteBoard
      summary: Delete a Board
      description: >-
        Permanently deletes a board. This action cannot be undone.
      tags:
        - Boards
      parameters:
        - $ref: '#/components/parameters/idParam'
      responses:
        '200':
          description: Successfully deleted the board.
        '401':
          description: Unauthorized.
        '404':
          description: Board not found.
  /boards/{id}/actions:
    get:
      operationId: getBoardActions
      summary: Get Actions for a Board
      description: >-
        Retrieves a list of actions (activity events) associated with a board.
      tags:
        - Boards
      parameters:
        - $ref: '#/components/parameters/idParam'
        - name: filter
          in: query
          description: A comma-separated list of action types to filter by.
          schema:
            type: string
        - name: limit
          in: query
          description: The maximum number of actions to return.
          schema:
            type: integer
            minimum: 0
            maximum: 1000
            default: 50
      responses:
        '200':
          description: Successfully retrieved board actions.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Action'
        '401':
          description: Unauthorized.
        '404':
          description: Board not found.
  /boards/{id}/cards:
    get:
      operationId: getBoardCards
      summary: Get Cards on a Board
      description: >-
        Retrieves all cards on a board, with optional filtering.
      tags:
        - Boards
      parameters:
        - $ref: '#/components/parameters/idParam'
        - name: fields
          in: query
          description: A comma-separated list of card fields to return.
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved board cards.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Card'
        '401':
          description: Unauthorized.
        '404':
          description: Board not found.
  /boards/{id}/cards/{filter}:
    get:
      operationId: getBoardCardsFilter
      summary: Get Filtered Cards on a Board
      description: >-
        Retrieves cards on a board filtered by status.
      tags:
        - Boards
      parameters:
        - $ref: '#/components/parameters/idParam'
        - name: filter
          in: path
          required: true
          description: The filter to apply to the cards.
          schema:
            type: string
            enum:
              - all
              - closed
              - none
              - open
              - visible
      responses:
        '200':
          description: Successfully retrieved filtered board cards.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Card'
        '401':
          description: Unauthorized.
        '404':
          description: Board not found.
  /boards/{id}/checklists:
    get:
      operationId: getBoardChecklists
      summary: Get Checklists on a Board
      description: >-
        Retrieves all checklists on a board.
      tags:
        - Boards
      parameters:
        - $ref: '#/components/parameters/idParam'
      responses:
        '200':
          description: Successfully retrieved board checklists.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Checklist'
        '401':
          description: Unauthorized.
        '404':
          description: Board not found.
  /boards/{id}/labels:
    get:
      operationId: getBoardLabels
      summary: Get Labels on a Board
      description: >-
        Retrieves all labels defined on a board.
      tags:
        - Boards
      parameters:
        - $ref: '#/components/parameters/idParam'
        - name: fields
          in: query
          description: A comma-separated list of label fields to return.
          schema:
            type: string
            default: all
        - name: limit
          in: query
          description: Maximum number of labels to return.
          schema:
            type: integer
            minimum: 0
            maximum: 1000
            default: 50
      responses:
        '200':
          description: Successfully retrieved board labels.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Label'
        '401':
          description: Unauthorized.
        '404':
          description: Board not found.
    post:
      operationId: createBoardLabel
      summary: Create a Label on a Board
      description: >-
        Creates a new label on a board.
      tags:
        - Boards
      parameters:
        - $ref: '#/components/parameters/idParam'
        - name: name
          in: query
          required: true
          description: The name for the label.
          schema:
            type: string
        - name: color
          in: query
          required: true
          description: The color for the label.
          schema:
            type: string
            enum:
              - yellow
              - purple
              - blue
              - red
              - green
              - orange
              - black
              - sky
              - pink
              - lime
              - 'null'
      responses:
        '200':
          description: Successfully created the label.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Label'
        '400':
          description: Bad request. Missing required parameters.
        '401':
          description: Unauthorized.
        '404':
          description: Board not found.
  /boards/{id}/lists:
    get:
      operationId: getBoardLists
      summary: Get Lists on a Board
      description: >-
        Retrieves all lists on a board, with optional filtering.
      tags:
        - Boards
      parameters:
        - $ref: '#/components/parameters/idParam'
        - name: cards
          in: query
          description: Filter cards within lists.
          schema:
            type: string
            enum:
              - all
              - closed
              - none
              - open
            default: none
        - name: card_fields
          in: query
          description: A comma-separated list of card fields to return.
          schema:
            type: string
            default: all
        - name: filter
          in: query
          description: Filter lists by status.
          schema:
            type: string
            enum:
              - all
              - closed
              - none
              - open
            default: open
        - name: fields
          in: query
          description: A comma-separated list of list fields to return.
          schema:
            type: string
            default: all
      responses:
        '200':
          description: Successfully retrieved board lists.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TrelloList'
        '401':
          description: Unauthorized.
        '404':
          description: Board not found.
    post:
      operationId: createBoardList
      summary: Create a List on a Board
      description: >-
        Creates a new list on the specified board.
      tags:
        - Boards
      parameters:
        - $ref: '#/components/parameters/idParam'
        - name: name
          in: query
          required: true
          description: The name for the new list.
          schema:
            type: string
            minLength: 1
            maxLength: 16384
        - name: pos
          in: query
          description: The position of the list on the board.
          schema:
            type: string
            default: top
      responses:
        '200':
          description: Successfully created the list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrelloList'
        '400':
          description: Bad request. Missing required parameters.
        '401':
          description: Unauthorized.
        '404':
          description: Board not found.
  /boards/{id}/members:
    get:
      operationId: getBoardMembers
      summary: Get Members of a Board
      description: >-
        Retrieves the members associated with a board.
      tags:
        - Boards
      parameters:
        - $ref: '#/components/parameters/idParam'
      responses:
        '200':
          description: Successfully retrieved board members.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Member'
        '401':
          description: Unauthorized.
        '404':
          description: Board not found.
    put:
      operationId: inviteBoardMember
      summary: Invite a Member to a Board
      description: >-
        Invites a member to a board via email.
      tags:
        - Boards
      parameters:
        - $ref: '#/components/parameters/idParam'
        - name: email
          in: query
          required: true
          description: The email address of the member to invite.
          schema:
            type: string
            format: email
        - name: type
          in: query
          description: The type of membership.
          schema:
            type: string
            enum:
              - admin
              - normal
              - observer
            default: normal
      responses:
        '200':
          description: Successfully invited the member.
        '401':
          description: Unauthorized.
        '404':
          description: Board not found.
  /boards/{id}/members/{idMember}:
    put:
      operationId: updateBoardMember
      summary: Update a Board Member
      description: >-
        Updates the membership type for a member on a board.
      tags:
        - Boards
      parameters:
        - $ref: '#/components/parameters/idParam'
        - name: idMember
          in: path
          required: true
          description: The ID of the member to update.
          schema:
            type: string
        - name: type
          in: query
          required: true
          description: The new membership type.
          schema:
            type: string
            enum:
              - admin
              - normal
              - observer
      responses:
        '200':
          description: Successfully updated the board member.
   

# --- truncated at 32 KB (133 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/trello/refs/heads/main/openapi/trello-rest-api-openapi.yml