naftiko: 1.0.0-alpha2 info: label: FactSet Vermilion API — Code description: 'FactSet Vermilion API — Code. 4 operations. Lead operation: Factset Gets a Datasource. Self-contained Naftiko capability covering one Factset business surface.' tags: - Factset - Code created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FACTSET_API_KEY: FACTSET_API_KEY capability: consumes: - type: http namespace: vermilion-code baseUri: '' description: FactSet Vermilion API — Code business capability. Self-contained, no shared references. resources: - name: v1-tenant-data-sources-dataSourceCode path: /v1/{tenant}/data-sources/{dataSourceCode} operations: - name: getdatasourcebycode method: GET description: Factset Gets a Datasource outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: tenant in: path type: string description: The code of the tenancy required: true - name: dataSourceCode in: path type: string description: The code of the datasource required: true - name: v1-tenant-data-sources-dataSourceCode-data path: /v1/{tenant}/data-sources/{dataSourceCode}/data operations: - name: getdatasourcedata method: GET description: Factset Gets the Data for the Datasource outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: tenant in: path type: string description: The code of the tenancy required: true - name: dataSourceCode in: path type: string description: The code of the datasource required: true - name: entityCodes in: query type: string description: 'A series of query parameter used to filter the data for a datasource. This represents the entities for the datasource. E.g.: entityCodes=ACCOUNT&entityCodes=FUN' - name: entityKeys in: query type: string description: 'A series of query parameter used to filter the data for a datasource. This is the entity key value for an entity selection. E.g.: entityKeys=1&entityKeys=Test2' - name: _paginationLimit in: query type: integer description: Non-negative maximum number of entries to return. Default is 25 - name: _paginationOffset in: query type: integer description: Non-negative number of entries to skip. Default is 0 - name: v1-tenant-entities-entityCode-values path: /v1/{tenant}/entities/{entityCode}/values operations: - name: getentityvaluesbycode method: GET description: Factset Gets the Entity Values outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: tenant in: path type: string description: The code of the tenancy required: true - name: entityCode in: path type: string description: The code of the entity required: true - name: _sort in: query type: array description: The entity field to sort on. Can only be sorted on entity key, description or secondary key fields. Append "-" to sort in descending order. If no parameter give - name: _paginationLimit in: query type: integer description: Non-negative maximum number of entries to return. Default is 25 - name: _paginationOffset in: query type: integer description: Non-negative number of entries to skip. Default is 0 - name: showAll in: query type: integer description: Whether to show all field values for each entity row. Value should either be 1 or 0. Default is 0 (false) - name: v1-tenant-reports-reportDefinitionCode path: /v1/{tenant}/reports/{reportDefinitionCode} operations: - name: getreportdefinitionbycode method: GET description: Factset Gets a Report Definition outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: tenant in: path type: string description: The code of the tenancy required: true - name: reportDefinitionCode in: path type: string description: The code of the report definition required: true authentication: type: bearer token: '{{env.FACTSET_API_KEY}}' exposes: - type: rest namespace: vermilion-code-rest port: 8080 description: REST adapter for FactSet Vermilion API — Code. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/{tenant}/data-sources/{datasourcecode} name: v1-tenant-data-sources-datasourcecode description: REST surface for v1-tenant-data-sources-dataSourceCode. operations: - method: GET name: getdatasourcebycode description: Factset Gets a Datasource call: vermilion-code.getdatasourcebycode with: tenant: rest.tenant dataSourceCode: rest.dataSourceCode outputParameters: - type: object mapping: $. - path: /v1/v1/{tenant}/data-sources/{datasourcecode}/data name: v1-tenant-data-sources-datasourcecode-data description: REST surface for v1-tenant-data-sources-dataSourceCode-data. operations: - method: GET name: getdatasourcedata description: Factset Gets the Data for the Datasource call: vermilion-code.getdatasourcedata with: tenant: rest.tenant dataSourceCode: rest.dataSourceCode entityCodes: rest.entityCodes entityKeys: rest.entityKeys _paginationLimit: rest._paginationLimit _paginationOffset: rest._paginationOffset outputParameters: - type: object mapping: $. - path: /v1/v1/{tenant}/entities/{entitycode}/values name: v1-tenant-entities-entitycode-values description: REST surface for v1-tenant-entities-entityCode-values. operations: - method: GET name: getentityvaluesbycode description: Factset Gets the Entity Values call: vermilion-code.getentityvaluesbycode with: tenant: rest.tenant entityCode: rest.entityCode _sort: rest._sort _paginationLimit: rest._paginationLimit _paginationOffset: rest._paginationOffset showAll: rest.showAll outputParameters: - type: object mapping: $. - path: /v1/v1/{tenant}/reports/{reportdefinitioncode} name: v1-tenant-reports-reportdefinitioncode description: REST surface for v1-tenant-reports-reportDefinitionCode. operations: - method: GET name: getreportdefinitionbycode description: Factset Gets a Report Definition call: vermilion-code.getreportdefinitionbycode with: tenant: rest.tenant reportDefinitionCode: rest.reportDefinitionCode outputParameters: - type: object mapping: $. - type: mcp namespace: vermilion-code-mcp port: 9090 transport: http description: MCP adapter for FactSet Vermilion API — Code. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: factset-gets-datasource description: Factset Gets a Datasource hints: readOnly: true destructive: false idempotent: true call: vermilion-code.getdatasourcebycode with: tenant: tools.tenant dataSourceCode: tools.dataSourceCode outputParameters: - type: object mapping: $. - name: factset-gets-data-datasource description: Factset Gets the Data for the Datasource hints: readOnly: true destructive: false idempotent: true call: vermilion-code.getdatasourcedata with: tenant: tools.tenant dataSourceCode: tools.dataSourceCode entityCodes: tools.entityCodes entityKeys: tools.entityKeys _paginationLimit: tools._paginationLimit _paginationOffset: tools._paginationOffset outputParameters: - type: object mapping: $. - name: factset-gets-entity-values description: Factset Gets the Entity Values hints: readOnly: true destructive: false idempotent: true call: vermilion-code.getentityvaluesbycode with: tenant: tools.tenant entityCode: tools.entityCode _sort: tools._sort _paginationLimit: tools._paginationLimit _paginationOffset: tools._paginationOffset showAll: tools.showAll outputParameters: - type: object mapping: $. - name: factset-gets-report-definition description: Factset Gets a Report Definition hints: readOnly: true destructive: false idempotent: true call: vermilion-code.getreportdefinitionbycode with: tenant: tools.tenant reportDefinitionCode: tools.reportDefinitionCode outputParameters: - type: object mapping: $.