swagger: '2.0'
info:
title: Factset Open:FactSet Marketplace API
description: Headless CMS API used by the Open:FactSet Marketplace.
contact:
name: Open:FactSet Frontend Engineering Team
email: [email protected]
license:
name: Proprietary
version: v2.3.0
host: api-sandbox.factset.com
paths:
/ofs/v2/attributes/{id}:
get:
summary: Factset Retrieve a collection of Attribute records.
parameters:
- name: id
in: path
required: true
description: Globally unique identifier (GUID) of an attribute record
schema:
example: 904eb623-2b58-4dba-8e81-61e2ef889bb5
type: string
pattern: >-
\{?[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}\}?
responses:
'200':
$ref: '#/definitions/GetAttributeDto'
'404':
description: Attribute record was not found.
tags:
- Ofs
/ofs/v2/attributes:
get:
summary: Factset Retrieve a collection of Attribute records.
parameters:
- name: limit
in: query
description: Limit the amount of records per page
type: integer
default: 10
- name: page
in: query
description: Select which page to show
type: integer
default: 1
minimum: 1
responses:
'200':
description: >-
A JSON representation of collection of Attribute records. Might be
empty.
schema:
items:
allOf:
- $ref: '#/definitions/GetAttributeDto'
type: array
headers:
X-Pagination:
description: >-
A JSON containing pagination information. (e.g
totalCount,pageSize,currentPage,totalPages,previousPageLink and
nextPageLink)
type: string
'422':
description: >-
Unprocessable entity. Validation error response containing the
errors in a human readable form.
schema:
items:
type: string
type: array
tags:
- Ofs
/ofs/v2/attributes/search:
post:
summary: Factset Retrieve a collection of Attribute records.
parameters:
- name: body
in: body
schema:
$ref: '#/definitions/PostAttributeSearchDto'
type: json
responses:
'200':
description: >-
A JSON representation of collection of Attribute records. Might be
empty.
schema:
items:
allOf:
- $ref: '#/definitions/GetAttributeDto'
type: array
headers:
X-Pagination:
description: >-
A JSON containing pagination information. (e.g
totalCount,pageSize,currentPage,totalPages,previousPageLink and
nextPageLink)
type: string
'422':
description: >-
Unprocessable entity. Validation error response containing the
errors in a human readable form.
schema:
items:
type: string
type: array
tags:
- Ofs
/ofs/v2/attributes/groups/{id}:
get:
summary: Factset Retrieve a specific Attributes Group record.
parameters:
- name: id
in: path
required: true
description: Globally unique identifier (GUID) of an Attributes Group record
schema:
example: fd8f12e9-aa8b-4c2a-9e2e-a212f3ec29e1
type: string
pattern: >-
\{?[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}\}?
responses:
'200':
description: A JSON representation of an Attributes Group record.
schema:
$ref: '#/definitions/GetAttributesGroupDto'
'404':
description: Attributes Group record was not found.
tags:
- Ofs
/ofs/v2/attributes/groups:
get:
summary: Factset Retrieve a collection of Attributes Group records.
parameters:
- name: limit
in: query
description: Limit the amount of records per page
type: integer
default: 10
- name: page
in: query
description: Select which page to show
type: integer
default: 1
minimum: 1
responses:
'200':
description: >-
A JSON representation of collection of Attributes Group records.
Might be empty.
schema:
items:
allOf:
- $ref: '#/definitions/GetAttributesGroupDto'
type: array
headers:
X-Pagination:
description: >-
A JSON containing pagination information. (e.g
totalCount,pageSize,currentPage,totalPages,previousPageLink and
nextPageLink)
type: string
'422':
description: >-
Unprocessable entity. Validation error response containing the
errors in a human readable form.
schema:
items:
type: string
type: array
tags:
- Ofs
/ofs/v2/attributes/groups/used:
get:
summary: Factset Retrieve a collection of Attributes Group records in use.
parameters:
- name: limit
in: query
description: Limit the amount of records per page
type: integer
default: 10
- name: page
in: query
description: Select which page to show
type: integer
default: 1
minimum: 1
responses:
'200':
description: >-
A JSON representation of collection of Attributes Group records.
Might be empty.
schema:
items:
allOf:
- $ref: '#/definitions/GetAttributesGroupDto'
type: array
headers:
X-Pagination:
description: >-
A JSON containing pagination information. (e.g
totalCount,pageSize,currentPage,totalPages,previousPageLink and
nextPageLink)
type: string
'422':
description: >-
Unprocessable entity. Validation error response containing the
errors in a human readable form.
schema:
items:
type: string
type: array
tags:
- Ofs
/ofs/v2/attributes/groups/search:
post:
summary: Factset Retrieve a collection of Attributes Group records.
parameters:
- name: body
in: body
schema:
$ref: '#/definitions/PostAttributesGroupSearchDto'
type: json
responses:
'200':
description: >-
A JSON representation of collection of Attributes Group records.
Might be empty.
schema:
items:
allOf:
- $ref: '#/definitions/GetAttributesGroupDto'
type: array
headers:
X-Pagination:
description: >-
A JSON containing pagination information. (e.g
totalCount,pageSize,currentPage,totalPages,previousPageLink and
nextPageLink)
type: string
'422':
description: >-
Unprocessable entity. Validation error response containing the
errors in a human readable form.
schema:
items:
type: string
type: array
tags:
- Ofs
/ofs/v2/media/download/{namespace}/{scope}/{guid}/{fileName}:
get:
summary: Factset Retrieve a specific media file
parameters:
- name: namespace
in: path
required: true
description: The namespace of the media file
schema:
example: partners
type: string
pattern: (partners|products|resources)
enum:
- partners
- products
- resources
- name: scope
in: path
required: true
description: The scope of the media file
schema:
example: logo
type: string
pattern: (logo|avatar|documents)
enum:
- logo
- avatar
- documents
- name: guid
in: path
required: true
description: The GUID of the file being requested
schema:
example: 774c3a5c-cc77-4e4c-b4a8-224a35cb00ba
type: string
- name: fileName
in: path
required: true
description: The name you want to show for this file in the uri.
schema:
example: FactSet.png
type: string
responses:
'200':
description: OK
'404':
description: Not Found
tags:
- Ofs
head:
summary: Factset Check the existence and retrieve the headers of a spefic media file
parameters:
- name: namespace
in: path
required: true
description: The namespace of the media file
schema:
example: partners
type: string
pattern: (partners|products|resources)
enum:
- partners
- products
- resources
- name: scope
in: path
required: true
description: The scope of the media file
schema:
example: logo
type: string
pattern: (logo|avatar|documents)
enum:
- logo
- avatar
- documents
- name: guid
in: path
required: true
description: The GUID of the file being requested
schema:
example: 774c3a5c-cc77-4e4c-b4a8-224a35cb00ba
type: string
- name: fileName
in: path
required: true
description: The name you want to show for this file in the uri.
schema:
example: FactSet.png
type: string
responses:
'200':
description: OK
'404':
description: Not Found
tags:
- Ofs
/ofs/v2/partners/{id}:
get:
summary: Factset Retrieve a specific Partner record.
parameters:
- name: id
in: path
required: true
description: Globally unique identifier (GUID) of a partner record
schema:
example: caa0ee0f-c0fe-427e-9596-491e6c527b3f
type: string
pattern: >-
\{?[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}\}?
responses:
'200':
$ref: '#/definitions/GetPartnerDto'
'404':
description: Partner record was not found.
tags:
- Ofs
/ofs/v2/partners:
get:
summary: Factset Retrieve a collection of Partner records.
parameters:
- name: limit
in: query
description: Limit the amount of records per page
type: integer
default: 10
- name: page
in: query
description: Select which page to show
type: integer
default: 1
minimum: 1
responses:
'200':
description: >-
A JSON representation of collection of Partner records. Might be
empty.
schema:
items:
allOf:
- $ref: '#/definitions/GetPartnerDto'
type: array
headers:
X-Pagination:
description: >-
A JSON containing pagination information. (e.g
totalCount,pageSize,currentPage,totalPages,previousPageLink and
nextPageLink)
type: string
'422':
description: >-
Unprocessable entity. Validation error response containing the
errors in a human readable form.
schema:
items:
type: string
type: array
tags:
- Ofs
/ofs/v2/partners/search:
post:
summary: Factset Retrieve a collection of Partner records.
parameters:
- name: body
in: body
schema:
$ref: '#/definitions/PostPartnerSearchDto'
type: json
responses:
'200':
description: >-
A JSON representation of collection of Partner records. Might be
empty.
schema:
items:
allOf:
- $ref: '#/definitions/GetPartnerDto'
type: array
headers:
X-Pagination:
description: >-
A JSON containing pagination information. (e.g
totalCount,pageSize,currentPage,totalPages,previousPageLink and
nextPageLink)
type: string
'422':
description: >-
Unprocessable entity. Validation error response containing the
errors in a human readable form.
schema:
items:
type: string
type: array
tags:
- Ofs
/ofs/v2/products/{id}:
get:
summary: Factset Retrieve a specific Product record.
parameters:
- name: id
in: path
required: true
description: Globally unique identifier (GUID) of a Product record
schema:
example: 89bba0ab-b123-4766-8a7b-9a174a453571
type: string
pattern: >-
\{?[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}\}?
responses:
'200':
description: A JSON representation of a Product record.
schema:
$ref: '#/definitions/GetProductDto'
'404':
description: Product record was not found.
tags:
- Ofs
/ofs/v2/products/types:
get:
summary: >-
Factset Retrieve a collection of the available Product Types along with the number of published products per type.
responses:
'200':
description: A JSON representation a collection of the available Product Types.
schema:
example:
- type: Data Feed
total: 0
- type: Solution
total: 0
- type: API
total: 0
items:
properties:
type:
type: string
enum:
- Data Feed
- API
- Solution
total:
type: integer
type: object
type: array
tags:
- Ofs
/ofs/v2/products:
get:
summary: Factset Retrieve a collection of Product records.
parameters:
- name: limit
in: query
description: Limit the amount of records per page
type: integer
default: 10
- name: page
in: query
description: Select which page to show
type: integer
default: 1
minimum: 1
responses:
'200':
description: >-
A JSON representation of collection of Product records. Might be
empty.
schema:
items:
allOf:
- $ref: '#/definitions/GetProductDto'
type: array
headers:
X-Pagination:
description: >-
A JSON containing pagination information. (e.g
totalCount,pageSize,currentPage,totalPages,previousPageLink and
nextPageLink)
type: string
'422':
description: >-
Unprocessable entity. Validation error response containing the
errors in a human readable form.
schema:
items:
type: string
type: array
tags:
- Ofs
/ofs/v2/products/search:
post:
summary: Factset Retrieve a collection of Product records.
parameters:
- name: body
in: body
schema:
$ref: '#/definitions/PostProductSearchDto'
type: json
responses:
'200':
description: >-
A JSON representation of collection of Product records. Might be
empty.
schema:
items:
allOf:
- $ref: '#/definitions/GetProductDto'
type: array
headers:
X-Pagination:
description: >-
A JSON containing pagination information. (e.g
totalCount,pageSize,currentPage,totalPages,previousPageLink and
nextPageLink)
type: string
'422':
description: >-
Unprocessable entity. Validation error response containing the
errors in a human readable form.
schema:
items:
type: string
type: array
tags:
- Ofs
/ofs/v2/resources/{id}:
get:
summary: Factset Retrieve a specific Resource record.
parameters:
- name: id
in: path
required: true
description: Globally unique identifier (GUID) of a Resource record
schema:
example: 3d8410df-2b04-45fa-bc33-d2cc5418f293
type: string
pattern: >-
\{?[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}\}?
responses:
'200':
description: A JSON representation of an Resource record.
schema:
$ref: '#/definitions/GetResourceDto'
'404':
description: Resource record was not found.
tags:
- Ofs
/ofs/v2/resources:
get:
summary: Factset Retrieve a collection of Resource records.
parameters:
- name: limit
in: query
description: Limit the amount of records per page
type: integer
default: 10
- name: page
in: query
description: Select which page to show
type: integer
default: 1
minimum: 1
responses:
'200':
description: >-
A JSON representation of collection of Resource records. Might be
empty.
schema:
items:
allOf:
- $ref: '#/definitions/GetResourceDto'
type: array
headers:
X-Pagination:
description: >-
A JSON containing pagination information. (e.g
totalCount,pageSize,currentPage,totalPages,previousPageLink and
nextPageLink)
type: string
'422':
description: >-
Unprocessable entity. Validation error response containing the
errors in a human readable form.
schema:
items:
type: string
type: array
tags:
- Ofs
/ofs/v2/resources/search:
post:
summary: Factset Retrieve a collection of Resource records.
parameters:
- name: body
in: body
schema:
$ref: '#/definitions/PostResourceSearchDto'
type: json
responses:
'200':
description: >-
A JSON representation of collection of Resource records. Might be
empty.
schema:
items:
allOf:
- $ref: '#/definitions/GetResourceDto'
type: array
headers:
X-Pagination:
description: >-
A JSON containing pagination information. (e.g
totalCount,pageSize,currentPage,totalPages,previousPageLink and
nextPageLink)
type: string
'422':
description: >-
Unprocessable entity. Validation error response containing the
errors in a human readable form.
schema:
items:
type: string
type: array
tags:
- Ofs
/ofs/v2/resources/sections/{id}:
get:
summary: Factset Retrieve a specific Resources Section record.
parameters:
- name: id
in: path
required: true
description: Globally unique identifier (GUID) of a Resources Section record
schema:
example: 4c77e650-372b-4ab4-9acd-bbd237d52b74
type: string
pattern: >-
\{?[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}\}?
responses:
'200':
description: A JSON representation of a Resources Section record.
schema:
$ref: '#/definitions/GetResourcesSectionDto'
'404':
description: Resources Section record was not found.
tags:
- Ofs
/ofs/v2/resources/sections:
get:
summary: Factset Retrieve a collection of Resources Section records.
parameters:
- name: limit
in: query
description: Limit the amount of records per page
type: integer
default: 10
- name: page
in: query
description: Select which page to show
type: integer
default: 1
minimum: 1
responses:
'200':
description: >-
A JSON representation of collection of Resources Section records.
Might be empty.
schema:
items:
allOf:
- $ref: '#/definitions/GetResourcesSectionDto'
type: array
headers:
X-Pagination:
description: >-
A JSON containing pagination information. (e.g
totalCount,pageSize,currentPage,totalPages,previousPageLink and
nextPageLink)
type: string
'422':
description: >-
Unprocessable entity. Validation error response containing the
errors in a human readable form.
schema:
items:
type: string
type: array
tags:
- Ofs
/ofs/v2/resources/sections/search:
post:
summary: Factset Retrieve a collection of Resources Section records.
parameters:
- name: body
in: body
schema:
$ref: '#/definitions/PostResourcesSectionSearchDto'
type: json
responses:
'200':
description: >-
A JSON representation of collection of Resources Section records.
Might be empty.
schema:
items:
allOf:
- $ref: '#/definitions/GetResourcesSectionDto'
type: array
headers:
X-Pagination:
description: >-
A JSON containing pagination information. (e.g
totalCount,pageSize,currentPage,totalPages,previousPageLink and
nextPageLink)
type: string
'422':
description: >-
Unprocessable entity. Validation error response containing the
errors in a human readable form.
schema:
items:
type: string
type: array
tags:
- Ofs
definitions:
Marking:
properties:
state:
example: published
type: string
type: object
Document:
properties:
name:
type: string
description:
type: string
fileName:
type: string
url:
type: string
isFile:
type: boolean
isPublic:
type: boolean
order:
type: integer
section:
items:
properties:
id:
type: integer
name:
type: string
type: object
type: array
type: object
PostResourcesSectionSearchDto:
properties:
limit:
description: Limit the amount of records per page.
example: 10
type: integer
default: 10
maximum: 300
page:
description: Select which page to show.
example: 1
type: integer
default: 1
minimum: 1
sort:
description: Sort according to specific field value.
example: name:asc
type: string
default: name:asc
fields:
description: Fetch only specific fields. The fields' names separated by a comma.
example: name,order
type: string
search:
description: Search for terms in certain fields.
example: name:Data
type: string
filter:
description: Filter against specific field values.
example: order:1
type: string
type: object
GetResourcesSectionDto:
description: A Json representation of a Document Category record.
properties:
id:
example: 4c77e650-372b-4ab4-9acd-bbd237d52b74
type: string
name:
example: New Provider Resources
type: string
order:
example: 3
type: integer
created:
example: 1559578671
type: integer
updated:
example: 1559578671
type: integer
documents:
example:
id: 3d8410df-2b04-45fa-bc33-d2cc5418f293
name: Candidate Agreement--Exhibit A
fileName: Exhibit A.docx
description: >-
Template for Exhibit A to the new Candidate Agreement. Fill out this
document with a description of the product(s) for the Open=>FactSet
marketplace
url: >-
/media/download/resources/documents/c2e2394c-747e-422f-bc5d-b775b14833bd
order: 5
isFile: true
isPublic: true
categoryId: 4c77e650-372b-4ab4-9acd-bbd237d52b74
created: 1564487399
updated: 1568288463
items:
$ref: '#/definitions/GetResourceDto'
type: array
meta:
example:
documentsTotal: 1
documentsPrivate: 0
items:
properties:
documentsTotal:
type: integer
documentsPrivate:
type: integer
type: object
type: array
type: object
PostResourceSearchDto:
properties:
limit:
description: Limit the amount of records per page.
example: 10
type: integer
default: 10
maximum: 300
page:
description: Select which page to show.
example: 1
type: integer
default: 1
minimum: 1
sort:
description: Sort according to specific field value.
example: name:desc
type: string
default: name:asc
fields:
description: Fetch only specific fields. The fields' names separated by a comma.
example: name,fileName,isPublic,url
type: string
search:
description: Search for terms in certain fields.
example: description:Template,name:Template,fileName:Template
type: string
filter:
description: Filter against specific field values.
example: isFile:true
type: string
type: object
GetResourceDto:
description: A Json representation of a Document record.
properties:
id:
example: 3d8410df-2b04-45fa-bc33-d2cc5418f293
type: string
name:
example: Candidate Agreement--Exhibit A
type: string
fileName:
example: Exhibit A.docx
type: string
description:
example: >-
Template for Exhibit A to the new Candidate Agreement. Fill out this
document with a description of the product(s) for the Open:FactSet
marketplace
type: string
url:
example: >-
/media/download/resources/documents/c2e2394c-747e-422f-bc5d-b775b14833bd
type: string
order:
example: 5
type: integer
isFile:
example: true
type: boolean
isPublic:
example: true
type: boolean
categoryId:
example: 4c77e650-372b-4ab4-9acd-bbd237d52b74
type: string
created:
example: 1564487399
type: integer
updated:
example: 1568288463
type: integer
type: object
PostAttributesGroupSearchDto:
properties:
limit:
description: Limit the amount of records per page.
example: 10
type: integer
default: 10
maximum: 300
page:
description: Select which page to show.
example: 1
type: integer
default: 1
minimum: 1
sort:
description: Sort according to specific field value.
example: name:asc
type: string
default: name:asc
fields:
description: Fetch only specific fields. The fields' names separated by a comma.
example: name,prodType
type: string
search:
description: Search for terms in certain fields.
example: name:Country,prodType:Data Feed
type: string
filter:
description: Filter against specific field values.
example: name:Region/Country
type: string
type: object
GetAttributesGroupDto:
description: A Json representation of an Attributes Group record.
properties:
id:
example: fd8f12e9-aa8b-4c2a-9e2e-a212f3ec29e1
type: string
name:
example: Region/Country
type: string
prodType:
example: Data Feed
type: string
color:
example: tag-color-2
type: string
type:
example: checkbox
type: string
selection:
example: multi
type: string
created:
example: 1531815425
type: integer
updated:
example: 1531815425
type: integer
attributes:
example:
- id: 904eb623-2b58-4dba-8e81-61e2ef889bb5
name: Europe
groupId: fd8f12e9-aa8b-4c2a-9e2e-a212f3ec29e1
prodType: Data Feed
created: 1531815425
updated: 1531815425
isUsed: true
- id: 8edfdf11-ce9a-45e2-831a-e6d7717736c9
name: Global
groupId: fd8f12e9-aa8b-4c2a-9e2e-a212f3ec29e1
prodType: Data Feed
created: 1531815424
updated: 1531815424
isUsed: true
items:
properties:
name:
example: Europe
type: string
groupId:
example: fd8f12e9-aa8b-4c2a-9e2e-a212f3ec29e1
type: string
prodType:
example: Data Feed
type: string
id:
example: 904eb623-2b58-4dba-8e81-61e2ef889bb5
type: string
created:
example: 1531815425
type: integer
updated:
example: 1531815425
type: integer
isUsed:
example: true
type: boolean
type: object
type: array
type: object
PostAttributeSearchDto:
properties:
limit:
description: Limit the amount of records per page.
example: 10
type: integer
default: 10
maximum: 300
page:
description: Select which page to show.
example: 1
type: integer
default: 1
minimum: 1
sort:
description: Sort according to specific field value.
example: name:asc
type: string
default: name:asc
fields:
description: Fetch only specific fields. The fields' names separated by a comma.
example: name,groupId
type: string
search:
description: Search for terms in certain fields.
example: name:Global,name:Europe
type: string
filter:
description: Filter against specific field values.
example: name:Europe:Global
type: string
type: object
GetAttributeDto:
properties:
id:
example: 904eb623-2b58-4dba-8e81-61e2ef889bb5
type: string
name:
example: Europe
type: string
# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/factset/refs/heads/main/openapi/open-marketplace-openapi-original.yml