Felt REST API

REST API for programmatically creating and managing maps, layers, layer groups, elements/annotations, embed tokens, and workspace projects on the Felt collaborative mapping platform.

OpenAPI Specification

felt-felt-rest-api-openapi.yml Raw ↑
components:
  responses: {}
  schemas:
    User:
      properties:
        email:
          type: string
        id:
          $ref: '#/components/schemas/FeltID'
        name:
          type: string
      title: User
      type: object
    SourcePermissions:
      oneOf:
      - additionalProperties: false
        properties:
          type:
            enum:
            - workspace_editors
            type: string
        required:
        - type
        title: SourcePermissions-WorkspaceEditors
        type: object
      - additionalProperties: false
        properties:
          type:
            enum:
            - source_owner
            type: string
        required:
        - type
        title: SourcePermissions-SourceOwner
        type: object
      - additionalProperties: false
        properties:
          project_ids:
            items:
              $ref: '#/components/schemas/FeltID'
            type: array
          type:
            enum:
            - project_editors
            type: string
        required:
        - type
        - project_ids
        title: SourcePermissions-ProjectEditors
        type: object
      title: SourcePermissions
    MoveMapFolderParams:
      properties:
        folder_id:
          $ref: '#/components/schemas/FeltID'
      required:
      - folder_id
      title: MoveMapFolderParams
      type: object
    SourceCredential-CustomHeaders:
      additionalProperties: false
      description: Authenticate to an API using headers
      properties:
        headers:
          items:
            properties:
              name:
                description: The header name
                type: string
              sensitive:
                description: Whether or not the header is sensitive. If it is marked
                  as sensitive, then `felt:redacted` will be returned when viewing
                  this header
                type: boolean
              value:
                description: The header value
                type: string
            required:
            - name
            - value
            - sensitive
            type: object
          type: array
        type:
          enum:
          - custom_headers
          type: string
      required:
      - type
      - headers
      title: SourceCredential-CustomHeaders
      type: object
    SourceCreateConnectionParams-WFS:
      additionalProperties: false
      description: Web Feature Server
      properties:
        type:
          enum:
          - wfs
          type: string
        url:
          description: WFS URL
          type: string
      required:
      - type
      - url
      title: SourceCreateConnectionParams-WFS
      type: object
    LayerGroupParams:
      additionalProperties: false
      properties:
        caption:
          example: A very interesting group
          type: string
        id:
          $ref: '#/components/schemas/FeltID'
        legend_visibility:
          description: Controls how the layer group is displayed in the legend
          enum:
          - hide
          - show
          type: string
        name:
          example: My Layer Group
          type: string
        ordering_key:
          type: integer
        subtitle:
          deprecated: true
          description: 'Deprecated: use `caption` instead.'
          type: string
        visibility_interaction:
          description: Controls how the layer group is displayed in the legend. Defaults
            to `"default"`.
          enum:
          - default
          - slider
          - select
          - multi_select
          nullable: true
          type: string
      required:
      - name
      title: LayerGroupParams
      type: object
    ElementGroupParamsList:
      items:
        $ref: '#/components/schemas/ElementGroupParams'
      title: ElementGroupParamsList
      type: array
    SourceConnection-Databricks:
      additionalProperties: false
      properties:
        catalog:
          nullable: true
          type: string
        credentials:
          items:
            properties:
              created_at:
                nullable: true
                type: integer
              credential:
                oneOf:
                - $ref: '#/components/schemas/SourceCredential-OAuthM2M'
                - $ref: '#/components/schemas/SourceCredential-DatabricksPAT'
                type: object
              id:
                $ref: '#/components/schemas/FeltID'
              name:
                type: string
              source_id:
                $ref: '#/components/schemas/FeltID'
              updated_at:
                nullable: true
                type: integer
              use_case:
                enum:
                - source_authentication
                type: string
            type: object
          type: array
        http_path:
          type: string
        schema:
          nullable: true
          type: string
        server_hostname:
          type: string
        type:
          enum:
          - databricks
          type: string
      title: SourceConnection-Databricks
      type: object
    UploadInterpretationHint-AttributeHint-Australian_ABS_Postal_Area_2021:
      description: A hint that the data contains a Australian ABS postal area (2021)
        attribute. https://www.abs.gov.au/statistics/standards/australian-statistical-geography-standard-asgs-edition-3/jul2021-jun2026/non-abs-structures/postal-areas
      properties:
        attribute:
          properties:
            aus_postal_area_2021:
              type: string
          required:
          - aus_postal_area_2021
          type: object
      required:
      - attribute
      title: UploadInterpretationHint-AttributeHint-Australian_ABS_Postal_Area_2021
      type: object
    UploadLayerParams:
      properties:
        hints:
          description: A list of hints for interpreting the data in the upload.
          items:
            $ref: '#/components/schemas/UploadInterpretationHint'
          type: array
        import_url:
          description: A public URL containing geodata to import, in place of uploading
            a file.
          type: string
        lat:
          description: (Image uploads only) The latitude of the image center.
          type: number
        lng:
          description: (Image uploads only) The longitude of the image center.
          type: number
        metadata:
          $ref: '#/components/schemas/LayerMetadata'
        name:
          description: The display name for the new layer.
          type: string
        zoom:
          description: (Image uploads only) The zoom level of the image.
          type: number
      required:
      - name
      title: UploadLayerParams
      type: object
    SourceCreateConnectionParams-MicrosoftSQL:
      additionalProperties: false
      properties:
        database:
          description: MSSQL database name
          type: string
        host:
          description: MSSQL host
          type: string
        password:
          description: MSSQL password
          type: string
        port:
          description: MSSQL port
          nullable: true
          type: integer
        type:
          enum:
          - mssql
          type: string
        user:
          description: MSSQL user name
          type: string
      required:
      - type
      - host
      - database
      - user
      - password
      title: SourceCreateConnectionParams-MicrosoftSQL
      type: object
    ExportLink:
      additionalProperties: false
      properties:
        export_link:
          nullable: false
          type: string
      required:
      - export_link
      title: ExportLink
      type: object
    Map:
      additionalProperties: false
      properties:
        basemap:
          type: string
        created_at:
          example: '2024-05-25T15:51:34'
          format: date_time
          type: string
        element_groups:
          items:
            properties:
              elements:
                $ref: '#/components/schemas/GeoJSON'
              id:
                $ref: '#/components/schemas/FeltID'
              name:
                nullable: true
                type: string
            type: object
          type: array
        elements:
          $ref: '#/components/schemas/GeoJSON'
        folder_id:
          nullable: true
          type: string
        id:
          $ref: '#/components/schemas/FeltID'
        layer_groups:
          items:
            $ref: '#/components/schemas/LayerGroup'
          type: array
        layers:
          items:
            $ref: '#/components/schemas/Layer'
          type: array
        links:
          properties:
            self:
              example: https://felt.com/api/v2/maps/V0dnOMOuTd9B9BOsL9C0UjmqC
              type: string
          type: object
        project_id:
          nullable: false
          type: string
        public_access:
          enum:
          - private
          - view_only
          - view_and_comment
          - view_comment_and_edit
          type: string
        table_settings:
          $ref: '#/components/schemas/MapTableSettings'
        thumbnail_url:
          description: A static thumbnail image of the map
          nullable: true
          type: string
        title:
          type: string
        type:
          enum:
          - map
          type: string
        url:
          type: string
        viewer_permissions:
          $ref: '#/components/schemas/MapViewerPermissions'
        visited_at:
          format: date_time
          nullable: true
          type: string
      required:
      - id
      - type
      - url
      - title
      - thumbnail_url
      - created_at
      - visited_at
      - layers
      - layer_groups
      - elements
      - element_groups
      - project_id
      - public_access
      title: Map
      type: object
    LayerList:
      items:
        $ref: '#/components/schemas/Layer'
      title: LayerList
      type: array
    SourceCredential-GcpServiceAccountJson:
      additionalProperties: false
      properties:
        service_account_filename:
          type: string
        service_account_json:
          oneOf:
          - type: object
          - type: string
        type:
          enum:
          - gcp_service_account_json
          type: string
      required:
      - type
      - service_account_filename
      - service_account_json
      title: SourceCredential-GcpServiceAccountJson
      type: object
    DuplicateLayersParams:
      items:
        oneOf:
        - properties:
            destination_map_id:
              $ref: '#/components/schemas/FeltID'
            source_layer_id:
              $ref: '#/components/schemas/FeltID'
          required:
          - source_layer_id
          - destination_map_id
          title: DuplicateLayersParams-Layer
          type: object
        - properties:
            destination_map_id:
              $ref: '#/components/schemas/FeltID'
            source_layer_group_id:
              $ref: '#/components/schemas/FeltID'
          required:
          - source_layer_group_id
          - destination_map_id
          title: DuplicateLayersParams-LayerGroup
          type: object
      title: DuplicateLayersParams
      type: array
    ProjectReferenceList:
      items:
        $ref: '#/components/schemas/ProjectReference'
      title: ProjectReferenceList
      type: array
    UploadInterpretationHint-AttributeHint-H3:
      description: A hint that the data contains H3 attribute.
      properties:
        attribute:
          properties:
            h3:
              type: string
          required:
          - h3
          type: object
      required:
      - attribute
      title: UploadInterpretationHint-AttributeHint-H3
      type: object
    SourceUpdateConnectionParams-ABS:
      additionalProperties: false
      properties:
        blob_storage_url:
          description: ABS blob storage URL
          type: string
        type:
          enum:
          - abs_bucket
          type: string
      required:
      - type
      title: SourceUpdateConnectionParams-ABS
      type: object
    MapMoveParams:
      oneOf:
      - properties:
          project_id:
            $ref: '#/components/schemas/FeltID'
        required:
        - project_id
        title: MoveMapProjectParams
        type: object
      - properties:
          folder_id:
            $ref: '#/components/schemas/FeltID'
        required:
        - folder_id
        title: MoveMapFolderParams
        type: object
      title: MapMoveParams
      type: object
    LayerGroupList:
      items:
        $ref: '#/components/schemas/LayerGroup'
      title: LayerGroupList
      type: array
    AddSourceLayer-STAC-Params:
      properties:
        from:
          enum:
          - stac
          type: string
        source_id:
          $ref: '#/components/schemas/FeltID'
        stac_asset_url:
          type: string
      required:
      - from
      - source_id
      - stac_asset_url
      title: AddSourceLayer-STAC-Params
      type: object
    SourceUpdateConnectionParams-STAC:
      additionalProperties: false
      description: SpatioTemporal Asset Catalogs
      properties:
        token:
          description: STAC token
          nullable: true
          type: string
        type:
          enum:
          - stac
          type: string
        url:
          description: STAC server / asset URL
          type: string
      required:
      - type
      title: SourceUpdateConnectionParams-STAC
      type: object
    UploadInterpretationHint-AttributeHint-Locality:
      description: A hint that the data contains a Locality spread out over multiple
        attributes.
      properties:
        attributes:
          additionalProperties: false
          properties:
            country:
              description: 'ex: USA'
              type: string
            locality:
              description: 'ex: Oakland'
              type: string
            region:
              description: 'ex: California'
              type: string
          required:
          - locality
          type: object
      required:
      - attributes
      title: UploadInterpretationHint-AttributeHint-Locality
      type: object
    LayerLibrary:
      properties:
        layer_groups:
          items:
            $ref: '#/components/schemas/LayerGroup'
          type: array
        layers:
          items:
            $ref: '#/components/schemas/Layer'
          type: array
        type:
          enum:
          - layer_library
          type: string
      required:
      - type
      - layers
      - layer_groups
      title: LayerLibrary
      type: object
    LayerGroup:
      additionalProperties: false
      properties:
        caption:
          nullable: true
          type: string
        id:
          $ref: '#/components/schemas/FeltID'
        layers:
          items:
            $ref: '#/components/schemas/Layer'
          type: array
        legend_visibility:
          description: Controls how the layer group is displayed in the legend. Defaults
            to "show".
          enum:
          - hide
          - show
          nullable: true
          type: string
        links:
          properties:
            self:
              example: https://felt.com/api/v2/maps/V0dnOMOuTd9B9BOsL9C0UjmqC/layer_groups/v13k4Ae9BRjCHHdPP5Fcm6D
              type: string
          type: object
        name:
          nullable: false
          type: string
        ordering_key:
          description: A sort order key used for ordering layers and layer groups
            in the legend
          nullable: false
          type: integer
        subtitle:
          deprecated: true
          description: 'Deprecated: use `caption` instead.'
          nullable: true
          type: string
        type:
          enum:
          - layer_group
          type: string
        visibility_interaction:
          description: Controls how the layer group is displayed in the legend. Defaults
            to `"default"`.
          enum:
          - default
          - slider
          - select
          - multi_select
          nullable: false
          type: string
      required:
      - id
      - type
      - name
      - caption
      - visibility_interaction
      - layers
      title: LayerGroup
      type: object
    MapCreateParams:
      additionalProperties: false
      properties:
        basemap:
          description: 'The basemap to use for the new map. Defaults to "default".
            Valid values are "default", "light", "dark", "satellite", a valid raster
            tile URL with {x}, {y}, and {z} parameters, or a hex color string like
            #ff0000.'
          type: string
        description:
          description: A description to display in the map legend
          type: string
        lat:
          description: If no data has been uploaded to the map, the initial latitude
            to center the map display on.
          type: number
        layer_urls:
          description: An array of urls to use to create layers in the map. Only tile
            URLs for raster layers are supported at the moment.
          items:
            type: string
          type: array
        lon:
          description: If no data has been uploaded to the map, the initial longitude
            to center the map display on.
          type: number
        public_access:
          description: The level of access to grant to the map. Defaults to "view_only".
          enum:
          - private
          - view_only
          - view_and_comment
          - view_comment_and_edit
          type: string
        title:
          description: The title to be used for the map. Defaults to "Untitled Map"
          type: string
        workspace_id:
          description: The workspace to create the map in. Defaults to the latest
            used workspace
          type: string
        zoom:
          description: If no data has been uploaded to the map, the initial zoom level
            for the map to display.
          type: number
      title: MapCreateParams
      type: object
    SourceConnection-Microsoft-SQL:
      additionalProperties: false
      properties:
        database:
          type: string
        host:
          type: string
        port:
          nullable: true
          type: integer
        type:
          enum:
          - mssql
          type: string
        user:
          type: string
      title: SourceConnection-Microsoft-SQL
      type: object
    SourceCredentialUpdate-GcpServiceAccountJson:
      additionalProperties: false
      properties:
        service_account_filename:
          type: string
        service_account_json:
          oneOf:
          - type: object
          - type: string
        type:
          enum:
          - gcp_service_account_json
          type: string
      required:
      - type
      title: SourceCredentialUpdate-GcpServiceAccountJson
      type: object
    SourceConnection-Google-BigQuery:
      additionalProperties: false
      properties:
        dataset:
          description: BigQuery dataset to index. If omitted all datasets will be
            indexed
          nullable: true
          type: string
        project:
          description: BigQuery project to index
          type: string
        type:
          enum:
          - bigquery
          type: string
      title: SourceConnection-Google-BigQuery
      type: object
    SourceCreateConnectionParams-Snowflake:
      additionalProperties: false
      properties:
        account_id:
          description: Snowflake account ID
          type: string
        credentials:
          items:
            properties:
              credential:
                oneOf:
                - $ref: '#/components/schemas/SourceCredential-KeyPair'
                - $ref: '#/components/schemas/SourceCredential-SnowflakePAT'
                type: object
              name:
                type: string
              use_case:
                enum:
                - source_authentication
                type: string
            required:
            - credential
            - use_case
            - name
            type: object
          maxItems: 1
          type: array
        database:
          description: Snowflake database name
          type: string
        password:
          description: Snowflake password
          type: string
        role:
          description: Snowflake role
          nullable: true
          type: string
        schema:
          description: Snowflake database schema
          nullable: true
          type: string
        type:
          enum:
          - snowflake
          type: string
        user:
          description: Snowflake user name
          type: string
        warehouse:
          description: Snowflake warehouse
          nullable: true
          type: string
      required:
      - type
      - database
      - account_id
      - user
      title: SourceCreateConnectionParams-Snowflake
      type: object
    MoveMapProjectParams:
      properties:
        project_id:
          $ref: '#/components/schemas/FeltID'
      required:
      - project_id
      title: MoveMapProjectParams
      type: object
    SourceUpdateConnectionParams:
      oneOf:
      - additionalProperties: false
        properties:
          blob_storage_url:
            description: ABS blob storage URL
            type: string
          type:
            enum:
            - abs_bucket
            type: string
        required:
        - type
        title: SourceUpdateConnectionParams-ABS
        type: object
      - additionalProperties: false
        properties:
          base64_encoded_service_account:
            description: BigQuery credentials - Base 64 encoded Service account JSON
            nullable: true
            type: string
          dataset:
            description: BigQuery dataset
            nullable: true
            type: string
          project:
            description: BigQuery project
            type: string
          type:
            enum:
            - bigquery
            type: string
        required:
        - type
        title: SourceUpdateConnectionParams-GoogleBigQuery
        type: object
      - additionalProperties: false
        properties:
          catalog:
            description: Databricks catalog
            nullable: true
            type: string
          http_path:
            description: Databricks server HTTP path
            type: string
          schema:
            description: Databricks schema
            nullable: true
            type: string
          server_hostname:
            description: Databricks server hostname
            type: string
          type:
            enum:
            - databricks
            type: string
        required:
        - type
        title: SourceUpdateConnectionParams-Databricks
        type: object
      - additionalProperties: false
        properties:
          token:
            description: Feature Server token
            nullable: true
            type: string
          type:
            enum:
            - feature_server
            type: string
          url:
            description: Feature Server URL
            type: string
        required:
        - type
        title: SourceUpdateConnectionParams-ESRIFeatureServer
        type: object
      - additionalProperties: false
        properties:
          gs_uri:
            description: GCS URI
            type: string
          type:
            enum:
            - gcs_bucket
            type: string
        required:
        - type
        title: SourceUpdateConnectionParams-GCS
        type: object
      - additionalProperties: false
        properties:
          database:
            description: MSSQL database name
            type: string
          host:
            description: MSSQL host
            type: string
          password:
            description: MSSQL password
            type: string
          port:
            description: MSSQL port
            nullable: true
            type: integer
          type:
            enum:
            - mssql
            type: string
          user:
            description: MSSQL user name
            type: string
        required:
        - type
        title: SourceUpdateConnectionParams-MicrosoftSQL
        type: object
      - additionalProperties: false
        description: Postgres / PostGIS
        properties:
          database:
            description: Postgres database name
            type: string
          host:
            description: Postgres host
            type: string
          password:
            description: Postgres password
            type: string
          port:
            description: Postgres port
            nullable: true
            type: integer
          schema:
            description: Postgres schema
            type: string
          type:
            enum:
            - postgresql
            type: string
          user:
            description: Postgres user name
            type: string
        required:
        - type
        title: SourceUpdateConnectionParams-Postgres
        type: object
      - additionalProperties: false
        properties:
          database:
            description: Redshift database name
            type: string
          host:
            description: Redshift host
            type: string
          password:
            description: Redshift password
            type: string
          port:
            description: Redshift port
            nullable: true
            type: integer
          type:
            enum:
            - redshift
            type: string
          user:
            description: Redshift user name
            type: string
        required:
        - type
        title: SourceUpdateConnectionParams-AmazonRedshift
        type: object
      - additionalProperties: false
        properties:
          s3_uri:
            description: S3 URI
            type: string
          type:
            enum:
            - s3_bucket
            type: string
        required:
        - type
        title: SourceUpdateConnectionParams-S3
        type: object
      - additionalProperties: false
        properties:
          account_id:
            description: Snowflake account ID
            type: string
          database:
            description: Snowflake database name
            type: string
          password:
            description: Snowflake password
            type: string
          role:
            description: Snowflake role
            nullable: true
            type: string
          schema:
            description: Snowflake database schema
            nullable: true
            type: string
          type:
            enum:
            - snowflake
            type: string
          user:
            description: Snowflake user name
            type: string
          warehouse:
            description: Snowflake warehouse
            nullable: true
            type: string
        required:
        - type
        title: SourceUpdateConnectionParams-Snowflake
        type: object
      - additionalProperties: false
        description: SpatioTemporal Asset Catalogs
        properties:
          token:
            description: STAC token
            nullable: true
            type: string
          type:
            enum:
            - stac
            type: string
          url:
            description: STAC server / asset URL
            type: string
        required:
        - type
        title: SourceUpdateConnectionParams-STAC
        type: object
      - additionalProperties: false
        description: Web Feature Server
        properties:
          type:
            enum:
            - wfs
            type: string
          url:
            description: WFS URL
            type: string
        required:
        - type
        title: SourceUpdateConnectionParams-WFS
        type: object
      - additionalProperties: false
        description: Web Map Service / Web Map Tile Service
        properties:
          type:
            enum:
            - wms_wmts
            type: string
          url:
            description: WMS/WMTS URL
            type: string
        required:
        - type
        title: SourceUpdateConnectionParams-WMS-WMTS
        type: object
      title: SourceUpdateConnectionParams
    SourceCreateConnectionParams-Postgres:
      additionalProperties: false
      description: Postgres / PostGIS
      properties:
        database:
          description: Postgres database name
          type: string
        host:
          description: Postgres host
          type: string
        password:
          description: Postgres password
          type: string
        port:
          description: Postgres port
          nullable: true
          type: integer
        schema:
          description: Postgres schema
          type: string
        type:
          enum:
          - postgresql
          type: string
        user:
          description: Postgres user name
          type: string
      required:
      - type
      - host
      - database
      - user
      - password
      title: SourceCreateConnectionParams-Postgres
      type: object
    UploadInterpretationHint-AttributeHint-European_Union_NUTS_1_2021:
      description: A hint that the data contains a Eurostat NUTS Level 1 (2021) attribute.
        https://ec.europa.eu/eurostat/web/gisco/geodata/statistical-units/territorial-units-statistics
      properties:
        attribute:
          properties:
            eu_nuts_1_2021:
              type: string
          required:
          - eu_nuts_1_2021
          type: object
      required:
      - attribute
      title: UploadInterpretationHint-AttributeHint-European_Union_NUTS_1_2021
      type: object
    CustomExportResponse:
      additionalProperties: false
      properties:
        export_request_id:
          $ref: '#/components/schemas/FeltID'
        poll_endpoint:
          example: http://felt.com/api/v2/maps/vAbZ5eKqRoGe4sCH8nHW8D/layers/7kF9Cfz45TUWIiuuWV8uZ7A/custom_exports/auFxn9BO4RrGGiKrGfaS7ZB
          nullable: false
          type: string
      required:
      - export_request_id
      - poll_endpoint
      title: CustomExportResponse
      type: object
    LayerUpdateParamsList:
      items:
        $ref: '#/components/schemas/LayerUpdateParams'
      title: LayerUpdateParamsList
      type: array
    SourceCredential-DatabricksPAT:
      additionalProperties: false
      description: Authenticate to Databricks using a Personal Access Token (PAT)
      properties:
        token:
          type: string
        type:
          enum:
          - databricks_pat
          type: string
      required:
      - type
      - token
      title: SourceCredential-DatabricksPAT
      type: object
    SourceUpdateConnectionParams-WFS:
      additionalProperties: false
      description: Web Feature Server
      properties:
        type:
          enum:
          - wfs
          type: string
        url:
          description: WFS URL
          type: string
      required:
      - type
      title: SourceUpdateConnectionParams-WFS
      type: object
    DuplicateLayersParams-LayerGroup:
      properties:
        destination_map_id:
          $ref: '#/components/schemas/FeltID'
        source_layer_group_id:
          $ref: '#/components/schemas/FeltID'
      required:
      - source_layer_group_id
      - destination_map_id
      title: DuplicateLayersParams-LayerGroup
      type: object
    SourceConnection-Amazon-Redshift:
      additionalProperties: false
      properties:
        database:
          type: string
        host:
          type: string
        port:
          nullable: true
          type: integer
        type:
          enum:
          - redshift
          type: string
        user:
          type: string
      title: SourceConnection-Amazon-Redshift
      type: object
    EmbedToken:
      properties:
        expires_at:
          example: '2024-05-25T15:51:34'
          format: date_time
          type: string
        token:
          type: string
      title: EmbedToken
      type: object
    UnauthorizedError:
      properties:
        errors:
          items:
            properties:
              detail:
                type: string
              source:
                properties:
                  header:
                    enum:
                    - authorization
                    type: string
                type: object
              title:
           

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