# List all templates in project

Returns a paginated list of templates for the specified project. If no page token is supplied then the first 50 templates are returned in alphabetical order.

Endpoint: GET /v1/projects/{projectId}/kakaotalk/senders/{plusFriendId}/templates
Version: 1.2.91
Security: BasicAuth, BearerAuth, OAuth2Production

## Path parameters:

  - `projectId` (string, required)
    The unique ID of the project. You can find this on the Sinch Dashboard.

  - `plusFriendId` (string, required)
    The unique ID of the sender.

## Query parameters:

  - `filterStates` (array)
    Optionally query for template by states.
    Enum: "APPROVED", "REJECTED"

  - `filterStatuses` (array)
    Optionally query for template by statuses.
    Enum: "DRAFT", "IN_PROGRESS", "REJECTED"

  - `pageSize` (number)
    The page size requested.

  - `pageToken` (string)
    The page token if retrieving the next page from a previous query.

  - `templateName` (string)
    Optionally query for template by name. Will return all templates with names that begin with the query string.

## Response 200 fields (application/json):

  - `totalSize` (number, required)
    Total size of the entries matching the search query.

  - `pageSize` (number, required)
    Requested size of the page.

  - `templates` (array, required)
    List of templates

  - `templates.code` (string, required)
    Registered delivery template code

  - `templates.id` (string)
    The unique ID of the template.

  - `templates.state` (string)
    The current state of the template.
    Enum: same as `filterStates` (2 values)

  - `templates.changes` (object)
    Any pending changes to the template.

  - `templates.changes.status` (string, required)
    Current status of the pending changes
    Enum: same as `filterStatuses` (3 values)

  - `templates.changes.details` (array, required) — one of:
    Template details and information.
    - KakaotalkTemplateDetailsDto:
      - `language` (string, required)
        Template language
        Enum: "AF", "AR", "AZ", "BG", "BN", "CA", "CS", "DA", "DE", "EL", "EN", "EN_GB", "EN_US", "ES", "ES_AR", "ES_ES", "ES_MX", "ET", "FA", "FI", "FIL", "FR", "GA", "GU", "HA", "HE", "HI", "HR", "HU", "ID", "IT", "JA", "KA", "KK", "KN", "KO", "KY_KG", "LO", "LT", "LV", "MK", "ML", "MR", "MS", "NB", "NL", "PA", "PL", "PT_BR", "PT_PT", "RO", "RU", "RW_RW", "SK", "SL", "SQ", "SR", "SV", "SW", "TA", "TE", "TH", "TR", "UK", "UR", "UZ", "VI", "ZH_CN", "ZH_HK", "ZH_TW", "ZU", "UNRECOGNIZED"
      - `messageType` (string, required)
        Types of template message
        Enum: "AD_INCLUDED", "BASIC", "EXTRA_INFORMATION", "MIXED", "TEMPLATE_MESSAGE_TYPE_UNSPECIFIED", "UNRECOGNIZED"
      - `emphasizeType` (string, required)
        Types of emphasized template
        Enum: "EMPHASIZE_TYPE_IMAGE", "EMPHASIZE_TYPE_NONE", "EMPHASIZE_TYPE_TEXT", "EMPHASIZE_TYPE_UNSPECIFIED", "UNRECOGNIZED"
      - `categoryCode` (string, required)
        Template category code
      - `securityFlag` (boolean, required)
        Security template
      - `name` (string, required)
        Button name
      - `buttons` (array, required)
        List of buttons
      - `buttons.ordering` (number)
        Button sequence
      - `buttons.type` (string)
        Button type
        Enum: "APP_LINK", "BOT_FOR_CONSULTATION", "BOT_KEYWORD", "BOT_TRANSFER", "BUSINESS_FORM", "BUTTON_TYPE_UNSPECIFIED", "CHANNEL_ID_ADDED", "DELIVERY_SEARCH", "IMAGE_SECURE_TRANSMISSION_PLUGIN_ID", "MESSAGE_DELIVERY", "ONE_CLICK_PAYMENT_PLUGIN", "PERSONAL_INFORMATION_USE_PLUGIN_ID", "WEB_LINK", "UNRECOGNIZED"
      - `buttons.name` (string)
        Button name
      - `buttons.linkMo` (string)
        Mobile web link
      - `buttons.linkPc` (string)
        PC web link
      - `buttons.schemeIos` (string)
        iOS app link
      - `buttons.schemeAndroid` (string)
        Android app link
      - `content` (string)
        Template body
      - `extra` (string)
        Additional template information
      - `ad` (string)
        Request for consent of receiving within template or simple ad phrases
      - `title` (string)
        Template title
      - `subtitle` (string)
        Auxiliary template phrase
      - `imageName` (string)
        Image name (name of uploaded file)
      - `imageUrl` (string)
        Image URL
    - KakaotalkTemplateChangesDetailsDto:
      - `language` (string)
        Template language
        Enum: same as `language` in "KakaotalkTemplateDetailsDto" (72 values)
      - `messageType` (string)
        Types of template message
        Enum: same as `messageType` in "KakaotalkTemplateDetailsDto" (6 values)
      - `emphasizeType` (string)
        Types of emphasized template
        Enum: same as `emphasizeType` in "KakaotalkTemplateDetailsDto" (5 values)
      - `categoryCode` (string)
        Template category code
      - `securityFlag` (boolean)
        Security template
      - `name` (string)
        Button name
      - `content` (string)
        Template body
      - `extra` (string)
        Additional template information
      - `ad` (string)
        Request for consent of receiving within template or simple ad phrases
      - `title` (string)
        Template title
      - `subtitle` (string)
        Auxiliary template phrase
      - `imageName` (string)
        Image name (name of uploaded file)
      - `imageUrl` (string)
        Image URL
      - `buttons` (array)
        List of buttons
      - `buttons.ordering` (number)
        Button sequence
      - `buttons.type` (string)
        Button type
        Enum: same as `buttons.type` in "KakaotalkTemplateDetailsDto" (14 values)
      - `buttons.name` (string)
        Button name
      - `buttons.linkMo` (string)
        Mobile web link
      - `buttons.linkPc` (string)
        PC web link
      - `buttons.schemeIos` (string)
        iOS app link
      - `buttons.schemeAndroid` (string)
        Android app link

  - `templates.details` (object)
    Template details and information.

  - `templates.details.language` (string, required)
    Template language
    Enum: same as `language` in "KakaotalkTemplateDetailsDto" (72 values)

  - `templates.details.messageType` (string, required)
    Types of template message
    Enum: same as `messageType` in "KakaotalkTemplateDetailsDto" (6 values)

  - `templates.details.emphasizeType` (string, required)
    Types of emphasized template
    Enum: same as `emphasizeType` in "KakaotalkTemplateDetailsDto" (5 values)

  - `templates.details.categoryCode` (string, required)
    Template category code

  - `templates.details.securityFlag` (boolean, required)
    Security template

  - `templates.details.name` (string, required)
    Button name

  - `templates.details.buttons` (array, required)
    List of buttons

  - `templates.details.buttons.ordering` (number)
    Button sequence

  - `templates.details.buttons.type` (string)
    Button type
    Enum: same as `buttons.type` in "KakaotalkTemplateDetailsDto" (14 values)

  - `templates.details.buttons.name` (string)
    Button name

  - `templates.details.buttons.linkMo` (string)
    Mobile web link

  - `templates.details.buttons.linkPc` (string)
    PC web link

  - `templates.details.buttons.schemeIos` (string)
    iOS app link

  - `templates.details.buttons.schemeAndroid` (string)
    Android app link

  - `templates.details.content` (string)
    Template body

  - `templates.details.extra` (string)
    Additional template information

  - `templates.details.ad` (string)
    Request for consent of receiving within template or simple ad phrases

  - `templates.details.title` (string)
    Template title

  - `templates.details.subtitle` (string)
    Auxiliary template phrase

  - `templates.details.imageName` (string)
    Image name (name of uploaded file)

  - `templates.details.imageUrl` (string)
    Image URL

  - `templates.created` (string)
    The UTC Date Time in ISO 8601 for when the template was created.

  - `templates.modified` (string)
    The UTC Date Time in ISO 8601 for when the template was last modified.

  - `previousPageToken` (string)
    Encoded token to use in list request to fetch previous batch of entries.

  - `nextPageToken` (string)
    Encoded token to use in list request to fetch next batch of entries.

## Response 400 fields (application/json):

  - `body` (ProjectNotInitializedErrorTitle (object) or InvalidPageSizeErrorTitle (object) or InvalidPageTokenErrorTitle (object)) — one of:
    - ProjectNotInitializedErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "project_not_initialized"
      - `message` (string)
        Human readable message.
        Example: "Project not initialized for KakaoTalk."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "Verify that the project ID is correct and that it has been onboarded for KakaoTalk."
    - InvalidPageSizeErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "invalid_page_size"
      - `message` (string)
        Human readable message.
        Example: "Page size must be numeric."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "Use a integer value for pageSize parameter."
    - InvalidPageTokenErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "invalid_page_token"
      - `message` (string)
        Human readable message.
        Example: "Invalid page token."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "The page token to use is provided in the previous query response, for new queries simply leave this field undefined."

## Response 401 fields (application/json):

  - `errorCode` (string)
    Error code allows to programmatically handle errors.
    Example: "unauthorized_error"

  - `message` (string)
    Human readable message.
    Example: "Unauthorized error."

  - `resolution` (string)
    Human readable message with an explanation of how to solve the error.
    Example: "Verify that projectId is correct."

## Response 404 fields (application/json):

  - `body` (SenderNotFoundErrorTitle (object) or TemplateNotFoundErrorTitle (object)) — one of:
    - SenderNotFoundErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "sender_not_found"
      - `message` (string)
        Human readable message.
        Example: "Sender not found."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "Verify that the parameters are correct."
    - TemplateNotFoundErrorTitle:
      - `errorCode` (string)
        Error code allows to programmatically handle errors.
        Example: "template_not_found"
      - `message` (string)
        Human readable message.
        Example: "Template not found."
      - `resolution` (string)
        Human readable message with an explanation of how to solve the error.
        Example: "Verify that the parameters are correct."

## Response 500 fields (application/json):

  - `errorCode` (string)
    Error code allows to programmatically handle errors.
    Example: "internal_error"

  - `message` (string)
    Human readable message.
    Example: "Internal server error."

  - `resolution` (string)
    Human readable message with an explanation of how to solve the error.
    Example: "Please wait and try again, if the error persist please contact support."


