Resemble AI · Capability

API Reference — subpackage_duets

API Reference — subpackage_duets. 7 operations. Lead operation: Generate duet. Self-contained Naftiko capability covering one Resemble Ai business surface.

Run with Naftiko Resemble Aisubpackage_duets

What You Can Do

POST
Generateduet — Generate duet
/v1/duet
GET
Listduetvoicepairs — List duet voice pairs
/v1/duet-voice-pairs
POST
Createduetvoicepair — Create duet voice pair
/v1/duet-voice-pairs
GET
Listduetvoices — List duet voices
/v1/duet-voices
POST
Createduetvoice — Create custom duet voice
/v1/duet-voices
PUT
Updateduetvoice — Update duet voice
/v1/duet-voices/{id}
DELETE
Deleteduetvoice — Delete duet voice
/v1/duet-voices/{id}

MCP Tools

generate-duet

Generate duet

list-duet-voice-pairs

List duet voice pairs

read-only idempotent
create-duet-voice-pair

Create duet voice pair

list-duet-voices

List duet voices

read-only idempotent
create-custom-duet-voice

Create custom duet voice

update-duet-voice

Update duet voice

idempotent
delete-duet-voice

Delete duet voice

idempotent

Capability Spec

resemble-ai-subpackage-duets.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: API Reference — subpackage_duets
  description: 'API Reference — subpackage_duets. 7 operations. Lead operation: Generate duet. Self-contained Naftiko capability
    covering one Resemble Ai business surface.'
  tags:
  - Resemble Ai
  - subpackage_duets
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    RESEMBLE_AI_API_KEY: RESEMBLE_AI_API_KEY
capability:
  consumes:
  - type: http
    namespace: resemble-ai-subpackage-duets
    baseUri: https://f.cluster.resemble.ai
    description: API Reference — subpackage_duets business capability. Self-contained, no shared references.
    resources:
    - name: duet
      path: /duet
      operations:
      - name: generateduet
        method: POST
        description: Generate duet
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Authorization
          in: header
          type: string
          description: API token from https://app.resemble.ai/account/api
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: duet_voice_pairs
      path: /duet_voice_pairs
      operations:
      - name: listduetvoicepairs
        method: GET
        description: List duet voice pairs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Authorization
          in: header
          type: string
          description: API token from https://app.resemble.ai/account/api
          required: true
      - name: createduetvoicepair
        method: POST
        description: Create duet voice pair
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Authorization
          in: header
          type: string
          description: API token from https://app.resemble.ai/account/api
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: duet_voices
      path: /duet_voices
      operations:
      - name: listduetvoices
        method: GET
        description: List duet voices
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Authorization
          in: header
          type: string
          description: API token from https://app.resemble.ai/account/api
          required: true
      - name: createduetvoice
        method: POST
        description: Create custom duet voice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Authorization
          in: header
          type: string
          description: API token from https://app.resemble.ai/account/api
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: duet_voices-id
      path: /duet_voices/{id}
      operations:
      - name: updateduetvoice
        method: PUT
        description: Update duet voice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          required: true
        - name: Authorization
          in: header
          type: string
          description: API token from https://app.resemble.ai/account/api
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: deleteduetvoice
        method: DELETE
        description: Delete duet voice
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          required: true
        - name: Authorization
          in: header
          type: string
          description: API token from https://app.resemble.ai/account/api
          required: true
    authentication:
      type: bearer
      token: '{{env.RESEMBLE_AI_API_KEY}}'
  exposes:
  - type: rest
    namespace: resemble-ai-subpackage-duets-rest
    port: 8080
    description: REST adapter for API Reference — subpackage_duets. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/duet
      name: duet
      description: REST surface for duet.
      operations:
      - method: POST
        name: generateduet
        description: Generate duet
        call: resemble-ai-subpackage-duets.generateduet
        with:
          Authorization: rest.Authorization
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/duet-voice-pairs
      name: duet-voice-pairs
      description: REST surface for duet_voice_pairs.
      operations:
      - method: GET
        name: listduetvoicepairs
        description: List duet voice pairs
        call: resemble-ai-subpackage-duets.listduetvoicepairs
        with:
          Authorization: rest.Authorization
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createduetvoicepair
        description: Create duet voice pair
        call: resemble-ai-subpackage-duets.createduetvoicepair
        with:
          Authorization: rest.Authorization
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/duet-voices
      name: duet-voices
      description: REST surface for duet_voices.
      operations:
      - method: GET
        name: listduetvoices
        description: List duet voices
        call: resemble-ai-subpackage-duets.listduetvoices
        with:
          Authorization: rest.Authorization
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createduetvoice
        description: Create custom duet voice
        call: resemble-ai-subpackage-duets.createduetvoice
        with:
          Authorization: rest.Authorization
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/duet-voices/{id}
      name: duet-voices-id
      description: REST surface for duet_voices-id.
      operations:
      - method: PUT
        name: updateduetvoice
        description: Update duet voice
        call: resemble-ai-subpackage-duets.updateduetvoice
        with:
          id: rest.id
          Authorization: rest.Authorization
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteduetvoice
        description: Delete duet voice
        call: resemble-ai-subpackage-duets.deleteduetvoice
        with:
          id: rest.id
          Authorization: rest.Authorization
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: resemble-ai-subpackage-duets-mcp
    port: 9090
    transport: http
    description: MCP adapter for API Reference — subpackage_duets. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: generate-duet
      description: Generate duet
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: resemble-ai-subpackage-duets.generateduet
      with:
        Authorization: tools.Authorization
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-duet-voice-pairs
      description: List duet voice pairs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: resemble-ai-subpackage-duets.listduetvoicepairs
      with:
        Authorization: tools.Authorization
      outputParameters:
      - type: object
        mapping: $.
    - name: create-duet-voice-pair
      description: Create duet voice pair
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: resemble-ai-subpackage-duets.createduetvoicepair
      with:
        Authorization: tools.Authorization
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-duet-voices
      description: List duet voices
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: resemble-ai-subpackage-duets.listduetvoices
      with:
        Authorization: tools.Authorization
      outputParameters:
      - type: object
        mapping: $.
    - name: create-custom-duet-voice
      description: Create custom duet voice
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: resemble-ai-subpackage-duets.createduetvoice
      with:
        Authorization: tools.Authorization
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: update-duet-voice
      description: Update duet voice
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: resemble-ai-subpackage-duets.updateduetvoice
      with:
        id: tools.id
        Authorization: tools.Authorization
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-duet-voice
      description: Delete duet voice
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: resemble-ai-subpackage-duets.deleteduetvoice
      with:
        id: tools.id
        Authorization: tools.Authorization
      outputParameters:
      - type: object
        mapping: $.