openapi: 3.0.3 info: title: Factset Analytics Datastore About Headlines API description: Allow clients to fetch precalculated Analytics through predeterministic URLs. contact: name: FactSet Research Systems url: https://developer.factset.com/contact email: api@factset.com license: name: Apache License, Version 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 version: 1.0.0 servers: - url: https://api.factset.com description: Production - url: https://api-sandbox.factset.com description: Sandbox security: - basicAuth: [] tags: - name: Headlines paths: /events/headlines: get: tags: - Headlines x-factset-sdk-ignore: true operationId: getEventHeadlines description: 'Fetch Signals event headlines based on at least one of the following filtering parameters: `ids`, `portfolios`' parameters: - $ref: '#/components/parameters/createdParam' - $ref: '#/components/parameters/updatedParam' - $ref: '#/components/parameters/signalIdsParam' - $ref: '#/components/parameters/idsParam' - $ref: '#/components/parameters/portfoliosParam' - $ref: '#/components/parameters/themesParam' - $ref: '#/components/parameters/categoriesParam' - $ref: '#/components/parameters/relevanceScoreParam' - $ref: '#/components/parameters/sortParam' - $ref: '#/components/parameters/resolveIdentifiersParam' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/eventHeadlines' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errorResponse' '429': description: API Rate Limit Exceeded headers: Api-Version: $ref: '#/components/headers/Api-Version' Api-Supported-Versions: $ref: '#/components/headers/Api-Supported-Versions' RateLimit-Limit: $ref: '#/components/headers/RateLimit-Limit' RateLimit-Remaining: $ref: '#/components/headers/RateLimit-Remaining' RateLimit-Reset: $ref: '#/components/headers/RateLimit-Reset' content: application/json: schema: $ref: '#/components/schemas/rateLimitResponse' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/errorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: tags: - Headlines operationId: postEventHeadlines description: 'Fetch Signals event headlines based on the filtering criteria for up to 1000 identifiers and at least one of the following filtering parameters: `ids`, `portfolios`' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/eventRequestBody' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/eventHeadlines' '429': description: API Rate Limit Exceeded headers: Api-Version: $ref: '#/components/headers/Api-Version' Api-Supported-Versions: $ref: '#/components/headers/Api-Supported-Versions' RateLimit-Limit: $ref: '#/components/headers/RateLimit-Limit' RateLimit-Remaining: $ref: '#/components/headers/RateLimit-Remaining' RateLimit-Reset: $ref: '#/components/headers/RateLimit-Reset' content: application/json: schema: $ref: '#/components/schemas/rateLimitResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK /streetaccount/headlines: post: summary: Factset Retrieve Streetaccount Headlines for Given Filters description: This endpoint will pull all headlines produced by StreetAccount and the full story body will be returned by the data set. Filters can be specified via the endpoint below. tags: - Headlines operationId: getStreetAccountHeadlines requestBody: $ref: '#/components/requestBodies/saHeadlinesRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/searchResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/error' x-microcks-operation: delay: 0 dispatcher: FALLBACK /streetaccount/views/{id}/headlines: post: summary: Factset Retrieve Streetaccount Headlines for Given View description: This endpoint allows you to pull all headlines produced by StreetAccount for a saved view. The full story body will be returned by the data set. Views can be created via the Create Views endpoint. tags: - Headlines operationId: getStreetAccountHeadlinesByView requestBody: $ref: '#/components/requestBodies/saHeadlinesRequestByView' parameters: - in: path name: id example: SA News View schema: type: string required: true description: view id of the view to return headlines for responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/searchResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/error' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/error' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: error: type: object properties: meta: type: object example: example_value errors: type: array items: $ref: '#/components/schemas/errorObject' example: [] errorItem: type: object required: - id - code - title properties: id: type: string format: uuid example: abc123 code: type: string example: parameterError title: type: string example: Invalid type/value detail: type: string example: Value must be a valid UTC date/time that conforms to ISO 8601 format source: type: object properties: parameter: type: string example: example_value searchResponseArrayObject: type: object properties: docsStoryDateAndTime: type: string example: '2022-09-15T06:48:19Z' docsHeadlines: type: string example: Sample Headline docsId: type: string example: sa_story_3393235 docsPrimarySymbols: type: array items: type: string example: AAPL-US example: [] docsSymbols: type: array items: type: string example: AAPL-US example: [] docsSubjects: type: array items: type: string example: SA_EARNINGS example: [] docsStoryBody: type: string example: Sample Body docsReferenceUris: type: string example: Sample URI eventsMeta: type: object required: - signalRequestId - idResolutions - dateRange properties: signalRequestId: type: string format: uuid example: '500123' sort: type: array items: type: string example: [] pagination: type: object properties: total: type: integer isEstimatedTotal: type: boolean example: example_value idResolutions: $ref: '#/components/schemas/idResolutionsMeta' dateRange: type: object properties: created: $ref: '#/components/schemas/DateTimeInterval' updated: $ref: '#/components/schemas/DateTimeInterval' example: example_value eventRequestBody: type: object properties: created: allOf: - $ref: '#/components/schemas/DateTimeInterval' description: A date/time (UTC) interval for filtering signal events based on their creation date. Defaults to NOW - 7 days if omitted. Users with limited access can only provide the default or a smaller date window. example: example_value updated: allOf: - $ref: '#/components/schemas/DateTimeInterval' description: A date/time (UTC) interval for filtering signal events based on their last updated date. Defaults to NOW - 7 days if omitted. Users with limited access can only provide the default or a smaller date window. example: example_value signalIds: type: string description: Comma delimited string of signalIds example: dilutionTrigger,freeCashFlow ids: type: string description: Comma delimited string of identifiers. An identifier can be a ticker, FactSet entity id, CUSIP or ISIN. You must provide a list of identifiers either via a ids or a portfolios parameter. If both are provided, only ids filter is used. Users with limited access can use only the ids filter and provide at most 10 ids. example: FDS-US,AMZN-US portfolios: type: string description: Name of a portfolio file stored by FactSet. If the portfolio contains more than 1,000 ids, only the first 1,000 ids are processed (e.g. client:techstocks.ofdb). Please note that using this parameter requires full subscription to Signals API. example: example_value themes: type: string description: Comma delimited string of theme ids. Full list of signal themes can be viewed at /themes. example: example_value categories: type: string description: Comma delimited string of category ids. Full list of signal categories can be viewed at /categories. example: example_value userRelevanceScore: allOf: - $ref: '#/components/schemas/RelevanceScoreRange' description: A range for filtering signal events based on their relevancy score. example: example_value sort: type: string description: Comma delimited string of sortable attributes. The sort order for each sort attribute is ascending unless it is prefixed with a minus sign, in which case it is descending. example: example_value resolveIdentifiers: type: boolean description: The api will return resolved identifiers in the meta section of the response by default (true). If the parameter is false, the api will not attempt to resolve the identifiers. example: true saHeadlinesRequest: type: object properties: data: type: object properties: tickers: type: array items: $ref: '#/components/schemas/saHeadlinesRequestTickersObject' categories: type: array items: type: string example: Earnings regions: type: array items: type: string example: North America topics: type: array items: type: string example: Market Summaries sectors: type: array items: type: string example: Gold & Silver isPrimary: type: boolean example: true searchDate: type: object properties: start: type: string description: Start time for custom search. startTime must follow the ISO 8601 standard format, YYYY-MM-DDTHH:mm:ssZ (UTC). It also supports offsets [hh]:[mm] example: '2022-08-21T12:35:45Z' end: type: string description: End time for custom search. If end time is not present end time is automatically set to the time of the search. endTime must follow the ISO 8601 standard format, YYYY-MM-DDTHH:mm:ssZ (UTC). It also supports offsets [hh]:[mm] example: '2022-08-29T08:10:30Z' example: example_value meta: type: object properties: pagination: type: object description: Object defining pagination for the results pageable attribute. Offset-based strategy is used for Pagination. properties: limit: type: integer example: 50 default: 500 description: Non-negative maximum number of entries to return. offset: type: integer example: 100 default: 0 description: Non-negative number of entries to skip. example: example_value rateLimitResponse: title: Rate Limit Error Object description: Error returned if any of the user's rate limit have been reached. properties: message: type: string example: API rate limit exceeded saHeadlinesRequestTickersObject: type: object properties: name: type: string example: S&P 500 value: type: string example: SP50 type: type: string example: Index enum: - Index - ETF - Mutual_Fund - Portfolios searchResponse: type: object description: Properties in results objects are based on return values properties: data: type: object properties: results: type: array items: $ref: '#/components/schemas/searchResponseArrayObject' example: example_value meta: type: object properties: requestGuid: type: string pagination: type: object properties: total: type: integer example: 100 isEstimatedTotal: type: boolean example: false example: example_value errorResponse: type: object required: - message properties: message: type: string description: A short description of the error. example: There was an error processing your request. Please try again later. errors: type: array items: $ref: '#/components/schemas/errorItem' description: Optional list of errors. e.g. Validation errors for multiple parameters example: [] DateTimeInterval: type: object description: 'Represents a valid date/time (UTC) interval. The upper bound of the interval is represented by the attribute **gt** or **gte**. The lower bound of the interval is presented by **lt** or **lte** The interval can contain either of the bounds or both. e.g. { "gt": "2021-05-01T00:00:00.000Z", "lt": "2021-05-08T00:00:00.000Z" } ' minProperties: 1 properties: gt: $ref: '#/components/schemas/DateTime' gte: $ref: '#/components/schemas/DateTime' lt: $ref: '#/components/schemas/DateTime' lte: $ref: '#/components/schemas/DateTime' errorObject: type: object properties: id: type: string example: abc123 title: type: string example: Example Title code: type: string example: example_value saHeadlinesRequestByView: type: object properties: data: type: object properties: searchDate: type: object properties: start: type: string description: Start time for custom search. startTime must follow the ISO 8601 standard format, YYYY-MM-DDTHH:mm:ssZ (UTC). It also supports offsets [hh]:[mm] example: '2022-08-21T12:35:45Z' end: type: string description: End time for custom search. If end time is not present end time is automatically set to the time of the search. endTime must follow the ISO 8601 standard format, YYYY-MM-DDTHH:mm:ssZ (UTC). It also supports offsets [hh]:[mm] example: '2022-08-29T08:10:30Z' example: example_value meta: type: object properties: pagination: type: object description: Object defining pagination for the results pageable attribute. Offset-based strategy is used for Pagination. properties: limit: type: integer example: 50 default: 500 description: Non-negative maximum number of entries to return. offset: type: integer example: 100 default: 0 description: Non-negative number of entries to skip. example: example_value DateTime: type: string format: date-time description: A date/time string in ISO 8601 format. example: '2021-01-01T00:00:00Z' idResolutionsMeta: type: object properties: tickerRegion: type: object additionalProperties: type: string nullable: true example: example_value regionalPermId: type: object additionalProperties: type: string nullable: true example: '500123' eventHeadlineDataItem: type: object required: - requestId - signalId - signalName - theme - source - eventId - eventDate - summary - userRelevanceScore properties: requestId: type: string description: The id that was requested. This can be a ticker, cusip or factset entity id. example: '500123' companyName: type: string description: Name of the company reported in signal. Omitted if null. example: example_value signalId: type: string description: Signal Id for this event. e.g. dilutionTrigger example: '500123' signalName: type: string description: Signal Name for this event. e.g. dilutionTrigger example: example_value theme: type: string description: Theme name of the signal for this event. e.g. Debt Capital Structure example: example_value source: type: string description: Primary data provider for the signal this event belongs to. e.g. FactSet, Bitvore example: example_value eventId: type: string format: uuid description: A unique id for this event. example: '500123' eventDate: type: string format: date description: The UTC date/time of the event in ISO 8601 format. example: '2026-01-15' summary: type: string description: One sentence summary of the event. example: example_value userRelevanceScore: type: number format: float description: Relevancy score of this event for the requesting user on a scale of 0 to 1. Higher value indicates more relevancy. example: 42.5 created: type: string format: date-time description: Date/Time in UTC the event was first recorded in our data store. example: '2021-04-26T06:39:40.094Z' eventHeadlines: type: object required: - data - meta properties: data: type: array items: $ref: '#/components/schemas/eventHeadlineDataItem' example: [] meta: $ref: '#/components/schemas/eventsMeta' errors: type: array items: $ref: '#/components/schemas/errorItem' example: [] RelevanceScoreRange: type: object description: 'Represents a valid range for user relevancy score for signal events. The upper bound of the range is represented by the attribute **gt** or **gte**. The lower bound of the range is presented by **lt** or **lte** The range can contain either of the bounds or both. e.g. { "gt": 0.4, "lt": 0.8 } ' minProperties: 1 properties: gt: type: number format: float example: 42.5 gte: type: number format: float example: 42.5 lt: type: number format: float example: 42.5 lte: type: number format: float example: 42.5 parameters: resolveIdentifiersParam: name: resolveIdentifiers in: query schema: type: boolean description: The api will return resolved identifiers in the meta section of the response by default (true). If the parameter is false, the api will not attempt to resolve the identifiers. example: true categoriesParam: name: categories in: query schema: type: string description: Comma delimited string of category ids. Full list of signal categories can be viewed at /categories. relevanceScoreParam: name: userRelevanceScore in: query schema: $ref: '#/components/schemas/RelevanceScoreRange' style: deepObject explode: true description: A range for filtering signal events based on their relevancy score. examples: lowerBound: value: gte: 0 upperBound: value: lt: 1 bothBounds: value: gt: 0 lt: 1 signalIdsParam: name: signalIds in: query schema: type: string description: Comma delimited string of signalIds example: dilutionTrigger,freeCashFlow updatedParam: name: updated in: query schema: $ref: '#/components/schemas/DateTimeInterval' style: deepObject explode: true description: A date/time (UTC) interval for filtering signal events based on their last updated date. Defaults to NOW - 7 days if omitted. Users with limited access can only provide the default or a smaller date window. examples: default: value: {} lowerBound: $ref: '#/components/examples/lowerBound' upperBound: $ref: '#/components/examples/upperBound' bothBounds: $ref: '#/components/examples/bothBounds' createdParam: name: created in: query schema: $ref: '#/components/schemas/DateTimeInterval' style: deepObject explode: true description: A date/time (UTC) interval for filtering signal events based on their creation date. Defaults to NOW - 7 days if omitted. Users with limited access can only provide the default or a smaller date window. examples: default: value: {} lowerBound: $ref: '#/components/examples/lowerBound' upperBound: $ref: '#/components/examples/upperBound' bothBounds: $ref: '#/components/examples/bothBounds' idsParam: name: ids in: query schema: type: string description: Comma delimited string of identifiers. An identifier can be a ticker, FactSet entity id, CUSIP or ISIN. You must provide a list of identifiers either via a ids or a portfolios parameter. If both are provided, only ids filter is used. Users with limited access can use only the ids filter and provide at most 10 ids. example: FDS-US,AMZN-US sortParam: name: sort in: query schema: type: string description: Comma delimited string of sortable attributes. The sort order for each sort attribute is ascending unless it is prefixed with a minus sign, in which case it is descending. If sort is not provided, the default sort applied is -userRelevanceScore (userRelevanceScore in descending order). example: -userRelevanceScore,-eventDate themesParam: name: themes in: query schema: type: string description: Comma delimited string of theme ids. Full list of signal themes can be viewed at /themes. portfoliosParam: name: portfolios in: query schema: type: string description: Name of a portfolio file stored by FactSet. If the portfolio contains more than 1,000 ids, only the first 1,000 ids are processed (e.g. client:techstocks.ofdb). Please note that using this parameter requires full subscription to Signals API. examples: lowerBound: value: gt: '2022-01-01T00:00:00.000Z' searchDate: summary: Using searchDate value: data: tickers: - name: S&P 500 value: SP50 type: Index categories: - Earnings regions: - North America topics: - Market Summaries sectors: - Gold & Silver isPrimary: true searchDate: start: '2022-08-21T12:35:45Z' end: '2022-08-29T08:10:30Z' meta: pagination: limit: 50 offset: 100 upperBound: value: lt: '2022-01-02T00:00:00.000Z' searchDateid: summary: Using searchDate with id value: data: searchDate: start: '2022-08-21T12:35:45Z' end: '2022-08-29T08:10:30Z' meta: pagination: limit: 50 offset: 100 bothBounds: value: gt: '2022-01-01T00:00:00.000Z' lt: '2022-01-02T00:00:00.000Z' headers: RateLimit-Limit: description: Total number of requests allowed in a specific time window. The time window is two seconds for regular API users and one week for limited access users. schema: type: integer example: 5 RateLimit-Reset: description: Time remaining (in seconds) until the quota is reset. schema: type: integer example: 1000 RateLimit-Remaining: description: Remaining number of requests in the current time window. schema: type: integer example: 4 Api-Version: description: Full semantic version of the API. schema: type: string example: 1.0.0 Api-Supported-Versions: description: Comma-separated list of supported major versions. schema: type: string example: '1' requestBodies: saHeadlinesRequest: content: application/json: schema: $ref: '#/components/schemas/saHeadlinesRequest' examples: Using searchDate: $ref: '#/components/examples/searchDate' description: Filter Body which needs to be sent with request saHeadlinesRequestByView: content: application/json: schema: $ref: '#/components/schemas/saHeadlinesRequestByView' examples: Using searchDate with id: $ref: '#/components/examples/searchDateid' description: View body which needs to be sent with request securitySchemes: basicAuth: type: http scheme: basic externalDocs: url: https://developer.factset.com/api-catalog/analytics-datastore-api description: API Documentation