openapi: 3.0.0
info:
version: 2.8.0
title: FactSet Concordance API
description: >2
The FactSet Concordance API enables Application Developers and Data
Scientists to programmatically discover the FactSet Identifier for a
specific Entity or Person based on attributes, such as name, URL, and
location.FactSet Identifiers are mapped to industry-standard identifiers, as
well as to a comprehensive set of reference data and unique content, to
enhance the ability to quickly connect content sets.<p>
Using the submitted attributes, the FactSet Concordance API leverages FactSet’s extensive Entity Master, People, and Symbology databases to return potential candidate matches and a proposed match. The result is a concorded FactSet Identifier that can then be used as input throughout FactSet's expanding catalog of Content using our Content APIs or Standard DataFeeds.</p>
<b>There are two types of workflows supported in the API:</b>
<b>Entity & People Match:</b> The first workflow follows traditional API conventions in that a request is accepted and a response is returned synchronously enabling the concordance of up to 25 names in a single request. The response returns a list of 20 candidates as well as a proposed match.
<b>Entity & People Match - Bulk:</b> The second workflow allows you to input a large list of names within a .CSV file in a single request With this workflow, a task is created for uploading a set of queries. Once the task has completed, the client retrieves the concordance results through the /entity-decisions or /people-decisions endpoint. Note that in the Bulk workflow, only the matches for the records are returned. Candidates are not included.
Once the service has provided a list of concorded FactSet Identifiers, you can then use our Entity Mappings and People Mappings endpoints to further review the universe of mapped identifiers or modify existing records. </p>
contact:
name: FactSet Research Systems, Inc.
email: [email protected]
servers:
- url: https://api.factset.com/content
description: Production Server
security:
- UserSecurity: []
tags:
- name: Factset Concordance
paths:
/factset-concordance/v2/entity-match:
get:
summary: Factset Get Entity Candidates and Matches for a single name and attributes.
description: >
Finds the best candidate entities matching the given entity name.
Additional attributes can be supplied to narrow the search, such as
State, URL, and Entity Types. <p>**Max of 1 Name permitted in a single
GET request.** Use the POST method for /entity-match to fetch up to 25
names. Otherwise, use the "Entity Match - Bulk" workflow to submit
larger universes of names to be concorded via a file.</p><p>
tags:
- Factset Concordance
operationId: getEntityMatch
parameters:
- $ref: '#/components/parameters/name'
- $ref: '#/components/parameters/country'
- $ref: '#/components/parameters/state'
- $ref: '#/components/parameters/url'
- $ref: '#/components/parameters/includeEntityType'
- $ref: '#/components/parameters/excludeEntityType'
- $ref: '#/components/parameters/includeEntitySubType'
- $ref: '#/components/parameters/excludeEntitySubType'
- $ref: '#/components/parameters/addParent'
- $ref: '#/components/parameters/bbgFigi'
- $ref: '#/components/parameters/bbgTicker'
- $ref: '#/components/parameters/bic'
- $ref: '#/components/parameters/cik'
- $ref: '#/components/parameters/crd'
- $ref: '#/components/parameters/cusip'
- $ref: '#/components/parameters/duns'
- $ref: '#/components/parameters/ein'
- $ref: '#/components/parameters/factsetId'
- $ref: '#/components/parameters/fitch'
- $ref: '#/components/parameters/gvkey'
- $ref: '#/components/parameters/gvkeyIid'
- $ref: '#/components/parameters/isin'
- $ref: '#/components/parameters/jcn'
- $ref: '#/components/parameters/lei'
- $ref: '#/components/parameters/lxid'
- $ref: '#/components/parameters/md'
- $ref: '#/components/parameters/redCode'
- $ref: '#/components/parameters/rssd'
- $ref: '#/components/parameters/sedol'
- $ref: '#/components/parameters/spr'
- $ref: '#/components/parameters/ticker'
- $ref: '#/components/parameters/tickerExchange'
- $ref: '#/components/parameters/tickerRegion'
- $ref: '#/components/parameters/ukch'
- $ref: '#/components/parameters/valoren'
- $ref: '#/components/parameters/wkn'
responses:
'200':
$ref: '#/components/responses/EntityMatchResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'415':
$ref: '#/components/responses/415'
'500':
$ref: '#/components/responses/500'
post:
summary: >-
Factset Get a list of Entity Candidates and Matches for a requested list of up to 25 names and attributes.
description: >
Finds the best candidate entities matching the given entity name. If a
`universeId` is provided, any match for an input including a `clientId`
will be saved to that universe. Additional attributes can be supplied to
narrow the search, such as State, URL, and Entity Types. Finds the best
candidate entities matching the given company name. Additional
attributes can be supplied to narrow the search. <p>**Max of 25 Names
inputted.** Use the "Entity Match - Bulk" workflow to submit larger
universes of names to be concorded via a file.</p><p> Supported types of
Entities in which the names can match to include -
* Corporations, Joint Ventures, and Holding Companies
* Fund Managers and various Fund Types (Open-end, Closed End, Hedge, Soverign Wealth, Pension, Exchange Traded, and more).</p>
tags:
- Factset Concordance
operationId: getEntityMatchForList
requestBody:
$ref: '#/components/requestBodies/EntityMatchRequestV2'
responses:
'200':
$ref: '#/components/responses/EntityMatchResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'415':
$ref: '#/components/responses/415'
'500':
$ref: '#/components/responses/500'
/factset-concordance/v2/entity-task:
post:
summary: Factset Input a file with names and attributes, creating a taskId.
description: >
Upload a Comma-Separated List file (.csv / UTF-8 encoding) with a list
of names and attributes and receive a `taskId`. The taskId is then used
for reference in the */entity-task-status* and */entity-decisions*
endpoints to receive results once the task is successful.<p>This is the
first step in the overall "Bulk" workflow. Use the /entity-task-status
endpoint to check the status.</p> <p> A universeId must be included in
request. If you do not have a universe created, reference the
`/universe` endpoint.
tags:
- Factset Concordance
operationId: getEntityTaskForList
requestBody:
description: Entity Request object. Used to create an Entity Task.
content:
multipart/form-data:
schema:
type: object
properties:
universeId:
description: >-
The id of the universe that entities should be mapped to.
Reference the `/universe` endpoint to create a universe, or
view available universes via `/universes`.
type: integer
example: 1
taskName:
description: >-
User defined name for the task that will be used to name the
output files.
type: string
example: test31
inputFile:
description: >
The UTF-8 encoded CSV File containing the entity names to be
concorded to a FactSet Entity Identifier. The files first
row **MUST** include headers as defined in the *Column
parameters. Be mindful of casing and spacing in column
headers. The input file is posted as a file object in the
form. For this reason, the mime type of this post request
must be multipart/form-data.
type: string
format: binary
example: Name,Country\nFactSet,US\n
clientIdColumn:
description: >
Header Name of the column in the input file that contains a
unique identifier supplied by the user referred to as a
"clientId". This clientId can be used to create custom
mappings or references.
type: string
example: ClientId
nameColumn:
description: >
Header name of the column in the input file that contains
the Entity Name to be matched.
type: string
example: NAME
countryColumn:
description: >
Header Name of the column in the input file that contains
the country's ISO Code. This is used to filter the
candidates before taking a match decision.
type: string
example: COUNTRY
urlColumn:
description: >
Header Name of the column in the input file that contains
the Entity's URL. URL corresponding to the entity name that
is used when evaluating candidates for a match.
type: string
example: URL
stateColumn:
description: >
Header Name of the column in the input file that contains
the two letter State Code of the state or province where the
Entity is located. Currently, only US state codes are
supported.
type: string
example: STATE
priorityColumn:
description: >
Header Name of the column in the inputfile that contains the
priority for the client id.
type: string
example: Priority
bbgFigiColumn:
description: >-
Header Name of the column in the input file for the type
`Bloomberg Listing/Regional/Security ID`.
type: string
example: BloombergId
bbgTickerColumn:
description: >-
Header Name of the column in the input file for the type
Bloomberg `Listing and Regional Ticker`.
type: string
example: BloombergTicker
bicColumn:
description: >
Header Name of the column in the input file for the type
BICCode, `bank indentification code`.
type: string
example: BICCode
cikColumn:
description: >-
Header Name of the column in the input file for the type
CIK, `Edgar Central Index Keys`
type: string
example: CIK
crdColumn:
description: >-
Header Name of the column in the input file for the type
CRD, `Central Registration Depository`.
type: string
example: CRD
cusipColumn:
description: >-
Header Name of the column in the input file for the type
`CUSIP`
type: string
example: CUSIP
dunsColumn:
description: >-
Header Name of the column in the input file for the type
DUNS, `Dun&Bradstreet`.
type: string
example: Dun&Bradstreet
einColumn:
description: >-
Header Name of the column in the input file for the type
EIN, `EmployerIdentificationNumber`.
type: string
example: EmployerIdentificationNumber
factsetIdColumn:
description: >-
Header Name of the column in the input file for the type
FactSet Identifier - `FactSet -E,-S,-R, -L Permanent
Identifier`.
type: string
example: FactSetIdentifier
fitchColumn:
description: >-
Header Name of the column in the input file for the type
FitchCreditRating, `Fitch Ratings Identifier`.
type: string
example: FitchCreditRating
gvkeyColumn:
description: >-
Header Name of the column in the input file for the type
GVKEY - `Compustat Global Company Key`.
type: string
example: GVKey
gvkeyIidColumn:
description: >-
Header Name of the column in the input file for the type
GVKEY+IID - `Compustat Global Company Key and Issue
Identifier`.
type: string
example: GVKeyIssueIdentifier
isinColumn:
description: >-
Header Name of the column in the input file for the type
`ISIN`.
type: string
example: ISIN
jcnColumn:
description: >-
Header Name of the column in the input file for the type JCN
- `Japanese Corporate Number`.
type: string
example: JCN
leiColumn:
description: >-
Header Name of the column in the input file for the type
LEI, `LegalEntityIdentifier`.
type: string
example: LegalEntityIdentifier
lxidColumn:
description: >-
Header Name of the column in the input file for the type
LXID - `Markit Syndicated Loan Identifier`.
type: string
example: LXID
mdColumn:
description: >-
Header Name of the column in the input file for the type
MoodysIssuer, `Moody's Ratings Identifier`.
type: string
example: MoodysIssuer
redCodeColumn:
description: >-
Header Name of the column in the input file for the type Red
Code - `Markit Reference Entity Identifier`.
type: string
example: RedCode
rssdColumn:
description: >-
Header Name of the column in the input file for the type
RSSD, `FederalReserveRSSDIdentifier`.
type: string
example: FederalReserveRSSDIdentifier
sedolColumn:
description: >-
Header Name of the column in the input file for the type
`SEDOL`.
type: string
example: SEDOL
sprColumn:
description: >-
Header Name of the column in the input file for the type
S&PRating, `S&P Ratings Identifier`.
type: string
example: SPRating
tickerColumn:
description: >-
Header Name of the column in the input file for the type
`PriceTicker`.
type: string
example: PriceTicker
tickerExchangeColumn:
description: >-
Header Name of the column in the input file for the type
`TickerExchange`.
type: string
example: TickerExch
tickerRegionColumn:
description: >-
Header Name of the column in the input file for the type
`TickerRegion`.
type: string
example: TickerRegion
ukchColumn:
description: >-
Header Name of the column in the input file for the type
`UKCompanyHouse`.
type: string
example: UKCompanyHouse
valorenColumn:
description: >-
Header Name of the column in the input file for the type
VALOR, `Valoren ("Valor") Identification`.
type: string
example: VALOR
wknColumn:
description: >-
Header Name of the column in the input file for the type
WKN, `German Securities Identification`.
type: string
example: WKN
includeEntityType:
description: >
Three-character FactSet entity type code used to filter
candidates in order to determine the final match result.
Only candidates with an entity type specified will be
considered for the final match result. Multiple types can be
entered separated by commas. **Do not include within
`inputFile`.**
type: array
items:
type: string
example: PUB
maxLength: 3
minLength: 3
excludeEntityType:
description: >
Three-character FactSet entity type code used to filter
candidates in order to determine the final match result.
Entities with these types will be excluded from the
decisions.
It is a global option used to filter the candidates before
taking a match decision.
Candidates with an entity type specified will *not* be
considered for the final match result.
**Do not include within `inputFile`.**
type: array
items:
type: string
example: EXT
maxLength: 3
minLength: 3
includeEntitySubType:
description: >
Two-character FactSet entity subtype code used to filter
candidates in order to determine the final match result.
Only candidates with an entity subtype specified will be
considered for the final match result. Multiple types can be
entered separated by commas. **Do not include within
`inputFile`.**
type: array
items:
type: string
example: PR
maxLength: 2
minLength: 2
excludeEntitySubType:
description: >
Two-character FactSet entity subtype code used to filter
candidates in order to determine the final match result.
Candidates with an entity subtype specified will *not* be
considered for the final match result. Multiple types can be
entered separated by commas.
**Do not include within `inputFile`.**
type: array
items:
type: string
example: IB
maxLength: 2
minLength: 2
additionalContextColumns:
description: >
Comma separated list of any additional column names in the
input file. To be used by Managed Service for any unmapped
records.
type: array
maxItems: 5
items:
type: string
example: Address
required:
- universeId
- taskName
- inputFile
- nameColumn
- clientIdColumn
responses:
'200':
$ref: '#/components/responses/EntityTaskResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'415':
$ref: '#/components/responses/415'
'500':
$ref: '#/components/responses/500'
/factset-concordance/v2/entity-task-status:
get:
summary: Factset Gets the status of the requested taskId or all tasks for a User
description: >
Pulls the **status** for ALL the Entity Tasks submitted by a client
within the last 30 days, and related details such as task duration and
decision rates. Specific Tasks can also be retrieved by using the
_taskId_ parameter.<p>Status types include -
* PENDING - The task has not yet started.
* IN_PROGRESS - The task is submitted and decisions are in progress.
* SUCCESS - The task was successful! Move to the /entity-decisions endpoint to retrieve decisions.
* FAILURE - The task failed. Reach out to FactSet Support for assistance.
* BAD_REQUEST - The task creation was unsuccesfull. Typically occurs with an incorrect input file format or column headers.
* ABORTED - The task was aborted.
tags:
- Factset Concordance
operationId: getEntityTaskStatus
parameters:
- $ref: '#/components/parameters/taskStatusId'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/status'
responses:
'200':
$ref: '#/components/responses/EntityTaskStatusResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'415':
$ref: '#/components/responses/415'
'500':
$ref: '#/components/responses/500'
/factset-concordance/v2/entity-decisions:
get:
summary: Factset Get the decisions of matches for the requested taskId.
description: >
Retrieves the `Decision` objects for an Entity Task (taskId). The
decisions do not include all candidates, but rather the results of
concording the requested list of names included in the input file.
Mapped entities will include a FactSet Entity Identifier (-E). Results
will be saved to the `universeId` specified in the input file.
tags:
- Factset Concordance
operationId: getEntityDecisions
parameters:
- $ref: '#/components/parameters/taskDecisionId'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/limit'
responses:
'200':
$ref: '#/components/responses/EntityDecisionsResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'415':
$ref: '#/components/responses/415'
'500':
$ref: '#/components/responses/500'
/factset-concordance/v2/universe:
post:
summary: Factset Create a new universe
description: |
Create a new universe that is distinct from any existing universe
tags:
- Factset Concordance
operationId: getUniverseForList
requestBody:
$ref: '#/components/requestBodies/CreateUniverseRequest'
responses:
'200':
$ref: '#/components/responses/UniverseMetaResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'415':
$ref: '#/components/responses/415'
'500':
$ref: '#/components/responses/500'
default:
$ref: '#/components/responses/errorResponse'
/factset-concordance/v2/entity-universe:
get:
summary: Factset Retrieve all saved mappings within a requested universe
description: |
Retrieves all entity mappings within a requested universe.
tags:
- Factset Concordance
operationId: getEntityUniverse
parameters:
- $ref: '#/components/parameters/universeIdRequired'
- $ref: '#/components/parameters/clientIdFilter'
- $ref: '#/components/parameters/mapStatus'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/sortEntity'
responses:
'200':
$ref: '#/components/responses/EntityUniverseResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'415':
$ref: '#/components/responses/415'
'500':
$ref: '#/components/responses/500'
post:
summary: >-
Factset Retrieve all saved mappings within a requested universe or large list of client ids
description: >
Retrieves all entity mappings that were saved in a given universe.
Supports filtering by a large number of `clientId`s
tags:
- Factset Concordance
operationId: getEntityUniverseForList
requestBody:
$ref: '#/components/requestBodies/EntityUniverseRequest'
responses:
'200':
$ref: '#/components/responses/EntityUniverseResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'415':
$ref: '#/components/responses/415'
'500':
$ref: '#/components/responses/500'
/factset-concordance/v2/people-universe:
get:
summary: Factset Retrieve all saved mappings within a requested universe
description: |
Retrieves all people mappings within a requested universe.
tags:
- Factset Concordance
operationId: getPeopleUniverse
parameters:
- $ref: '#/components/parameters/universeIdRequired'
- $ref: '#/components/parameters/clientId'
- $ref: '#/components/parameters/mapStatus'
- $ref: '#/components/parameters/peopleOffset'
- $ref: '#/components/parameters/peopleLimit'
- $ref: '#/components/parameters/sortPeople'
responses:
'200':
$ref: '#/components/responses/PeopleUniverseResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'415':
$ref: '#/components/responses/415'
'500':
$ref: '#/components/responses/500'
post:
summary: >-
Factset Retrieve all saved mappings within a requested universe or large list of client ids
description: >
Retrieves all people mappings that were saved in a given universe.
Supports filtering by a large number of `clientId`s
tags:
- Factset Concordance
operationId: getPeopleUniverseForList
requestBody:
$ref: '#/components/requestBodies/PeopleUniverseRequest'
responses:
'200':
$ref: '#/components/responses/PeopleUniverseResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'415':
$ref: '#/components/responses/415'
'500':
$ref: '#/components/responses/500'
/factset-concordance/v2/update-universe:
post:
summary: Factset Update metadata for an existing universe
description: |
Update metadata for an existing universe
tags:
- Factset Concordance
operationId: getUpdateUniverseForList
requestBody:
$ref: '#/components/requestBodies/UpdateUniverseRequest'
responses:
'200':
$ref: '#/components/responses/UniverseMetaResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'415':
$ref: '#/components/responses/415'
'500':
$ref: '#/components/responses/500'
default:
$ref: '#/components/responses/errorResponse'
/factset-concordance/v2/universes:
get:
summary: Factset Fetch metadata for universes
description: >
Fetch information on active universes for the current user. Optionally
filter for a specific universe given a `universeId`
tags:
- Factset Concordance
operationId: getUniverses
parameters:
- $ref: '#/components/parameters/universeId'
- $ref: '#/components/parameters/universeType'
responses:
'200':
$ref: '#/components/responses/UniversesResponse'
default:
$ref: '#/components/responses/errorResponse'
/factset-concordance/v2/entity-universe-statistics:
get:
summary: Factset Get statistics on a given universe
description: >
Get the total number of mappings in a universe, as well as the number of
mapped, unmapped and indeterminate mappings
tags:
- Factset Concordance
operationId: getEntityUniverseStatistics
parameters:
- $ref: '#/components/parameters/universeIdRequired'
responses:
'200':
$ref: '#/components/responses/EntityUniverseStatisticsResponse'
default:
$ref: '#/components/responses/errorResponse'
/factset-concordance/v2/universe-statistics:
get:
summary: Factset Get statistics on a given universe
description: >
Get the total number of mappings in a universe, as well as the number of
mapped, unmapped and indeterminate mappings
tags:
- Factset Concordance
operationId: getUniverseStatistics
parameters:
- $ref: '#/components/parameters/universeStatisticsRequired'
responses:
'200':
$ref: '#/components/responses/universeStatisticsResponse'
default:
$ref: '#/components/responses/errorResponse'
/factset-concordance/v2/entity-mapping:
post:
summary: Factset Saves a single-mapping specified by the client.
description: >
Saves a Concordance Mapping to the client universe. When making a post,
all exiting values are overwritten in the database with the values
passed in the request. clientId and clientName are required.
tags:
- Factset Concordance
operationId: getEntityMappingForList
requestBody:
$ref: '#/components/requestBodies/EntityMappingRequestV2'
responses:
'200':
$ref: '#/components/responses/EntityResponse'
'400
# --- truncated at 32 KB (222 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/factset/refs/heads/main/openapi/concordance-openapi-original.yml