Felt Comments API

Comments bring conversations to mapping. With these APIs, you can export, resolve, and delete map comments and collaboration threads.

OpenAPI Specification

felt-comments-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: Felt REST API v2.0
  title: Felt Comments API
  version: '2.0'
servers:
- url: https://felt.com
  variables: {}
security: []
tags:
- description: 'Comments bring conversations to mapping.


    With these APIs, you can export, resolve, and delete map comments and collaboration threads.

    '
  name: Comments
  x-page-description: APIs for programatic collaboration
  x-page-icon: comment
paths:
  /api/v2/maps/{map_id}/comments/export:
    get:
      callbacks: {}
      description: Export all comments and replies from a map in `CSV`, `JSON`, or `GeoJSON` format.
      operationId: export_map_comments
      parameters:
      - description: The ID of the map to export comments from.
        in: path
        name: map_id
        required: true
        schema:
          type: string
      - description: 'The format to export the comments in: ''csv'', ''json'' (default), or ''geojson'''
        in: query
        name: format
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommentExport'
          description: Comment export response
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: UnauthorizedError
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: UnauthorizedError
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: NotFoundError
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonErrorResponse'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonErrorResponse'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: InternalServerError
      security:
      - bearerAuth: []
      summary: Export map comments
      tags:
      - Comments
  /api/v2/maps/{map_id}/comments/{comment_id}/resolve:
    post:
      callbacks: {}
      description: Mark a comment thread as resolved.
      operationId: resolve_map_comment
      parameters:
      - description: The ID of the map that contains the comment.
        in: path
        name: map_id
        required: true
        schema:
          type: string
      - description: The ID of the comment to resolve.
        in: path
        name: comment_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommentResolved'
          description: Comment resolved response
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: UnauthorizedError
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: UnauthorizedError
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: NotFoundError
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonErrorResponse'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonErrorResponse'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: InternalServerError
      security:
      - bearerAuth: []
      summary: Resolve map comment
      tags:
      - Comments
  /api/v2/maps/{map_id}/comments/{comment_id}:
    delete:
      callbacks: {}
      description: 'Permanently delete a comment or reply from the map.


        {% hint style="warning" %}

        This action cannot be undone. The comment or reply will be permanently removed from the map.

        {% endhint %}

        '
      operationId: delete_map_comment
      parameters:
      - description: The ID of the map that contains the comment.
        in: path
        name: map_id
        required: true
        schema:
          type: string
      - description: The ID of the comment to delete.
        in: path
        name: comment_id
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: UnauthorizedError
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
          description: UnauthorizedError
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: NotFoundError
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonErrorResponse'
          description: Unprocessable Entity
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonErrorResponse'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
          description: InternalServerError
      security:
      - bearerAuth: []
      summary: Delete map comment
      tags:
      - Comments
components:
  schemas:
    FeltID:
      example: luCHyMruTQ6ozGk3gPJfEB
      format: felt_id
      nullable: false
      title: FeltID
      type: string
    CommentExport:
      items:
        description: Comment Thread
      title: CommentExport
      type: array
    InternalServerError:
      properties:
        errors:
          items:
            properties:
              detail:
                type: string
              source:
                properties:
                  parameter:
                    type: string
                type: object
              title:
                type: string
            type: object
          type: array
      title: InternalServerError
      type: object
    UnauthorizedError:
      properties:
        errors:
          items:
            properties:
              detail:
                type: string
              source:
                properties:
                  header:
                    enum:
                    - authorization
                    type: string
                type: object
              title:
                type: string
            type: object
          type: array
      title: UnauthorizedError
      type: object
    CommentResolved:
      properties:
        comment_id:
          $ref: '#/components/schemas/FeltID'
      title: CommentResolved
      type: object
    NotFoundError:
      properties:
        errors:
          items:
            properties:
              detail:
                type: string
              source:
                properties:
                  parameter:
                    type: string
                type: object
              title:
                type: string
            type: object
          type: array
      title: NotFoundError
      type: object
    JsonErrorResponse:
      properties:
        errors:
          items:
            properties:
              detail:
                example: null value where string expected
                type: string
              source:
                properties:
                  pointer:
                    example: /data/attributes/petName
                    type: string
                required:
                - pointer
                type: object
              title:
                example: Invalid value
                type: string
            required:
            - title
            - source
            - detail
            type: object
          type: array
      required:
      - errors
      title: JsonErrorResponse
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: YOUR_API_KEY
      scheme: bearer
      type: http