---
title: "List String/Asset Comments"
method: GET
path: "/projects/{projectId}/comments"
tags: ["String/Asset Comments"]
---

# List String/Asset Comments

`GET /projects/{projectId}/comments`

## Request

- Base URL: `https://api.crowdin.com/api/v2`
- URL: `https://api.crowdin.com/api/v2/projects/{projectId}/comments`
- Auth: none declared
- TypeScript: <https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/docs/projects/:projectId/comments/get.ts> (a function with typed inputs; its response is checked against the schema)

**Required scopes:** `project.source.string` (Read only).

List comments and issues for strings or assets. Use the oneOf pattern:
- **String type**: Use `stringId`
- **Asset type**: Use `fileId`
- **All comments**: Omit both parameters to list all project comments

## Path parameters

- `projectId` integer, required

## Query parameters

- `orderBy` 'id' | 'text' | 'type' | 'createdAt' | 'resolvedAt' | 'issueStatus' | 'issueType' | 'isShared'
- `limit` integer
- `offset` integer
- `stringId` integer
- `fileId` integer
- `type` 'comment' | 'issue'
- `issueType` 'general_question' | 'translation_mistake' | 'context_request' | 'source_mistake'
- `issueStatus` 'resolved' | 'unresolved'

## Response `200`

Reported issues list

- EnterpriseStringCommentCollectionResource: Base schema of resource container. Container is a wrapper object that contains payload in required `data` property and provides space for adding any other metadata.
  - `data` union[], required
    - union
      - object: Base schema of resource container. Container is a wrapper object that contains payload in required `data` property and provides space for adding any other metadata.
        - `data` EnterpriseStringComment, required: String/Asset Comment Response Model. For string comments, `stringId` is provided and `fileId` is null. For asset comments, `fileId` is provided and `stringId` is null.
          - `id` integer: Comment ID
          - `isShared` boolean: Whether the comment is shared
          - `text` string: Comment text
          - `userId` integer: User ID
          - `user` object: User object
            - `id` integer: User ID
            - `username` string: User username
            - `fullName` string: User full name
            - `avatarUrl` string: User avatar URL
          - `projectId` integer: Project ID
          - `languageId` string: Language ID
          - `type` 'comment' | 'issue': Comment type
          - `issueType` 'general_question' | 'translation_mistake' | 'context_request' | 'source_mistake': Issue type
          - `issueStatus` 'resolved' | 'unresolved': Issue status
          - `resolverId` integer: Resolver ID
          - `senderOrganization` object: Sender organization object
            - `id` integer: Sender organization ID
            - `domain` string: Sender organization domain
          - `resolverOrganization` object: Resolver organization object
            - `id` integer: Resolver organization ID
            - `domain` string: Resolver organization domain
          - `resolver` object: Resolver object
            - `id` integer: Resolver ID
            - `username` string: Resolver username
            - `fullName` string: Resolver full name
            - `avatarUrl` string: Resolver avatar URL
          - `resolvedAt` string, date-time: Resolved at
          - `createdAt` string, date-time: Created at
          - `attachments` object[]: List of attachments added to the comment
            - `id` integer: Attachment ID
            - `name` string: Original file name
            - `mime` string: MIME type
            - `size` integer: File size in bytes
            - `category` string: Attachment category (image, video, audio, document, other)
            - `thumbnailUrl` string, nullable: Thumbnail URL
            - `url` string: Preview URL
            - `downloadUrl` string: Download URL
          - `stringId` integer: String ID
          - `string` object: String object
            - `id` integer: String ID
            - `text` string: String text
            - `type` string: String type
            - `hasPlurals` boolean: Whether the string has plurals
            - `isIcu` boolean: Whether the string is ICU
            - `context` string: String context
            - `fileId` integer: File ID
      - object: Base schema of resource container. Container is a wrapper object that contains payload in required `data` property and provides space for adding any other metadata.
        - `data` EnterpriseAssetComment, required: String/Asset Comment Response Model. For string comments, `stringId` is provided and `fileId` is null. For asset comments, `fileId` is provided and `stringId` is null.
          - `id` integer: Comment ID
          - `isShared` boolean: Whether the comment is shared
          - `text` string: Comment text
          - `userId` integer: User ID
          - `user` object: User object
            - `id` integer: User ID
            - `username` string: User username
            - `fullName` string: User full name
            - `avatarUrl` string: User avatar URL
          - `projectId` integer: Project ID
          - `languageId` string: Language ID
          - `type` 'comment' | 'issue': Comment type
          - `issueType` 'general_question' | 'translation_mistake' | 'context_request' | 'source_mistake': Issue type
          - `issueStatus` 'resolved' | 'unresolved': Issue status
          - `resolverId` integer: Resolver ID
          - `senderOrganization` object: Sender organization object
            - `id` integer: Sender organization ID
            - `domain` string: Sender organization domain
          - `resolverOrganization` object: Resolver organization object
            - `id` integer: Resolver organization ID
            - `domain` string: Resolver organization domain
          - `resolver` object: Resolver object
            - `id` integer: Resolver ID
            - `username` string: Resolver username
            - `fullName` string: Resolver full name
            - `avatarUrl` string: Resolver avatar URL
          - `resolvedAt` string, date-time: Resolved at
          - `createdAt` string, date-time: Created at
          - `attachments` object[]: List of attachments added to the comment
            - `id` integer: Attachment ID
            - `name` string: Original file name
            - `mime` string: MIME type
            - `size` integer: File size in bytes
            - `category` string: Attachment category (image, video, audio, document, other)
            - `thumbnailUrl` string, nullable: Thumbnail URL
            - `url` string: Preview URL
            - `downloadUrl` string: Download URL
          - `fileId` integer: File ID
          - `file` object: File object for asset comments
            - `id` integer: File ID
            - `name` string: Asset filename
            - `type` string: File type
            - `context` string: Asset context
  - `pagination` Pagination: Pagination Response Model
    - `offset` integer
    - `limit` integer

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Project, string, or file with specified id was not found
- `405`: Method Not Allowed

---

[API](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2.md) - [All operations](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/revisions/dc68744c5384?raw)
