FactSet BookBuilder API

The BookBuilder API is a powerful tool that quickly combines FactSet's detailed reports for companies of interest into polished pdfs that can be read, saved down, and shared with others.

OpenAPI Specification

bookbuilder-openapi-original.yml Raw ↑
openapi: 3.0.0
info:
  description: >-
    The BookBuilder API is a powerful tool that combines detailed reports for
    companies of interest. Save time by using a single source of knowledge
    instead of relying on multiple APIs to create a presentation ready PDF, also
    known as a Public Information Book(PIB). </br></br> Consistently create
    books with the same content/reports for different companies by defining
    templates with the set of reports saved for re-use. Or, use templates that
    are created by FactSet for quick use. </br></br> With our powerful API
    endpoints, you can get the information on companies of interest quickly
    where and when you need it. </br></br> 
  title: Factset BookBuilder
  version: '1.11'
servers:
  - url: https://api.factset.com/book-builder-api/
    description: Base URL Production
security:
  - BasicAuth: []
tags:
  - name: Book List
  - name: Create Book
  - name: Create Book From Template
  - name: Create Template
  - name: Custom Upload List
  - name: Download Api Book Aws
  - name: Template List
  - name: Upload Custom Document
paths:
  /v1/book-list:
    get:
      tags:
        - Book List
      summary: Factset Check out the books that are in the book library
      description: >-
        Retrieves the list of books that were previously created and are
        available in the client's book library
      responses:
        '200':
          description: >-
            Successful response contains book name, book ID, created date,
            shared status of the book and book type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enable_BookList_Info'
        '401':
          description: Missing or invalid authentication
  /v1/template-list:
    get:
      tags:
        - Template List
      summary: Factset Retrieves the list of templates that are available
      description: >-
        A template is a predefined list of content to be compiled in a PDF. This
        end point works without any parameters and retrieves the list of
        templates available for the user. Templates need to defined/created in
        FactSet workstation.
      responses:
        '200':
          description: >-
            Successful response contains an array with template name, template
            ID, created date, template source and template type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enable_Template_Info'
        '401':
          description: Missing or invalid authentication
  /v1/create-template/:
    post:
      tags:
        - Create Template
      summary: Factset Kick off request to create template with reports of your choice
      description: >-
        This end point retrieves template name and template_id of the template
        you create. All the book options such as name of the template, type, and
        reports can be specified in the request body. Please refer to the
        documentation for valid section ids and report ids.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/createTemplatePostRequest'
      responses:
        '200':
          description: Successful response contains book name and book ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enable_Template_Info_Post'
        '400':
          description: Invalid template type/section_id/report_id
        '401':
          description: Missing or invalid authentication
  /v1/create-book:
    post:
      tags:
        - Create Book
      summary: Factset Kicks off request to create a book with reports of your choice
      description: >-
        This end point retrieves book name and book_id for the PDF book you
        create. All the book options such as name of the book, ticker,
        pagination options, and reports can be specified in the request body.
        Please refer to the documentation for valid section ids and report ids.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/createBookPostRequest'
      responses:
        '200':
          description: Successful response contains book name and book ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enable_Book_Info'
        '400':
          description: Invalid ticker/section_id/report_id
        '401':
          description: Missing or invalid authentication
  /v1/create-book-from-template:
    post:
      tags:
        - Create Book From Template
      summary: Factset Kicks off request to create a book with template
      description: >-
        This endpoint retrieves book status, book name, and book ID for ticker
        requested in JSON format. This end-point excepts ticker and template_id
        as inputs. If the template_id input is not used, a book will be created
        with FactSet's default template.</br></br>Please try out the below
        template ids to quickly get the FactSet curated books</br></br>Company
        Quick Book - <b>g_20210415065838185</b></br>Post-Earnings Call -
        <b>g_20210415070044785</b> </br>Public Information Book(PIB) -
        <b>g_20210415070353151</b></br></br> Take a look at the example books
        attached under API documentation below.</br></br>If you are scheduling
        Post Earnings Call curated book, please note that in contains Corrected
        Transcript that takes a little while to be available.</br> </br>Once a
        Raw Transcript is published, FactSet's editors review the call to
        produce a Corrected Transcript. They listen to the entire audio file
        again to confirm that all of the terms and numbers are correctly
        transcribed. FactSet aims to publish a Corrected Transcript within six
        times the length of the event, measured from the beginning of the event.
        That means for a typical one-hour call, FactSet will produce a Corrected
        Transcript within approximately five hours of the call's completion.
        Visit [OA 13208](https://my.apps.factset.com/oa/pages/13208)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/createBookFromTemplatePostRequest'
      responses:
        '200':
          description: Successful response contains request status, book name, and book ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enable_Book_Info_From_Template'
        '400':
          description: Invalid ticker or Unknown error
        '401':
          description: Missing or invalid authentication
  /v1/download-api-book-aws/{book_id}:
    get:
      tags:
        - Download Api Book Aws
      summary: Factset Retrieves book in PDF format
      description: >-
        This endpoint uses the BookId returned from any of the request above.
        Returns the URL to load the book for the book ID requested. The URL will
        be in JSON format, the final book will be in PDF format. <br><br> NOTE
        -- The execution of this endpoint requires an extra step within the
        developer portal due to authentication limitations. When using the
        actual API, a successful response for this endpoint will be the PDF book
        rather than the URL to the PDF. <br><br><b><i>The actual endpoint is
        </b><font
        color=blue>https://api.factset.com/book-builder-api/v1/download-api-book/{book_id}</font></i>
      parameters:
        - in: path
          name: book_id
          schema:
            type: string
          required: true
      responses:
        '200':
          description: >-
            Successful response contains URL to load the book for the BookID
            requested
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enable_Book_Download'
        '202':
          description: Book is processing. Please check back later.
        '400':
          description: Something went wrong. Please create a new request.
        '401':
          description: Missing or invalid authentication
        '503':
          description: Unrecognized BookId
  /v1/upload-custom-document:
    post:
      tags:
        - Upload Custom Document
      summary: Factset Upload a custom document
      description: >-
        Upload any thrid-party documents that need to be included in the final
        PDF. Once uploaded, the successful response will be a unique fileurl
        that can be used to add the files to the PDF output using the
        create-book endpoint. Supported files include Powerpoint, Word, RTF and
        PDF. The total size should not exceed 250MB and each file should not
        exceed 10MB.
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: array
                  items:
                    type: string
                    format: binary
                  minItems: 1
      responses:
        '200':
          description: Successful response contains file name, fileURL of the book uploaded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Upload_Document_Response'
        '400':
          description: Invalid ticker or Unknown error
        '401':
          description: Missing or invalid authentication
  /v1/custom-upload-list:
    get:
      tags:
        - Custom Upload List
      summary: Factset Check out the documents uploaded before to use them in creating books
      description: >-
        Retrieves the list of documents uploaded before using the endpoint
        "/upload-custom-document". The documents uploaded are available for 30
        days from the date of uploading.
      responses:
        '200':
          description: >-
            Successful response contains file name, fileURL and the date and
            time the book was uploaded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Uploaded_Documents_List'
        '401':
          description: Missing or invalid authentication
components:
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
  schemas:
    createTemplatePostRequest:
      title: Request Body for Template Request
      description: The request body allows users to input the name of the template, ticker
      type: object
      properties:
        tmpl_name:
          type: string
          description: name of the template
          example: Quick Financials
        tmpl_type:
          type: string
          description: Type of the template (public,pc,pe,fi)
          example: public
        content:
          type: array
          description: Content sections
          items:
            oneOf:
              - type: object
                properties:
                  section_id:
                    example: COMPANY_OVERVIEW
                  reports:
                    type: array
                    items:
                      oneOf:
                        - type: string
                          example: COMPANY_SNAPSHOT_IB
                        - type: string
                          example: COMPANY_SNAPSHOT_IM
                        - type: string
                          example: ENTITY_STRUCTURE
    createBookPostRequest:
      title: Request Body for Post Request
      description: The request body allows users to input the name of the book, ticker
      type: object
      properties:
        book_name:
          type: string
          description: name of the book
          example: Company Book for FDS
        ticker:
          type: string
          description: Identifier.
          example: FDS-US
        pagination:
          type: object
          description: options for pagination
          properties:
            cover:
              example: 'true'
            divider:
              example: 'true'
            toc:
              example: 'true'
        content:
          type: array
          description: Content sections
          items:
            oneOf:
              - type: object
                properties:
                  section_id:
                    example: COMPANY_OVERVIEW
                  reports:
                    type: array
                    items:
                      oneOf:
                        - type: string
                          example: COMPANY_SNAPSHOT_IB
                        - type: string
                          example: COMPANY_SNAPSHOT_IM
                        - type: string
                          example: ENTITY_STRUCTURE
    createBookFromTemplatePostRequest:
      title: Request Body for Post Request
      description: It is a request body to allow users to input ticker and template id.
      type: object
      properties:
        ticker:
          type: string
          description: ticker
          example: FDS-US
        template_id:
          type: string
          description: Template ID
          example: g_20210415065838185
    Enable_BookList_Info:
      title: Booklist Request
      description: Request to enable Book list information for the client.
      type: array
      items:
        properties:
          bookID:
            type: string
            description: Book ID
            example: 20200623094829450
          book_name:
            type: string
            description: Book Name
            example: Financials
          created_on:
            type: string
            description: Date on which the book was created
            example: 2020-6-23 9:48
    Enable_Book_Info:
      title: Book Information Request
      description: Request to enable book information for the client.
      type: object
      properties:
        bookName:
          type: string
          description: Report Name
          example: Apple Inc.
        bookID:
          type: string
          description: Book ID
          example: 20200317133713790
    Enable_Book_Info_From_Template:
      title: Book Information Request
      description: Request to enable book information for the client.
      type: object
      properties:
        status:
          type: string
          description: Request status
          example: OK
        bookName:
          type: string
          description: Report Name
          example: Apple Inc.
        bookID:
          type: string
          description: Book ID
          example: 20200317133713790
    Enable_Template_Info:
      title: Template Request
      description: Request to enable template list information for the client.
      type: array
      items:
        properties:
          template_id:
            type: string
            description: Template ID
            example: 20200623094829450
          template_name:
            type: string
            description: Template name
            example: Financials
          created_on:
            type: string
            description: Date on which the template was created
            example: 2020-6-23 9:48
          template_source:
            type: string
            description: Source of the template - Custom vs. Default
            example: own_template
          type:
            type: string
            description: Type of the template
            example: Public
    Enable_Template_Info_Post:
      title: Template Request
      description: Request to enable template list information for the client.
      type: object
      properties:
        tmpl_id:
          type: string
          description: Template ID
          example: 20200623094829450
        tmpl_name:
          type: string
          description: Template name
          example: Financials
    Upload_Document_Response:
      title: Upload Document Response
      description: Response to Upload Document.
      type: array
      items:
        properties:
          name:
            type: string
            description: Name of the uploaded file
            example: Custom Upload
          file_url:
            type: string
            description: FIle url
            example: b33f6b758f2b12562251e5396e21f68ad46648bf19a8f3a9e55f74
    Uploaded_Documents_List:
      title: Template Request
      description: Request to enable template list information for the client.
      type: array
      items:
        properties:
          name:
            type: string
            description: Template ID
            example: Custom Upload
          file_url:
            type: string
            description: FIle url
            example: b33f6b758f2b12562251e5396e21f68ad46648bf19a8f3a9e55f74
    Enable_Book_Download:
      title: Book Download
      description: Request to download book.
      type: object
      properties:
        Message:
          type: string
          description: Book status
          example: >-
            Copy and paste the URL below into your browser to download your
            book. This book will be available for download for the next 30
            minutes.
        url:
          type: string
          description: URL to book.
          example: >-
            https://fioaddon-s3-bridge-3399.s3.amazonaws.com/DD_20200331093828132.pdf?AWSAccessKeyId=AKIA46YVWD3IE4WEE4OI&Expires=1585663820&Signature=C2PQmOQJlgzbW67skirSuKAiP1A%3D