openapi: 3.0.1
info:
title: Factset Natural Language Processing API
description: >-
APIs that leverage Natural Language Processing to help extract meaningful
data from unstructured text
contact:
name: FactSet Research Systems
url: https://developer.factset.com/contact
email: [email protected]
version: 1.3.0
license:
name: Apache License, Version 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://api.factset.com/cognitive/nlp/v1
tags:
- name: Ner
- name: Qna
- name: Summarization
- name: Themes
paths:
/themes:
post:
description: >-
Endpoint to extract themes from provided text. Optionally, can include
sentiment for each theme extracted. Please check the schema(s) for each
of the status codes for more details.
operationId: themesExtractThemes
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ThemesParametersRoot'
required: true
responses:
'202':
$ref: '#/components/responses/202'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'500':
$ref: '#/components/responses/500'
summary: Factset Endpoint to begin theme extraction job
tags:
- Themes
/themes/{id}:
get:
description: >-
Endpoint to obtain the results from the original themes task request.
The `id` parameter represents the identifier of the task generated from
the POST request which created the task. Once the task is complete, the
result can be fetched with this endpoint.
operationId: themesGetThemes
parameters:
- $ref: '#/components/parameters/id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ThemeSentimentsRoot'
description: OK
'202':
$ref: '#/components/responses/202'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
summary: Factset Endpoint to get a theme (and sentiments if requested) job result
tags:
- Themes
/themes/{id}/status:
get:
description: >-
Endpoint to obtain the completion status of the themes task request. The
`id` parameter represents the task.
operationId: themesGetStatus
parameters:
- $ref: '#/components/parameters/id'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/TaskRoot'
description: Created
headers:
Location:
$ref: '#/components/headers/Location'
'202':
$ref: '#/components/responses/202'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
summary: Factset Endpoint to get the completion status of a themes job
tags:
- Themes
/summarization/headline:
post:
parameters: []
operationId: summarizationHeadline
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SummarizationRequest'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/SummarizationResultID'
description: Unique Result ID
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/SummarizationHTTPError'
description: Access Denied
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/SummarizationHTTPError'
description: Internal Server Error
summary: Factset Endpoint to generate a headline from text
description: Generate a headline-length summary of plain text
tags:
- Summarization
/summarization/headline-and-summary:
post:
parameters: []
operationId: summarizationHeadlineAndSummary
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SummarizationRequest'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/SummarizationResultID'
description: Unique Result ID
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/SummarizationHTTPError'
description: Access Denied
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/SummarizationHTTPError'
description: Internal Server Error
summary: Factset Endpoint to summarize and generate a headline from text
description: >-
Generate both a paragraph-length, and headline-length summary of plain
text
tags:
- Summarization
/summarization/summary:
post:
parameters: []
operationId: summarizationSummary
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SummarizationRequest'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/SummarizationResultID'
description: Unique Result ID
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/SummarizationHTTPError'
description: Access Denied
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/SummarizationHTTPError'
description: Internal Server Error
summary: Factset Endpoint to summarize text
description: Generate a paragraph-length summary of plain text
tags:
- Summarization
/ner/entities:
post:
parameters: []
operationId: nerEntities
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NERInputSchema'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/NERResponseSchema'
description: Successful response
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/NERResponseSchema'
description: Validation error
summary: Factset Endpoint to detect entities from text
description: Detect entities (People, Places, Organizations, etc.) in plain text
tags:
- Ner
/summarization/result/{resultId}:
get:
operationId: summarizationResult
parameters:
- in: path
name: resultId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SummarizationResult'
description: Successful response
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Access Denied
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Not found
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Internal Server Error
summary: Factset Endpoint to obtain result of a particular summarization job
description: >-
Retrieve the summarization result from a job started with the other
summarization endpoints
tags:
- Summarization
/qna/answers:
post:
description: >-
Endpoint to create a task submission by providing plain text and
question(s). The underlying model will answer the question. The created
task needs to be polled to obtain the results. Please check the
schema(s) for each of the status codes for more details about the task.
operationId: qnaPostQuestion
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/QnAAnswerParametersRoot'
required: true
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/TaskRoot'
description: Accepted
headers:
Location:
description: >-
The `Location` response header indicates the URL to redirect a
page to.
required: true
schema:
type: string
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPErrorRoot'
description: >-
The browser (or proxy) sent a request that this server could not
understand.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPErrorRoot'
description: >-
The server could not verify that you are authorized to access the
URL requested. You either supplied the wrong credentials (e.g. a bad
password), or your browser doesn't understand how to supply the
credentials required.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPErrorRoot'
description: >-
The server encountered an internal error and was unable to complete
your request. Either the server is overloaded or there is an error
in the application.
summary: Factset Endpoint to submit a question for answer(s)
tags:
- Qna
/qna/answers/{id}:
get:
description: >-
Endpoint to obtain the results from the original Q&A task request. The
`id` parameter represents the identifier from the task and comes from
the POST request which created the task. Once the task is complete, the
result can be fetched with this endpoint.
operationId: qnaGetAnswers
parameters:
- description: >-
Identifier from the Question & Answer task and comes from the POST
request which created the task
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/QnAAnswerRoot'
description: OK
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/TaskRoot'
description: Accepted
headers:
Location:
description: >-
The `Location` response header indicates the URL to redirect a
page to.
required: true
schema:
type: string
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPErrorRoot'
description: >-
The server could not verify that you are authorized to access the
URL requested. You either supplied the wrong credentials (e.g. a bad
password), or your browser doesn't understand how to supply the
credentials required.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPErrorRoot'
description: >-
The requested URL was not found on the server. If you entered the
URL manually please check your spelling and try again.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPErrorRoot'
description: >-
The server encountered an internal error and was unable to complete
your request. Either the server is overloaded or there is an error
in the application.
summary: Factset Endpoint to get the answer(s)
tags:
- Qna
/qna/answers/{id}/status:
get:
description: >-
Endpoint to obtain the status of the Q&A task request. The `id`
parameter represents the identifier of the task created and comes from
the POST request which created the task.
operationId: qnaGetStatus
parameters:
- description: >-
Identifier from the Question & Answer task and comes from the POST
request which created the task
in: path
name: id
required: true
schema:
type: string
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/TaskRoot'
description: Created
headers:
Location:
description: >-
The `Location` response header indicates the URL to redirect a
page to.
required: true
schema:
type: string
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/TaskRoot'
description: Accepted
headers:
Location:
description: >-
The `Location` response header indicates the URL to redirect a
page to.
required: true
schema:
type: string
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPErrorRoot'
description: >-
The server could not verify that you are authorized to access the
URL requested. You either supplied the wrong credentials (e.g. a bad
password), or your browser doesn't understand how to supply the
credentials required.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPErrorRoot'
description: >-
The requested URL was not found on the server. If you entered the
URL manually please check your spelling and try again.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPErrorRoot'
description: >-
The server encountered an internal error and was unable to complete
your request. Either the server is overloaded or there is an error
in the application.
summary: Factset Endpoint to get the completion status for a Q&A request
tags:
- Qna
components:
headers:
Location:
description: The `Location` response header indicates the URL to redirect a page to.
schema:
type: string
parameters:
id:
description: Long running task identifier
in: path
name: id
required: true
schema:
type: string
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/TaskRoot'
description: Accepted
headers:
Location:
$ref: '#/components/headers/Location'
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPErrorRoot'
description: >-
The browser (or proxy) sent a request that this server could not
understand.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPErrorRoot'
description: >-
The server could not verify that you are authorized to access the URL
requested. You either supplied the wrong credentials (e.g. a bad
password), or your browser doesn't understand how to supply the
credentials required.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPErrorRoot'
description: >-
description: The requested URL was not found on the server. If you
entered the URL manually please check your spelling and try again.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPErrorRoot'
description: >-
The server encountered an internal error and was unable to complete your
request. Either the server is overloaded or there is an error in the
application.
schemas:
QnAAnswer:
description: Schema that defines the answer with a confidence score.
properties:
answer:
description: The machine-generated answer to the question
example: Joel Wilson
type: string
score:
description: The confidence score associated to the answer
example: 0.8831543922424316
type: number
required:
- answer
- score
type: object
QnAAnswerParameters:
description: >-
Schema that defines the parameters needed to be supplied for generating
answer(s).
properties:
input:
description: The text input that provides the context
example: >2
Matchbox.io Uses Voice-First Games as A Natural Way of Learning
matchbox.ioCredit: matchbox.io
Alexa and gaming have been rubbing shoulders since day one. From
guiding children through LEGO adventures to multi-player trivia
games for bored drivers, Voice has proven to be the new frontier of
gaming.
When voice assistants first bobbed into the mainstream, marketing
solution architect and data scientist Joel Wilson immediately saw
the potential of Voice not only for games, but for education. He
started his venture with the Alexa skill Question of the Day, a
simple trivia game that poses a different question each day. Over
4,000 five-star reviews and hundreds of thousands of users later, it
has become a routine skill for people happy to learn something new
every day.
"We're on a mission to enable frictionless learning," Wilson told
Amazon. "We've just scratched the surface of how we can do that with
voice-first games."
Meet matchbox.io
In 2017, Wilson founded the voice-first gaming company matchbox.io,
dedicated to creating interactive, educational experiences through
Amazon Alexa and, more recently, Samsung Bixby. In just a few years,
matchbox.io has become a recognized leader in educational games on
voice-first devices.
With Question of the Day growing into one of the most popular and
highest rated skills in the Alexa Skill Store, Wilson and his team
of Data Scientists and Education Innovators immersed themselves in
helping people learn more about the world through Voice. Before
long, they launched another educational skill called Kids Quiz.
Kids Quiz poses new questions every day for children ages 5-12, from
animals and science to brainteasers and fun facts. They can also
collect stars and unlock surprises as they go. Another addition to
the matchbox.io repertoire is Three Questions, which provides, well,
three questions a day rather than just one. Like their other skills,
players can earn points and unlock bonus content.
With three successful voice-first experiences under their belt,
matchbox.io is marching forward with their mission to leverage Voice
to disperse a little bit more knowledge to their users every single
day.
Why Voice for learning?
At this point, the question is almost rhetorical. We've seen games
capture the short attention spans of children, teach stubborn
students and professionals new skills, and hold the curiosity of
busy adults for decades. With Voice, the captivating effect of
gaming is multiplied by the prospect of playing with increasingly
less effort. There are no controls to untangle (or fight over), no
keyboard to pound repeatedly, and no limitation for people with
limited vision or mobility.
"Voice is the perfect, most accessible interface for gaming," says
Wilson in an Amazon blog post. "We can tailor the experience to
customers wants and needs, so they can learn something quick, hear
more in-depth info about a particular fact, or settle in for an
extended game play."
With over 6 million users playing his company's voice-first gaming
apps, it's clear that the marriage between Voice and traditional
learning is set for the long-run. The question now is which gaming
companies will take advantage of it.
The future of voice-first gaming
Using Voice for interactive learning is all well and good, but what
about the business side of things?
Wilson knows a few things about this too. Feeling confident about
their skills' continued popularity, they made a move to monetize
them with In-Skill Purchasing (ISP). This feature allows the company
to fund the creation of more educational experiences by adding paid,
premium content to their apps. This way, they can keep their users
engaged while safely sustaining their business.
Wilson believes that this is the future of voice-first gaming
industry. In his eyes, all you need is a good idea, quality content,
and the smarts to know how and when to monetize it. As voice
assistants and devices evolve, however, so will the methods to run a
successful business with them. But Wilson is already dabbling in new
ways to make his passion for learning and gaming a long-term
venture.
"There's still a lot to be explored with Voice gaming," says Wilson.
To learn so much more about Voice and gaming experiences, you'll be
excited to know that Wilson will be at VOICE Summit to share design
and strategy insights alongside equally bright minds from Gamefuly,
Drivetime, and V Group Inc.
Don't miss their talk "Gaming in the voice-first era," and make sure
you stick around for hundreds more sessions, workshops, expert
panels, and our exclusive VOICE Awards dinner. It's the world's
largest voice tech event and we're pulling out all the stops. To
join us at our annual showdown and have a summer you'll never
forget, snatch one of the very last tickets!
maxLength: 10000
minLength: 1
type: string
numberOfAnswers:
default: 2
description: Number of answers for the question
example: 2
maximum: 10
minimum: 1
type: integer
question:
description: Question associated to the provided context
example: Who is the founder?
maxLength: 1000
minLength: 1
type: string
required:
- input
- question
type: object
QnAAnswerParametersRoot:
description: >-
Schema that envelopes the `QnAAnswerParameters` and include additional
`meta` (if available).
properties:
data:
$ref: '#/components/schemas/QnAAnswerParameters'
meta:
description: Any associated metadata
type: object
required:
- data
type: object
QnAAnswerRoot:
description: >-
Schema that envelopes the `QnAAnswer` and include additional `meta` (if
available).
properties:
data:
items:
$ref: '#/components/schemas/QnAAnswer'
type: array
meta:
description: Any associated metadata
type: object
required:
- data
type: object
ErrorSource:
description: Schema that defines the source of the error.
properties:
parameter:
description: >-
A string indicating which path or URI query parameter caused the
error.
type: string
pointer:
description: More details pointing to the error.
type: string
required:
- parameter
- pointer
type: object
HTTPError:
description: Schema that defines HTTP error(s).
properties:
code:
description: HTTP Status Code
type: string
detail:
description: Error detail (if any)
type: string
id:
description: The unique identifier detailing the error(s)
format: uuid
type: string
source:
$ref: '#/components/schemas/ErrorSource'
title:
description: Error title
type: string
required:
- code
- id
- title
type: object
HTTPErrorRoot:
description: Schema that defines HTTP error(s).
properties:
errors:
description: List of errors
items:
$ref: '#/components/schemas/HTTPError'
type: array
required:
- errors
type: object
SummarizationRequest:
properties:
text:
description: The text that needs to be summarized
example: >-
Advanced Energy Transforms Indoor Farming With Intelligent New
Lighting Power and Control System Friday, December 11, 2020 01:00:00
PM (GMT)Innovative technology breaks down barriers to indoor,
vertical and greenhouse farming by reducing power consumption,
cutting costs and increasing crop yield Advanced Energy (Nasdaq:
AEIS) – a global leader in highly engineered, precision power
conversion, measurement, and control solutions – today unveiled its
newest lighting and power control system for indoor, vertical and
greenhouse farming. This press release features multimedia. Advanced
Energy's new Artesyn iTS provides the industry's first solution for
switching or sharing a single power source between two different
rooms. This reduces installation costs by cutting the number of iHP
power supplies needed in half and it substantially reduces ongoing
utility costs. (Photo: Business Wire)AE's new lighting and power
system transforms the use of LED technology in horticultural
lighting systems, which plays a fundamental role in cutting-edge
farming practices that can address production challenges in food,
pharmaceutical ingredients, plants and flowers. Utilizing AE's
system, customers reduce their power conversion costs by as much as
50 percent, significantly lower installation and operating costs,
and increase the quality of crop yield. "Our groundbreaking
lighting, power and control system delivers significant improvements
over conventional lighting solutions and opens up new opportunities
for the industry," said Joe Voyles, vice president, industrial
marketing, at Advanced Energy. "We are transforming our customers'
operations by both reducing the amount of needed equipment and
improving the efficiency of the lighting systems, thereby reducing
cost and energy spend. Not only do these innovative new products
increase the efficiency and quality of fruit and vegetable
production, but they also open the door to establishing indoor
farming facilities in harsh environments anywhere in the world." The
new system consists of the patented Artesyn iTS (intelligent
Transfer Switch) and iHPS configurable power supply. Alongside
Artesyn's compact new 12 kW 300 VDC module, AE delivers a
cost-effective platform for the most advanced indoor farming
applications. The system is estimated to produce a 38 percent
savings to lighting power and control installation cost, while
eliminating substantial amounts of wasted energy. The new iHPS is a
"short" version of AE's market-leading iHP power supply. The shorter
design allows for more space within the lighting and power cabinet
for other crucial components, reduces the weight and cost, and
increases the life of the system. The new iTS provides the
industry's first solution for switching or sharing a single power
source between two different rooms. This reduces installation costs
by cutting the number of iHP power supplies needed in half and it
substantially reduces ongoing utility costs.
title: Text
type: string
required:
- text
type: object
SummarizationResult:
properties:
headline:
description: A short headline generated for the input text.
example: >-
Advanced Energy unveils new lighting and power control system for
indoor, vertical and greenhouse farming.
type: string
summary:
description: The generated summary for the input text.
example: >-
Advanced Energy unveiled its newest lighting and power control
system for indoor, vertical and greenhouse farming. The new system
consists of the patented Artesyn iTS (intelligent Transfer Switch)
and iHPS power supply. Alongside Artesyn's compact new 12 kW 300 VDC
module, AE delivers a cost-effective platform for the most advanced
indoor farming applications. The system is estimated to produce a 38
percent savings to lighting power and control installation cost,
while eliminating substantial amounts of wasted energy.
type: string
type: object
SummarizationResultID:
properties:
result_id:
description: ID for retrieving the summary result
title: ID
type: string
type: object
Task:
description: Schema that represents a long-running process/task.
properties:
id:
description: The task identifier
example: ca509a4a-2ec9-4770-817a-f1caac18c95c
format: uuid
type: string
startedAt:
description: The date time the task started (UTC).
example: '2022-10-31T16:31:30.423086'
format: date-time
type: string
status:
description: >
# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/factset/refs/heads/main/openapi/natural-language-processing-openapi-original.yml