FactSet Global Filings API
This API is designed to expose document search and document retrieval functionality.
This API is designed to expose document search and document retrieval functionality.
openapi: 3.0.0
info:
title: Factset Global Filings API
version: 0.0.0
contact:
name: FactSet Research Systems
email: [email protected]
url: https://developer.factset.com/contact
license:
name: Apache License, Version 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
description: >-
The Filings API provides a comprehensive set of functionalities for
searching and retrieving filing documents from various sources.
This API is designed to expose document search and document retrieval
functionality. A document search will allow a request to query FactSet’s
document databases based on certain search criteria specified in the
request.
In addition, a document count request will provide information on the number
of stories available for a particular security.
Helper endpoint will provide dynamic information on the parameters of a
document request. .
externalDocs:
description: API Documentation
url: https://developer.factset.com/api-catalog/global-filings-api
servers:
- url: https://api.factset.com/global-filings/v0
security:
- FactSetApiKey: []
- FactSetOAuth2: []
paths:
/search:
get:
summary: >-
Returns the filings documents and related metadata within FactSet
coverage.
tags:
- Search
responses:
'200':
description: >-
Array of downloadable URLs consisting of Filings documents with
related metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/InvestmentResearch'
examples:
Sample Response:
value:
data:
- headline: >-
Zukin's Next Week Today 4/7/2023 (Wolfe Research) 97
pages
source: EDG
allIds:
- IBM-US
primaryIds:
- IBM-US
filingsDate: '20230307'
filingsTime: '194026'
categories:
- CN:US,DT:AN-FILNS,DT:FILNS, DT:FILNS
filingsLink: >-
https://api.factset.com/v0/filings?report=story&key=U2FsdGVkX18b15tR%2bV9L1xvjo6Vnz7C7PhIbUvoMrgF%2f43aEWomYlhVruC6G6874fEX
documentId: 20230307-5b36f2cf-49bd-ed11-abc3-12bc89a8f273_0
meta:
pagination:
isEstimatedTotal: false
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
default400ResponseExample:
$ref: '#/components/examples/ErrorDetails'
'401':
description: >-
Unauthenticated USERNAME-SERIAL. Ensure you are logged in and have
successfully generated an API KEY for the IP range you are
connecting from. For more help, select the Report Issue in the top
right corner of this Developer Portal specification card and choose
Connectivity 401 or 403 Responses.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
default401ResponseExample:
$ref: '#/components/examples/AuthErrorDetails'
'403':
description: >-
The USERNAME-SERIAL attempted to request the endpoint is not
authorized to access. The request was a legal request, but the
server is refusing to respond. Please reach out to FactSet Account
Team for assistance with authorization.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
default403ResponseExample:
$ref: '#/components/examples/AuthorizationErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
default500ResponseExample:
$ref: '#/components/examples/ServerErrorDetails'
operationId: getFilings
description: >-
Returns the filings documents within FactSet coverage along with other
response fields
parameters:
- $ref: '#/components/parameters/ids'
- $ref: '#/components/parameters/startDate'
- $ref: '#/components/parameters/endDate'
- $ref: '#/components/parameters/paginationLimit'
- $ref: '#/components/parameters/paginationOffset'
- $ref: '#/components/parameters/timezone'
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/sourcesOne'
- $ref: '#/components/parameters/categories'
- $ref: '#/components/parameters/primaryId'
- $ref: '#/components/parameters/searchText'
- $ref: '#/components/parameters/formType'
- $ref: '#/components/parameters/accession'
/helper:
get:
tags:
- Helper
operationId: getHelper
summary: Factset Returns the static values for various parameters
description: >-
Returns the static values for sources,formTypes,timeZones,categories
based on the specified parameter
parameters:
- $ref: '#/components/parameters/report1'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/responseHelper'
examples:
sources:
summary: Sample 200 Response for Sources Parameter
value:
data:
- source: EDG
description: EDGAR
- source: EDJ
description: EDINET
- source: FBLK
description: Factset Blackline Report
- source: FFR
description: Factset Annuals & Interims
- source: HNX
description: Hanoi Stock Exchange - HNX News
- source: SDR
description: SEDAR
- source: SENS
description: Stock Exchange News Service
- source: TDT
description: TDnet
- source: TWSE
description: Taiwan Stock Exchange
- source: ASXD
description: ASX Company Announcements Delayed
formTypes:
summary: Sample 200 Response for FormTypes Parameter
value:
data:
- source: EDG
description: Edgar
formType: 10-K
- source: EDG
description: Edgar
formType: 8-K
timeZones:
summary: Sample 200 Response for TimeZones Parameter
value:
data:
- timezone: Africa/Malabo
categories:
summary: Sample 200 Response for Categories Parameter
value:
data:
- subject: SB
category: SB:ANLCH
description: Analysts Revisions
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
default400ResponseExample:
$ref: '#/components/examples/ErrorDetails'
'401':
description: >-
Unauthenticated USERNAME-SERIAL. Ensure you are logged in and have
successfully generated an API KEY for the IP range you are
connecting from. For more help, select the Report Issue in the top
right corner of this Developer Portal specification card and choose
Connectivity 401 or 403 Responses.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
default401ResponseExample:
$ref: '#/components/examples/AuthErrorDetails'
'403':
description: >-
The USERNAME-SERIAL attempted to request the endpoint is not
authorized to access. The request was a legal request, but the
server is refusing to respond. Please reach out to FactSet Account
Team for assistance with authorization.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
default403ResponseExample:
$ref: '#/components/examples/AuthorizationErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
default500ResponseExample:
$ref: '#/components/examples/ServerErrorDetails'
/count:
get:
tags:
- Count
operationId: getCount
summary: Factset Returns the count of filings for specified source
description: Returns the count of filings documents along with other response fields.
parameters:
- $ref: '#/components/parameters/report2'
- $ref: '#/components/parameters/startDate'
- $ref: '#/components/parameters/endDate'
- $ref: '#/components/parameters/ids'
- $ref: '#/components/parameters/sources'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/responseCount'
examples:
default200ResponseExample:
$ref: '#/components/examples/sampleResponseCount'
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
default400ResponseExample:
$ref: '#/components/examples/ErrorDetails'
'401':
description: >-
Unauthenticated USERNAME-SERIAL. Ensure you are logged in and have
successfully generated an API KEY for the IP range you are
connecting from. For more help, select the Report Issue in the top
right corner of this Developer Portal specification card and choose
Connectivity 401 or 403 Responses.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
default401ResponseExample:
$ref: '#/components/examples/AuthErrorDetails'
'403':
description: >-
The USERNAME-SERIAL attempted to request the endpoint is not
authorized to access. The request was a legal request, but the
server is refusing to respond. Please reach out to FactSet Account
Team for assistance with authorization.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
default403ResponseExample:
$ref: '#/components/examples/AuthorizationErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
default500ResponseExample:
$ref: '#/components/examples/ServerErrorDetails'
components:
securitySchemes:
FactSetOAuth2:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://auth.factset.com/as/token.oauth2
scopes: {}
FactSetApiKey:
type: http
scheme: basic
schemas:
ErrorResponse:
type: object
description: Error Response Object
properties:
errors:
type: array
description: Errors Array Object
items:
$ref: '#/components/schemas/ErrorExample'
ErrorExample:
type: object
description: Error Example Object
properties:
code:
description: Specifies the error code.
type: string
title:
description: ' Specifies the error message.'
type: string
id:
description: Specifies the id.
type: string
InvestmentResearch:
description: Filings Response Object
type: object
properties:
data:
type: array
description: Data Array Object
items:
$ref: '#/components/schemas/InvestmentResearchObject'
meta:
type: object
description: Meta Object
properties:
pagination:
type: object
description: Pagination Object
properties:
isEstimatedTotal:
type: boolean
description: >-
This field acts as a flag for the exact count of results and
is defaulted to false as the API should always return the
exact count of results.
InvestmentResearchObject:
type: object
properties:
headline:
type: string
description: Headline of the story, actual time and date of the event.
source:
type: string
description: Provides source of the document.
primaryIds:
type: array
items:
type: string
description: Refers to the main company a particular document refers to.
allIds:
type: array
items:
type: string
description: >-
Refers to all companies mentioned in the document. This could also
include the primary company id as well.
filingsDate:
type: string
description: Publish date of the latest version (in ET).
filingsTime:
type: string
description: Publish time of the latest version (in ET).
categories:
type: array
items:
type: string
description: >-
Categories are country, industry, and subject codes. This is a
comma-separated list.
filingsLink:
type: string
description: The link to download the document.
documentId:
type: string
description: Unique identifier for a document.
responseHelper:
description: Filings Response Object
type: object
properties:
data:
type: array
description: Data Array Object
items:
$ref: '#/components/schemas/responseHelperObject'
responseHelperObject:
type: object
properties:
sourcesObject:
type: object
properties:
source:
type: string
description: source value
example: EDG
description:
type: string
description: source description
example: EDGAR
formtypesObject:
type: object
properties:
source:
type: string
description: source
example: EDG
formType:
type: string
description: formType
example: 8-K
description:
type: string
description: source description
example: Edgar
timeZonesObject:
type: object
properties:
timezone:
type: string
description: timezone
example: Africa/Malabo
categoriesObject:
type: object
properties:
subject:
type: string
description: subject code
example: SB
category:
type: string
description: category
example: SB:ANLCH
description:
type: string
description: description
example: Analysts Revisions
responseCount:
description: Filings Response Object
type: object
properties:
data:
type: array
description: Data Array Object
items:
$ref: '#/components/schemas/responseCountObject'
responseCountObject:
type: object
properties:
id:
type: string
description: id
example: IBM-US
source:
type: string
description: source
example: FFR
count:
type: string
description: source value
example: '8000'
examples:
ErrorDetails:
summary: Sample Error Response
value:
errors:
- code: Bad Request
title: parameterError:['_paginationLimit'] is not a valid parameter(s).
id: 7af3d86ca5954503b9244f2620fcf5eb
AuthErrorDetails:
summary: Sample Error Response
value:
errors:
- code: Not Authenticated
title: Unauthenticated USERNAME-SERIAL.
id: fd5a51ff-02cf-48ec-b9b1-913d64863b0
AuthorizationErrorDetails:
summary: Sample Error Response
value:
errors:
- code: Forbidden
title: USERNAME-SERIAL does not have permission.
id: 7af3d86ca5954503b9244f2620fcf5eb
ServerErrorDetails:
summary: Sample Error Response
value:
errors:
- code: Internal Server Error
title: An unexpected error happened.
id: 7af3d86ca5954503b9244f2620fcf5eb
sampleResponseCount:
summary: Sample Response
value:
data:
- id: IBM-US
source: FFR
count: '8000'
- id: IBM-US
source: EDG
count: '10000'
parameters:
report1:
schema:
type: string
enum:
- sources
- formTypes
- timeZones
- categories
in: query
name: fields
description: Request data for given field.
report2:
schema:
type: string
enum:
- count
in: query
name: report
required: true
description: retrives count of source.
ids:
schema:
type: array
items:
type: string
in: query
name: ids
examples:
oneId:
summary: One identifier
value:
- MODN-US
multipleIds:
summary: Multiple Identifiers
value:
- MODN-US
- OSIS-US
description: >-
Requested symbols or securities. This is a comma-separated list with a
maximum limit of 1000. Each symbol can be a FactSet exchange symbol,
CUSIP, or SEDOL.
explode: false
startDate:
schema:
type: string
default: '0'
in: query
name: startDate
example: '20231222'
description: Start Date. Format is YYYYMMDD or relative +/- days (0,-1,etc).
endDate:
schema:
type: string
default: '0'
in: query
name: endDate
example: '20231223'
description: End Date. Format is YYYYMMDD or relative +/- days (0,-1,etc).
primaryId:
schema:
type: string
enum:
- 'Y'
- 'N'
default: 'N'
in: query
name: primaryId
description: >-
Type of identifier search
* Y - Returns headlines of stories that have the search ID(s) as the
Primary ID.
* N - Returns headlines of stories that mention/refer to the ID(s).
paginationLimit:
schema:
type: integer
format: int32
default: 25
in: query
name: paginationLimit
example: 20
description: Number of results to return per page.
paginationOffset:
schema:
type: integer
format: int32
in: query
name: paginationOffset
description: Page number of the results to return.
timezone:
schema:
type: string
default: America/New_York
in: query
name: timezone
description: >-
Time zone to return story dates and times. Time zones are in POSIX
format and automatically adjusted for daylight savings.
sort:
schema:
type: string
enum:
- asc
- desc
default: desc
in: query
name: sort
description: >-
Sorting the results in chronological (oldest to newest) or reverse
chronological (newest to oldest) order.
* desc - sorting results in reverse chronological (descending) order. This is the default value if
the sort parameter isn’t used in the query
* asc - sorting results in chronological (ascending) order. If a start date is not specified, the
API has a 10-year searching limitation.
sources:
schema:
type: array
items:
type: string
in: query
name: sources
required: true
explode: false
examples:
oneSource:
summary: One Source
value:
- EDG
multipleSources:
summary: Multiple Sources
value:
- EDG
- FFR
description: >-
Code for document source to include.This is a comma-separated list. Use
the ```/helper``` endpoint to get the list of available sources.
sourcesOne:
schema:
type: array
items:
type: string
in: query
name: sources
required: true
examples:
oneSource:
summary: One Source
value:
- EDG
multipleSources:
summary: Multiple Sources
value:
- EDG
- FFR
description: >-
Code for document source to include. This is a comma-separated list.
Use the ```/helper``` endpoint to get the list of available sources.
explode: false
categories:
schema:
type: array
items:
type: string
in: query
name: categories
example:
- CN:US
- LN:EN
description: >-
Code for categories to include. This is a comma-separated list. Use the
```/helper``` endpoint to get the list of available categories.
Default = All categories.
explode: false
searchText:
schema:
type: string
in: query
name: searchText
example: Updates
description: >-
Restricts the search to include only document stories which include the
text searched.
formType:
schema:
type: string
in: query
description: Restricts the search to include any form types of EDGAR.
name: formType
required: false
accession:
schema:
type: string
in: query
description: >-
A unique identifier given to each EDGAR filings document. e.g.
accession=0001013237-21-000069&sources=EDG
name: accession
required: false
tags:
- name: Count
- name: Helper
- name: Search