naftiko: 1.0.0-alpha2 info: label: Memesio API Contracts — ai-captions description: 'Memesio API Contracts — ai-captions. 11 operations. Lead operation: Read the Current Actor''s Daily Caption Reroll Quota and Reset Window. Self-contained Naftiko capability covering one Memesio business surface.' tags: - Memesio - ai-captions created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: MEMESIO_API_KEY: MEMESIO_API_KEY capability: consumes: - type: http namespace: memesio-ai-captions baseUri: '' description: Memesio API Contracts — ai-captions business capability. Self-contained, no shared references. resources: - name: api-ai-captions-generate path: /api/ai/captions/generate operations: - name: get method: GET description: Read the Current Actor's Daily Caption Reroll Quota and Reset Window outputRawFormat: json outputParameters: - name: result type: object value: $. - name: post method: POST description: Generate Caption Reroll Options with Locale-Aware Output, Ranking, Inline Safety Highlights, and Full Caption-Set Alternatives outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-ai-captions-moderate path: /api/ai/captions/moderate operations: - name: post method: POST description: Moderate Caption Candidates with Inline Highlights/Rationale and Enqueue Blocked Outputs outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-ai-captions-prompt path: /api/ai/captions/prompt operations: - name: post method: POST description: Build Caption Prompt with Optional Inferred Scene Context and Locale Auto-Detect (En, Es, Pt-Br, Hi) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-ai-captions-rank path: /api/ai/captions/rank operations: - name: post method: POST description: Rank Caption Variants and Return Top Safe Selections outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-ai-captions-rewrite path: /api/ai/captions/rewrite operations: - name: post method: POST description: Rewrite Caption Text with Shorten/Punchier/Less-Offensive/Brand-Safe Tools and Return Diff Preview outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-ai-captions-scene path: /api/ai/captions/scene operations: - name: post method: POST description: Run Scene-Understanding Pipeline to Extract Entities, Tone Cues, and Trend References from Canvas + Template Metadata outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-ai-captions-tone-presets path: /api/ai/captions/tone-presets operations: - name: get method: GET description: List Default + Custom Brand Tone Presets outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: locale in: query type: string - name: post method: POST description: Create or Update Custom Brand Tone Preset outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-ai-memes-generate path: /api/ai/memes/generate operations: - name: post method: POST description: Select an Existing Meme Template, Generate Captions, and Return Editor-Ready Meme Variants outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-v1-memes-generate path: /api/v1/memes/generate operations: - name: post method: POST description: Generate AI Meme Variants Synchronously for a Developer or Standalone Agent Key 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: x-developer-api-key value: '{{env.MEMESIO_API_KEY}}' placement: header exposes: - type: rest namespace: memesio-ai-captions-rest port: 8080 description: REST adapter for Memesio API Contracts — ai-captions. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/ai/captions/generate name: api-ai-captions-generate description: REST surface for api-ai-captions-generate. operations: - method: GET name: get description: Read the Current Actor's Daily Caption Reroll Quota and Reset Window call: memesio-ai-captions.get outputParameters: - type: object mapping: $. - method: POST name: post description: Generate Caption Reroll Options with Locale-Aware Output, Ranking, Inline Safety Highlights, and Full Caption-Set Alternatives call: memesio-ai-captions.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/ai/captions/moderate name: api-ai-captions-moderate description: REST surface for api-ai-captions-moderate. operations: - method: POST name: post description: Moderate Caption Candidates with Inline Highlights/Rationale and Enqueue Blocked Outputs call: memesio-ai-captions.post outputParameters: - type: object mapping: $. - path: /v1/api/ai/captions/prompt name: api-ai-captions-prompt description: REST surface for api-ai-captions-prompt. operations: - method: POST name: post description: Build Caption Prompt with Optional Inferred Scene Context and Locale Auto-Detect (En, Es, Pt-Br, Hi) call: memesio-ai-captions.post outputParameters: - type: object mapping: $. - path: /v1/api/ai/captions/rank name: api-ai-captions-rank description: REST surface for api-ai-captions-rank. operations: - method: POST name: post description: Rank Caption Variants and Return Top Safe Selections call: memesio-ai-captions.post outputParameters: - type: object mapping: $. - path: /v1/api/ai/captions/rewrite name: api-ai-captions-rewrite description: REST surface for api-ai-captions-rewrite. operations: - method: POST name: post description: Rewrite Caption Text with Shorten/Punchier/Less-Offensive/Brand-Safe Tools and Return Diff Preview call: memesio-ai-captions.post outputParameters: - type: object mapping: $. - path: /v1/api/ai/captions/scene name: api-ai-captions-scene description: REST surface for api-ai-captions-scene. operations: - method: POST name: post description: Run Scene-Understanding Pipeline to Extract Entities, Tone Cues, and Trend References from Canvas + Template Metadata call: memesio-ai-captions.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/ai/captions/tone-presets name: api-ai-captions-tone-presets description: REST surface for api-ai-captions-tone-presets. operations: - method: GET name: get description: List Default + Custom Brand Tone Presets call: memesio-ai-captions.get with: locale: rest.locale outputParameters: - type: object mapping: $. - method: POST name: post description: Create or Update Custom Brand Tone Preset call: memesio-ai-captions.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/ai/memes/generate name: api-ai-memes-generate description: REST surface for api-ai-memes-generate. operations: - method: POST name: post description: Select an Existing Meme Template, Generate Captions, and Return Editor-Ready Meme Variants call: memesio-ai-captions.post with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v1/memes/generate name: api-v1-memes-generate description: REST surface for api-v1-memes-generate. operations: - method: POST name: post description: Generate AI Meme Variants Synchronously for a Developer or Standalone Agent Key call: memesio-ai-captions.post with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: memesio-ai-captions-mcp port: 9090 transport: http description: MCP adapter for Memesio API Contracts — ai-captions. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: read-current-actor-s-daily-caption description: Read the Current Actor's Daily Caption Reroll Quota and Reset Window hints: readOnly: true destructive: false idempotent: true call: memesio-ai-captions.get outputParameters: - type: object mapping: $. - name: generate-caption-reroll-options-locale description: Generate Caption Reroll Options with Locale-Aware Output, Ranking, Inline Safety Highlights, and Full Caption-Set Alternatives hints: readOnly: false destructive: false idempotent: false call: memesio-ai-captions.post with: body: tools.body outputParameters: - type: object mapping: $. - name: moderate-caption-candidates-inline-highlights description: Moderate Caption Candidates with Inline Highlights/Rationale and Enqueue Blocked Outputs hints: readOnly: false destructive: false idempotent: false call: memesio-ai-captions.post outputParameters: - type: object mapping: $. - name: build-caption-prompt-optional-inferred description: Build Caption Prompt with Optional Inferred Scene Context and Locale Auto-Detect (En, Es, Pt-Br, Hi) hints: readOnly: false destructive: false idempotent: false call: memesio-ai-captions.post outputParameters: - type: object mapping: $. - name: rank-caption-variants-and-return description: Rank Caption Variants and Return Top Safe Selections hints: readOnly: false destructive: false idempotent: false call: memesio-ai-captions.post outputParameters: - type: object mapping: $. - name: rewrite-caption-text-shorten-punchier description: Rewrite Caption Text with Shorten/Punchier/Less-Offensive/Brand-Safe Tools and Return Diff Preview hints: readOnly: false destructive: false idempotent: false call: memesio-ai-captions.post outputParameters: - type: object mapping: $. - name: run-scene-understanding-pipeline-extract description: Run Scene-Understanding Pipeline to Extract Entities, Tone Cues, and Trend References from Canvas + Template Metadata hints: readOnly: false destructive: false idempotent: false call: memesio-ai-captions.post with: body: tools.body outputParameters: - type: object mapping: $. - name: list-default-custom-brand-tone description: List Default + Custom Brand Tone Presets hints: readOnly: true destructive: false idempotent: true call: memesio-ai-captions.get with: locale: tools.locale outputParameters: - type: object mapping: $. - name: create-update-custom-brand-tone description: Create or Update Custom Brand Tone Preset hints: readOnly: false destructive: false idempotent: false call: memesio-ai-captions.post with: body: tools.body outputParameters: - type: object mapping: $. - name: select-existing-meme-template-generate description: Select an Existing Meme Template, Generate Captions, and Return Editor-Ready Meme Variants hints: readOnly: false destructive: false idempotent: false call: memesio-ai-captions.post with: body: tools.body outputParameters: - type: object mapping: $. - name: generate-ai-meme-variants-synchronously description: Generate AI Meme Variants Synchronously for a Developer or Standalone Agent Key hints: readOnly: false destructive: false idempotent: false call: memesio-ai-captions.post with: body: tools.body outputParameters: - type: object mapping: $.