naftiko: 1.0.0-alpha2 info: label: FactSet Signals API — Events description: 'FactSet Signals API — Events. 10 operations. Lead operation: Events. Self-contained Naftiko capability covering one Factset business surface.' tags: - Factset - Events created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FACTSET_API_KEY: FACTSET_API_KEY capability: consumes: - type: http namespace: signals-events baseUri: https://api.factset.com/signals/v2 description: FactSet Signals API — Events business capability. Self-contained, no shared references. resources: - name: events-adaptive-cards path: /events/adaptive-cards operations: - name: geteventadaptivecards method: GET description: 'Fetch Microsoft''s Adaptive Cards, which includes headlines and event details data plus hyperlinks to FactSet reports, based on at least one of the following filtering parameters: `ids`, `portfolios`' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: posteventadaptivecards method: POST description: 'Fetch Microsoft''s Adaptive Cards, which includes headlines and event details data plus hyperlinks to FactSet reports, based on at least one of the following filtering parameters: `ids`, `portfolios`' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: events-adaptive-cards-eventId path: /events/adaptive-cards/{eventId} operations: - name: geteventadaptivecardbyid method: GET description: Fetch Microsoft's Adaptive Cards, which includes headlines and event details data plus hyperlinks to FactSet reports, for a single requested Signal event outputRawFormat: json outputParameters: - name: result type: object value: $. - name: events-details path: /events/details operations: - name: geteventdetails method: GET description: 'Fetch Signals event headlines plus all additional event details based on at least one of the following filtering parameters: `ids`, `portfolios`' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: posteventdetails method: POST description: 'Fetch Signals event headlines plus all additional event details for up to 1000 identifiers and at least one of the following filtering parameters: `ids`, `portfolios`' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: events-details-eventId path: /events/details/{eventId} operations: - name: geteventdetailbyid method: GET description: Fetch Signals event headlines plus all additional event details for a single requested Signal event outputRawFormat: json outputParameters: - name: result type: object value: $. - name: events-entities path: /events/entities operations: - name: getevententities method: GET description: Fetch FactSet entity IDs for events that match the filtering criteria outputRawFormat: json outputParameters: - name: result type: object value: $. - name: postevententities method: POST description: Fetch FactSet entity IDs for events that match the filtering criteria outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: events-headlines path: /events/headlines operations: - name: geteventheadlines method: GET description: 'Fetch Signals event headlines based on at least one of the following filtering parameters: `ids`, `portfolios`' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: posteventheadlines method: POST 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`' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: basic username: '{{env.FACTSET_USER}}' password: '{{env.FACTSET_PASS}}' exposes: - type: rest namespace: signals-events-rest port: 8080 description: REST adapter for FactSet Signals API — Events. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/events/adaptive-cards name: events-adaptive-cards description: REST surface for events-adaptive-cards. operations: - method: GET name: geteventadaptivecards description: 'Fetch Microsoft''s Adaptive Cards, which includes headlines and event details data plus hyperlinks to FactSet reports, based on at least one of the following filtering parameters: `ids`, `portfolios`' call: signals-events.geteventadaptivecards outputParameters: - type: object mapping: $. - method: POST name: posteventadaptivecards description: 'Fetch Microsoft''s Adaptive Cards, which includes headlines and event details data plus hyperlinks to FactSet reports, based on at least one of the following filtering parameters: `ids`, `portfolios`' call: signals-events.posteventadaptivecards with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/events/adaptive-cards/{eventid} name: events-adaptive-cards-eventid description: REST surface for events-adaptive-cards-eventId. operations: - method: GET name: geteventadaptivecardbyid description: Fetch Microsoft's Adaptive Cards, which includes headlines and event details data plus hyperlinks to FactSet reports, for a single requested Signal event call: signals-events.geteventadaptivecardbyid outputParameters: - type: object mapping: $. - path: /v1/events/details name: events-details description: REST surface for events-details. operations: - method: GET name: geteventdetails description: 'Fetch Signals event headlines plus all additional event details based on at least one of the following filtering parameters: `ids`, `portfolios`' call: signals-events.geteventdetails outputParameters: - type: object mapping: $. - method: POST name: posteventdetails description: 'Fetch Signals event headlines plus all additional event details for up to 1000 identifiers and at least one of the following filtering parameters: `ids`, `portfolios`' call: signals-events.posteventdetails with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/events/details/{eventid} name: events-details-eventid description: REST surface for events-details-eventId. operations: - method: GET name: geteventdetailbyid description: Fetch Signals event headlines plus all additional event details for a single requested Signal event call: signals-events.geteventdetailbyid outputParameters: - type: object mapping: $. - path: /v1/events/entities name: events-entities description: REST surface for events-entities. operations: - method: GET name: getevententities description: Fetch FactSet entity IDs for events that match the filtering criteria call: signals-events.getevententities outputParameters: - type: object mapping: $. - method: POST name: postevententities description: Fetch FactSet entity IDs for events that match the filtering criteria call: signals-events.postevententities with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/events/headlines name: events-headlines description: REST surface for events-headlines. operations: - method: GET name: geteventheadlines description: 'Fetch Signals event headlines based on at least one of the following filtering parameters: `ids`, `portfolios`' call: signals-events.geteventheadlines outputParameters: - type: object mapping: $. - method: POST name: 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`' call: signals-events.posteventheadlines with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: signals-events-mcp port: 9090 transport: http description: MCP adapter for FactSet Signals API — Events. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: fetch-microsoft-s-adaptive-cards-which description: 'Fetch Microsoft''s Adaptive Cards, which includes headlines and event details data plus hyperlinks to FactSet reports, based on at least one of the following filtering parameters: `ids`, `portfolios`' hints: readOnly: true destructive: false idempotent: true call: signals-events.geteventadaptivecards outputParameters: - type: object mapping: $. - name: fetch-microsoft-s-adaptive-cards-which-2 description: 'Fetch Microsoft''s Adaptive Cards, which includes headlines and event details data plus hyperlinks to FactSet reports, based on at least one of the following filtering parameters: `ids`, `portfolios`' hints: readOnly: true destructive: false idempotent: false call: signals-events.posteventadaptivecards with: body: tools.body outputParameters: - type: object mapping: $. - name: fetch-microsoft-s-adaptive-cards-which-3 description: Fetch Microsoft's Adaptive Cards, which includes headlines and event details data plus hyperlinks to FactSet reports, for a single requested Signal event hints: readOnly: true destructive: false idempotent: true call: signals-events.geteventadaptivecardbyid outputParameters: - type: object mapping: $. - name: fetch-signals-event-headlines-plus description: 'Fetch Signals event headlines plus all additional event details based on at least one of the following filtering parameters: `ids`, `portfolios`' hints: readOnly: true destructive: false idempotent: true call: signals-events.geteventdetails outputParameters: - type: object mapping: $. - name: fetch-signals-event-headlines-plus-2 description: 'Fetch Signals event headlines plus all additional event details for up to 1000 identifiers and at least one of the following filtering parameters: `ids`, `portfolios`' hints: readOnly: true destructive: false idempotent: false call: signals-events.posteventdetails with: body: tools.body outputParameters: - type: object mapping: $. - name: fetch-signals-event-headlines-plus-3 description: Fetch Signals event headlines plus all additional event details for a single requested Signal event hints: readOnly: true destructive: false idempotent: true call: signals-events.geteventdetailbyid outputParameters: - type: object mapping: $. - name: fetch-factset-entity-ids-events description: Fetch FactSet entity IDs for events that match the filtering criteria hints: readOnly: true destructive: false idempotent: true call: signals-events.getevententities outputParameters: - type: object mapping: $. - name: fetch-factset-entity-ids-events-2 description: Fetch FactSet entity IDs for events that match the filtering criteria hints: readOnly: true destructive: false idempotent: false call: signals-events.postevententities with: body: tools.body outputParameters: - type: object mapping: $. - name: fetch-signals-event-headlines-based description: 'Fetch Signals event headlines based on at least one of the following filtering parameters: `ids`, `portfolios`' hints: readOnly: true destructive: false idempotent: true call: signals-events.geteventheadlines outputParameters: - type: object mapping: $. - name: fetch-signals-event-headlines-based-2 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`' hints: readOnly: true destructive: false idempotent: false call: signals-events.posteventheadlines with: body: tools.body outputParameters: - type: object mapping: $.