naftiko: 1.0.0-alpha2 info: label: Sorsa API — Tweets description: 'Sorsa API — Tweets. 8 operations. Lead operation: Article Data. Self-contained Naftiko capability covering one Sorsa business surface.' tags: - Sorsa - Tweets created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SORSA_API_KEY: SORSA_API_KEY capability: consumes: - type: http namespace: sorsa-tweets baseUri: https://api.sorsa.io/v3 description: Sorsa API — Tweets business capability. Self-contained, no shared references. resources: - name: article path: /article operations: - name: post method: POST description: Article Data outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: comments path: /comments operations: - name: post method: POST description: Tweet Comments outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: quotes path: /quotes operations: - name: post method: POST description: Quote Tweets outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: retweeters path: /retweeters operations: - name: post method: POST description: Retweeters List outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: trends path: /trends operations: - name: get method: GET description: Trends List outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: woeid in: query type: integer description: 'WOEID (Where On Earth IDentifier) of the location to get trends for Woeid list: https://gist.github.com/tedyblood/5bb5a9f78314cc1f478b3dd7cde790b9' required: true - name: tweet-info path: /tweet-info operations: - name: post method: POST description: Tweet Data outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: tweet-info-bulk path: /tweet-info-bulk operations: - name: post method: POST description: Tweet Data (batch) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: user-tweets path: /user-tweets operations: - name: post method: POST description: User Tweets outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: apikey key: ApiKey value: '{{env.SORSA_API_KEY}}' placement: header exposes: - type: rest namespace: sorsa-tweets-rest port: 8080 description: REST adapter for Sorsa API — Tweets. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/article name: article description: REST surface for article. operations: - method: POST name: post description: Article Data call: sorsa-tweets.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/comments name: comments description: REST surface for comments. operations: - method: POST name: post description: Tweet Comments call: sorsa-tweets.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/quotes name: quotes description: REST surface for quotes. operations: - method: POST name: post description: Quote Tweets call: sorsa-tweets.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/retweeters name: retweeters description: REST surface for retweeters. operations: - method: POST name: post description: Retweeters List call: sorsa-tweets.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/trends name: trends description: REST surface for trends. operations: - method: GET name: get description: Trends List call: sorsa-tweets.get with: woeid: rest.woeid outputParameters: - type: object mapping: $. - path: /v1/tweet-info name: tweet-info description: REST surface for tweet-info. operations: - method: POST name: post description: Tweet Data call: sorsa-tweets.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/tweet-info-bulk name: tweet-info-bulk description: REST surface for tweet-info-bulk. operations: - method: POST name: post description: Tweet Data (batch) call: sorsa-tweets.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/user-tweets name: user-tweets description: REST surface for user-tweets. operations: - method: POST name: post description: User Tweets call: sorsa-tweets.post with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: sorsa-tweets-mcp port: 9090 transport: http description: MCP adapter for Sorsa API — Tweets. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: article-data description: Article Data hints: readOnly: false destructive: false idempotent: false call: sorsa-tweets.post with: body: tools.body outputParameters: - type: object mapping: $. - name: tweet-comments description: Tweet Comments hints: readOnly: false destructive: false idempotent: false call: sorsa-tweets.post with: body: tools.body outputParameters: - type: object mapping: $. - name: quote-tweets description: Quote Tweets hints: readOnly: false destructive: false idempotent: false call: sorsa-tweets.post with: body: tools.body outputParameters: - type: object mapping: $. - name: retweeters-list description: Retweeters List hints: readOnly: false destructive: false idempotent: false call: sorsa-tweets.post with: body: tools.body outputParameters: - type: object mapping: $. - name: trends-list description: Trends List hints: readOnly: true destructive: false idempotent: true call: sorsa-tweets.get with: woeid: tools.woeid outputParameters: - type: object mapping: $. - name: tweet-data description: Tweet Data hints: readOnly: false destructive: false idempotent: false call: sorsa-tweets.post with: body: tools.body outputParameters: - type: object mapping: $. - name: tweet-data-batch description: Tweet Data (batch) hints: readOnly: false destructive: false idempotent: false call: sorsa-tweets.post with: body: tools.body outputParameters: - type: object mapping: $. - name: user-tweets description: User Tweets hints: readOnly: false destructive: false idempotent: false call: sorsa-tweets.post with: body: tools.body outputParameters: - type: object mapping: $.