FactSet Analytics Datastore API

Request pre-calculated Portfolio Analytics data saved in FactSet's Analytics Datastore, via deterministic URLs.

OpenAPI Specification

analytics-datastore-openapi-original.yml Raw ↑
openapi: 3.0.3
info:
  title: Factset Analytics Datastore API
  description: >-
    Allow clients to fetch precalculated Analytics through predeterministic
    URLs.
  contact:
    name: FactSet Research Systems
    url: https://developer.factset.com/contact
    email: [email protected]
  license:
    name: Apache License, Version 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: 1.0.0
externalDocs:
  url: https://developer.factset.com/api-catalog/analytics-datastore-api
  description: API Documentation
servers:
  - url: https://api.factset.com
    description: Production
  - url: https://api-sandbox.factset.com
    description: Sandbox
security:
  - basicAuth: []
tags:
  - name: Analytics
paths:
  /analytics/pub-datastore/swivel/v1/{document}/{accountId}/{date}:
    get:
      tags:
        - Analytics
      summary: Factset Redirects to the raw PPT/PDF output created by the Publisher service.
      description: "Takes report parameter inputs and returns the object location for the specified report via a 302 redirect.\r\n\r\nNote: Due to Swagger UI functionality, the redirect is automatically followed when using 'Try it out', so instead of the 302 Header response, a 200 is returned with the Cargo response Body."
      operationId: getPdfPptMapping
      parameters:
        - name: document
          in: path
          description: The Publisher document containing the report
          required: true
          schema:
            type: string
          example: Analytics_Datastore
        - name: accountId
          in: path
          description: The account ID
          required: true
          schema:
            type: string
          example: LARGE_CORE
        - name: date
          in: path
          description: The as of date for the report
          required: true
          schema:
            type: string
            format: date
          example: '2023-01-01'
      responses:
        '302':
          description: Expected response, contains the Cargo URL in the Location header.
          headers:
            Location:
              description: "Redirect URL to get Cargo object. \r\n\n(example: https://api.factset.com/analytics/datastore/cargo/v1/groups/a4186c50f8e74f979d271dd22298c901/objects/fe875bc4150542dea6bc237663a01a0d)"
              schema:
                type: string
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '400':
          description: Invalid parameter provided.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '401':
          description: Missing or invalid authentication.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '403':
          description: User is forbidden with current credentials
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '404':
          description: The provided request does not exist.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '500':
          description: >-
            Server error. Log the X-DataDirect-Request-Key header to assist in
            troubleshooting
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '503':
          description: Request timed out. Retry the request in sometime.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
  /analytics/pub-datastore/swivel/v1/{document}/{assetName}/{reportId}/{tileId}/{accountId}:
    get:
      tags:
        - Analytics
      summary: >-
        Factset Redirects to the underlying PA/SPAR data represented in a Stach format, with no as of date specified.
      description: "Takes report parameter inputs and returns the object location for the specified report via a 302 redirect.\r\n\r\nNote: Due to Swagger UI functionality, the redirect is automatically followed when using 'Try it out', so instead of the 302 Header response, a 200 is returned with the Cargo response Body."
      operationId: getStachMappingNoDate
      parameters:
        - name: document
          in: path
          description: The Publisher or Analytics Datafeed document containing the report
          required: true
          schema:
            type: string
          example: Analytics_Datastore
        - name: assetName
          in: path
          description: The PA/SPAR asset name and extension
          required: true
          schema:
            type: string
          example: ADS_Demo.PA3
        - name: reportId
          in: path
          description: The PA/SPAR report ID
          required: true
          schema:
            type: string
          example: report7
        - name: tileId
          in: path
          description: The PA/SPAR tile ID
          required: true
          schema:
            type: string
          example: tile0
        - name: accountId
          in: path
          description: The account ID
          required: true
          schema:
            type: string
          example: LARGE_CORE
      responses:
        '302':
          description: Expected response, contains the Cargo URL in the Location header.
          headers:
            Location:
              description: "Redirect URL to get Cargo object. \r\n\n(example: https://api.factset.com/analytics/datastore/cargo/v1/groups/a4186c50f8e74f979d271dd22298c901/objects/fe875bc4150542dea6bc237663a01a0d)"
              schema:
                type: string
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '400':
          description: Invalid parameter provided.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '401':
          description: Missing or invalid authentication.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '403':
          description: User is forbidden with current credentials
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '404':
          description: The provided request does not exist.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '500':
          description: >-
            Server error. Log the X-DataDirect-Request-Key header to assist in
            troubleshooting
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '503':
          description: Request timed out. Retry the request in sometime.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
  /analytics/pub-datastore/swivel/v1/{document}/{assetName}/{reportId}/{tileId}/{accountId}/{date}:
    get:
      tags:
        - Analytics
      summary: Factset Redirects to the underlying PA/SPAR data represented in a Stach format.
      description: "Takes report parameter inputs and returns the object location for the specified report via a 302 redirect.\r\n\r\nNote: Due to Swagger UI functionality, the redirect is automatically followed when using 'Try it out', so instead of the 302 Header response, a 200 is returned with the Cargo response Body."
      operationId: getStachMapping
      parameters:
        - name: document
          in: path
          description: The Publisher or Analytics Datafeed document containing the report
          required: true
          schema:
            type: string
          example: Analytics_Datastore
        - name: assetName
          in: path
          description: The PA/SPAR asset name and extension
          required: true
          schema:
            type: string
          example: ADS_Demo.PA3
        - name: reportId
          in: path
          description: The PA/SPAR report ID
          required: true
          schema:
            type: string
          example: report7
        - name: tileId
          in: path
          description: The PA/SPAR tile ID
          required: true
          schema:
            type: string
          example: tile0
        - name: accountId
          in: path
          description: The account ID
          required: true
          schema:
            type: string
          example: LARGE_CORE
        - name: date
          in: path
          description: The as of date for the report
          required: true
          schema:
            type: string
            format: date
          example: '2023-01-01'
      responses:
        '302':
          description: Expected response, contains the Cargo URL in the Location header.
          headers:
            Location:
              description: "Redirect URL to get Cargo object. \r\n\n(example: https://api.factset.com/analytics/datastore/cargo/v1/groups/a4186c50f8e74f979d271dd22298c901/objects/fe875bc4150542dea6bc237663a01a0d)"
              schema:
                type: string
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '400':
          description: Invalid parameter provided.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '401':
          description: Missing or invalid authentication.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '403':
          description: User is forbidden with current credentials
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '404':
          description: The provided request does not exist.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '500':
          description: >-
            Server error. Log the X-DataDirect-Request-Key header to assist in
            troubleshooting
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '503':
          description: Request timed out. Retry the request in sometime.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
  /analytics/pub-datastore/swivel/v1/{document}/{assetName}/{reportId}/{tileId}/{accountId}/{configId}/{date}:
    get:
      tags:
        - Analytics
      summary: Factset Redirects to the underlying Insight/Vault data in a Stach format.
      description: "The inclusion of a configId in the path indicates this is for Insight/Vault mappings only, as PA/SPAR mappings do not support the concept of configuration id.\r\n\r\nTakes report parameter inputs and returns the object location for the specified report via a 302 redirect.\r\n\r\nNote: Due to Swagger UI functionality, the redirect is automatically followed when using 'Try it out', so instead of the 302 Header response, a 200 is returned with the Cargo response Body."
      operationId: getInsightMapping
      parameters:
        - name: document
          in: path
          description: The Analytics Datafeed document containing the report
          required: true
          schema:
            type: string
          example: Analytics_Datastore
        - name: assetName
          in: path
          description: The PA/SPAR asset name and extension
          required: true
          schema:
            type: string
          example: ADS_Demo.PA3
        - name: reportId
          in: path
          description: The PA/SPAR report ID
          required: true
          schema:
            type: string
          example: report7
        - name: tileId
          in: path
          description: The PA/SPAR tile ID
          required: true
          schema:
            type: string
          example: tile0
        - name: accountId
          in: path
          description: The account ID
          required: true
          schema:
            type: string
          example: LARGE_CORE
        - name: configId
          in: path
          description: The Vault configuration ID
          required: true
          schema:
            type: string
          example: acb5150d-4333-49e7-8e33-4f7fa749691e
        - name: date
          in: path
          description: The as of date for the report
          required: true
          schema:
            type: string
            format: date
          example: '2023-01-01'
      responses:
        '302':
          description: Expected response, contains the Cargo URL in the Location header.
          headers:
            Location:
              description: "Redirect URL to get Cargo object. \r\n\n(example: https://api.factset.com/analytics/datastore/cargo/v1/groups/a4186c50f8e74f979d271dd22298c901/objects/fe875bc4150542dea6bc237663a01a0d)"
              schema:
                type: string
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '400':
          description: Invalid parameter provided.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '401':
          description: Missing or invalid authentication.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '403':
          description: User is forbidden with current credentials
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '404':
          description: The provided request does not exist.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '500':
          description: >-
            Server error. Log the X-DataDirect-Request-Key header to assist in
            troubleshooting
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '503':
          description: Request timed out. Retry the request in sometime.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
  /analytics/pub-datastore/cargo/v1/groups/{groupId}/objects/{objectId}:
    get:
      tags:
        - Analytics
      summary: >-
        Factset Gets an object given an ID. In this case ID retrieved from mapping Location header, object data in response body.
      description: "Raw object data can be found in the response body. This can be either the mapped PDF/PPT or STACH json, depending on the mapping. https://pages.github.factset.com/analytics-reporting/stachschema/#/ \r\n\nOptional request header \"accept-encoding\", with allowed values of \"br\" and \"gzip\". If accept-encoding is passed, the response is compressed."
      operationId: getCargoEndpoint
      parameters:
        - name: groupId
          in: path
          description: The ID of the group
          required: true
          schema:
            type: string
          example: a4186c50f8e74f979d271dd22298c901
        - name: objectId
          in: path
          description: The ID of the object
          required: true
          schema:
            type: string
          example: fe875bc4150542dea6bc237663a01a0d
      responses:
        '200':
          description: Expected response, returns json response body of the report.
          headers:
            Transfer-Encoding:
              description: >-
                Standard HTTP header. Header value will be set to Chunked if
                Accept-Encoding header is specified.
              schema:
                type: string
            Content-Encoding:
              description: >-
                Standard HTTP header. Header value based on Accept-Encoding
                Request header.
              schema:
                type: string
            Content-Type:
              description: Standard HTTP header.
              schema:
                type: string
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '400':
          description: Invalid parameter provided.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '401':
          description: Missing or invalid authentication.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '403':
          description: User is forbidden with current credentials
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '404':
          description: The provided request does not exist.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '500':
          description: >-
            Server error. Log the X-DataDirect-Request-Key header to assist in
            troubleshooting
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '503':
          description: Request timed out. Retry the request in sometime.
          headers:
            X-RateLimit-Remaining:
              description: Number of requests left for the time window.
              schema:
                type: string
            X-FactSet-Api-Request-Key:
              description: >-
                Key to uniquely identify an Analytics API request. Only
                available after successful authentication.
              schema:
                type: string
            X-RateLimit-Reset:
              description: Number of seconds remaining till rate limit resets.
              schema:
                type: string
            X-RateLimit-Limit:
              description: Number of allowed requests for the time window.
              schema:
                type: string
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
  /analytics/pub-datastore/tag-search/v1/documents/search:
    post:
      tags:
        - Analytics
      summary: Factset Gets a list of Documents that a user has access to.
      description: "Retrieves metadata around documents stored in the Analytics Datastore Service. Each Document will have a 'url' property which will act as a re-direct to the underlying document data\r\n\r\nThis end point supports pagination and filtering through the use of the request body listed below.\r\n\r\nTo discover what tags are available to filter on, see GET /tags and GET /tags/{name}/values to retrieve these filter values.\r\n\r\nSimilarly, to discover what product types are available to filter on, see POST /product-types/search to retrieve a list of product types."
      operationId: getDocumentsEndPoint
      requestBody:
        description: Example request of a filtered Documents search call
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DocumentRequest'
      responses:
        '200':
          description: Expected response, a list of documents the user has access to.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentListResponse'
        '400':
          description: Invalid parameter provided.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '401':
          description: Missing or invalid authentication.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '403':
          description: User is forbidden with current credentials
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '404':
          description: The provided request does not exist.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '500':
          description: >-
            Server error. Log the X-DataDirect-Request-Key header to assist in
            troubleshooting
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '503':
          description: Request timed out. Retry the request in sometime.
          headers:
            X-RateLimit-Remaining:
              description: Number of requests left for the time window.
              schema:
                type: string
            X-FactSet-Api-Request-Key:
              description: >-
                Key to uniquely identify an Analytics API request. Only
                available after successful authentication.
              schema:
                type: string
            X-RateLimit-Reset:
              description: Number of seconds remaining till rate limit resets.
              schema:
                type: string
            X-RateLimit-Limit:
              description: Number of allowed requests for the time window.
              schema:
                type: string
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
  /analytics/pub-datastore/tag-search/v1/tags:
    get:
      tags:
        - Analytics
      summary: Factset Gets a list of tag definitions for the user.
      description: >-
        Tag definitions consist of a name and a type. Use this end point to see
        a list of pre-existing tags that can be used to filter on the Documents
        end point.
      operationId: getTagsEndPoint
      parameters:
        - name: _paginationOffset
          in: query
          description: The offset integer on where to begin paginating
          schema:
            type: integer
            default: 0
        - name: _paginationLimit
          in: query
          description: The limit of records to return when paginating
          schema:
            maximum: 1000
            minimum: 1
            type: integer
            default: 50
      responses:
        '200':
          description: >-
            Expected response, returns a list of tag definitions the user has
            access to.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagListResponse'
        '400':
          description: Invalid parameter provided.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '401':
          description: Missing or invalid authentication.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '403':
          description: User is forbidden with current credentials
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '404':
          description: The provided request does not exist.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '500':
          description: >-
            Server error. Log the X-DataDirect-Request-Key header to assist in
            troubleshooting
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '503':
          description: Request timed out. Retry the request in sometime.
          headers:
            X-RateLimit-Remaining:
              description: Number of requests left for the time window.
              schema:
                type: string
            X-FactSet-Api-Request-Key:
              description: >-
                Key to uniquely identify an Analytics API request. Only
                available after successful authentication.
              schema:
                type: string
            X-RateLimit-Reset:
              description: Number of seconds remaining till rate limit resets.
              schema:
                type: string
            X-RateLimit-Limit:
              description: Number of allowed requests for the time window.
              schema:
                type: string
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
  /analytics/pub-datastore/tag-search/v1/tags/{name}:
    get:
      tags:
        - Analytics
      summary: Factset Get a single tag definition based on its name
      description: Retrieve a tag definition based on its name
      operationId: getSingleTagEndPoint
      parameters:
        - name: name
          in: path
          description: The name of the tag
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Expected response, returns the tag requested
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagResponse'
        '400':
          description: Invalid parameter provided.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '401':
          description: Missing or invalid authentication.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '403':
          description: User is forbidden with current credentials
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '404':
          description: The provided request does not exist.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '500':
          description: >-
            Server error. Log the X-DataDirect-Request-Key header to assist in
            troubleshooting
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '503':
          description: Request timed out. Retry the request in sometime.
          headers:
            X-RateLimit-Remaining:
              description: Number of requests left for the time window.
              schema:
                type: string
            X-FactSet-Api-Request-Key:
              description: >-
                Key to uniquely identify an Analytics API request. Only
                available after successful authentication.
              schema:
                type: string
            X-RateLimit-Reset:
              description: Number of seconds remaining till rate limit resets.
              schema:
                type: string
            X-RateLimit-Limit:
              description: Number of allowed requests for the time window.
              schema:
                type: string
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
  /analytics/pub-datastore/tag-search/v1/tags/{name}/values:
    post:
      tags:
        - Analytics
      summary: Factset Gets a list of tag values for the given name
      description: >-
        Returns a list of tag values depending on the name provided. Supports
        filtering on additional tag name value pairs, which operates as an 'AND'
        where the Document must have the tag name specified in the path AND the
        filtered parameter.
      operationId: getTagValuesEndPoint
      parameters:
        - name: name
          in: path
          description: The name of the tag
          required: true
          schema:
            type: string
      requestBody:
        description: >-
          Request body to apply when filtering on this end point. Pagination
          controls are applied through the pagination object and additional tag
          filters can be used by supplying the tag name and its value in the
          tags object.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TagFilterModel'
      responses:
        '200':
          description: >-
            Expected response, returns a list of tag definitions the user has
            access to.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagValuesListResponse'
        '400':
          description: Invalid parameter provided.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '401':
          description: Missing or invalid authentication.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '403':
          description: User is forbidden with current credentials
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '404':
          description: The provided request does not exist.
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
              schema:
                type: string
        '500':
          description: >-
            Server error. Log the X-DataDirect-Request-Key header to assist in
            troubleshooting
          headers:
            X-DataDirect-Request-Key:
              description: FactSet’s request key header.
        

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/factset/refs/heads/main/openapi/analytics-datastore-openapi-original.yml