FactSet Chart Generation Service

An API for getting chart images in the form of png or jpg based on various parameters like ticker, benchmark, currency, frequency, start and end date etc.

OpenAPI Specification

chart-generation-service-openapi-original.yml Raw ↑
openapi: 3.0.1
info:
  title: Factset Chart Generation Service
  description: >-
    This is a service for generating charts in a node environment that were
    created using web charting and get back images in form of `PNGs` and `JPEGs`
    as response.
  version: 1.0.0
servers:
  - url: https://api-sandbox.factset.com/charting
    description: sandbox server (uses dummy data)
  - url: https://api.factset.com/charting
    description: production server (uses live data)
paths:
  /v1/catalog/categories:
    get:
      tags:
        - Catalog
      summary: Factset Get a list of chart categories
      operationId: getCategoryList
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryListResponse'
        '400':
          description: Bad Input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoriesErrorResponse'
  /v1/catalog/charts:
    get:
      tags:
        - Catalog
      summary: >-
        Factset Get a list of chart templates that can be used for getting the image from the service.
      description: >-
        You can get all the charts present or can just get the information by
        categories. The response includes the name of the chart, description,
        tags and any additional input specific to that chart. Use the
        information from this response to determine what charts you want and get
        its image from /images endpoint. Additionally you can also get back a
        auto generated PDF for the categories you requested for.
      operationId: getChartList
      parameters:
        - in: query
          name: categories
          required: false
          description: >-
            A comma delimited string of catgory names to limit the response to
            certain categories. If nothing is provided, all charts under every
            category would be listed out.
          schema:
            type: string
        - in: query
          name: type
          description: return type of the response
          required: false
          schema:
            type: string
            enum:
              - json
              - pdf
          example: json
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategorizedChartList'
            application/pdf:
              schema:
                $ref: '#/components/schemas/CatalogPDF'
        '400':
          description: Bad Input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChartListErrorResponse'
  /v1/image:
    get:
      tags:
        - Image
      summary: Factset Get chart image back in PNG or JPEG formats
      operationId: Images
      parameters:
        - in: query
          name: chart
          required: true
          description: >-
            Path to the saved chart. For any of the default charts, the option
            should be `categoryName + '/' + chartName`. For charts under the
            Client or Personal directories, the option should be `directoryName
            + ':/' + pathTotheChart`.  
          schema:
            type: string
            example: Equity/RSI
        - in: query
          name: ids
          required: false
          description: >-
            List of identifiers to be charted in a comma(,) separated string.
            Only the first one would be considered as primary and rest would be
            added as comps. Check the catalog for more information on which
            charts require a ticker.
          schema:
            type: string
            example: FDS,AAPL
        - in: query
          name: sd
          required: false
          description: >-
            Option for overriding the startDate of the chart. For absolute dates
            provide a string in `YYYYMMDD` format. We can also specify relative
            date options
          schema:
            type: string
            example: '-1Y'
        - in: query
          name: ed
          required: false
          description: >-
            Option for overriding the endDate of the chart. For absolute dates
            provide a string in `YYYYMMDD` format. We can also specify relative
            date options
          schema:
            type: string
            example: '0'
        - in: query
          name: width
          required: false
          description: Option for setting the width of the image
          schema:
            type: integer
            format: int64
            default: 1056
            example: 600
        - in: query
          name: height
          required: false
          description: Option for setting the height of the image
          schema:
            type: integer
            format: int64
            default: 816
            example: 500
        - in: query
          name: freq
          required: false
          description: >-
            A shorthand string for the overall frequency of the chart like `D`
            (daily), `W` (weekly), `Y` (yearly) and `Q` (Quarterly). This will
            default to frequency stored in the document.
          schema:
            type: string
            example: D
        - in: query
          name: ccy
          required: false
          description: >-
            Currency ISO code for the overall currency of the chart. The API
            doesn't allow per series currency at this point in time.
          schema:
            type: string
            example: USD
        - in: query
          name: split
          required: false
          description: Option to specify the splits adjustment
          schema:
            type: string
            example: SPLIT
            enum:
              - SPLIT
              - UNSPLIT
        - in: query
          name: spin
          required: false
          description: >-
            Numeric option to specify the spinOffs adjustment. Possible options
            include `0` (When we only want spits adjustment), `1` (spinOffs),
            `4` (spinOffs and cash dividends) and `9` (No adjustments)
          schema:
            type: number
            enum:
              - 0
              - 1
              - 4
              - 9
            example: 1
        - in: query
          name: cal
          required: false
          description: Option for the calendarType of the chart
          schema:
            type: string
            default: local
            enum:
              - local
              - fiveDay
              - sevenDay
        - in: query
          name: title
          required: false
          description: >-
            Option to customize the title. If you don't customize the title,
            then it displays by default the security name.
          schema:
            type: string
        - in: query
          name: fontSize
          required: false
          description: Option to adjust chart's fontSize
          schema:
            type: number
            example: 10
        - in: query
          name: type
          required: false
          description: The type of image to be generated by the service
          schema:
            type: string
            default: png
            enum:
              - png
              - jpg
        - in: query
          name: gridLines
          required: false
          description: Option to toggle gridLines on/off on the chart
          schema:
            type: boolean
            default: true
            example: false
      responses:
        '200':
          description: Success
          content:
            img/png:
              schema:
                $ref: '#/components/schemas/PNGResponse'
components:
  schemas:
    PNGResponse:
      type: string
      example: (no example available)
    JPEGResponse:
      type: string
      example: (no example available)
    CategoryListResponse:
      type: array
      items:
        type: string
        description: Chart categories available for user.
      example:
        - commodities
        - equity
        - fx
        - interest_rates
        - market_analysis
        - options
    CategoriesErrorResponse:
      type: object
      properties:
        error:
          type: string
          example: No categories found
    ChartInput:
      type: object
      properties:
        in:
          type: string
          enum:
            - query
            - param
          description: >-
            How to apply the additional input. Would be often via query
            parameter which can be appended to the request with &
        name:
          type: string
          description: The name of the parameter
          example: tz
        required:
          type: boolean
          description: >-
            Whether or not the parameter is required to be specified to get the
            chart image.
          example: false
        description:
          type: string
          description: A short description of the input and its use
          example: Can be used to specify timezone of the chart
        type:
          type: string
          description: The type of value expected for the input
          example: string
        example:
          type: string
          description: An example value for the input
          example: America/New_York
    ChartList:
      type: object
      properties:
        name:
          type: string
          description: Name of the chart
          example: RSI
        description:
          type: string
          description: A short description about the chart and its contents
          example: This chart requires a ticker
        tags:
          type: array
          items:
            type: string
          description: >-
            A list of tags to classify the chart. This is being done so that
            users can easily group them if required.
          example:
            - price
            - intraday
        inputs:
          type: array
          description: List of additional inputs for the chart
          items:
            $ref: '#/components/schemas/ChartInput'
    CategorizedChartList:
      type: array
      items:
        type: object
        properties:
          category:
            type: string
            example: equity
            description: >-
              Name of the category. This is required when building the request
              for the chart image.
          chartList:
            type: array
            items:
              $ref: '#/components/schemas/ChartList'
    ChartListErrorResponse:
      type: object
      properties:
        error:
          type: string
          enum:
            - Invalid Category Name(s)
            - Unable to build chart-list
    CatalogPDF:
      type: string
      format: binary
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          enum:
            - Missing chart document
            - Failed to fetch saved chart document
            - Invalid chart width
            - Invalid chart height
            - Invalid showEolLabels option
            - Invalid show footer option
            - Invalid display frequency option
            - Invalid file type
            - Invalid frequency
            - Invalid timezone
            - Invalid ticker
            - Invalid chart title
tags:
  - name: Catalog
  - name: Image