Sync Labs · Capability

Sync Labs API — Generate

Sync Labs API — Generate. 4 operations. Lead operation: Create Lip-Sync Generation. Self-contained Naftiko capability covering one Sync Labs business surface.

Run with Naftiko Sync LabsGenerate

What You Can Do

POST
Creategeneration — Create Lip-Sync Generation
/v1/generate
GET
Listgenerations — List Generations
/v1/generate
GET
Estimategenerationcost — Estimate Generation Cost
/v1/generate/estimate-cost
GET
Getgeneration — Get Generation Status
/v1/generate/{id}

MCP Tools

create-lip-sync-generation

Create Lip-Sync Generation

list-generations

List Generations

read-only idempotent
estimate-generation-cost

Estimate Generation Cost

read-only idempotent
get-generation-status

Get Generation Status

read-only idempotent

Capability Spec

sync-labs-generate.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Sync Labs API — Generate
  description: 'Sync Labs API — Generate. 4 operations. Lead operation: Create Lip-Sync Generation. Self-contained Naftiko
    capability covering one Sync Labs business surface.'
  tags:
  - Sync Labs
  - Generate
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SYNC_LABS_API_KEY: SYNC_LABS_API_KEY
capability:
  consumes:
  - type: http
    namespace: sync-labs-generate
    baseUri: https://api.sync.so/v2
    description: Sync Labs API — Generate business capability. Self-contained, no shared references.
    resources:
    - name: generate
      path: /generate
      operations:
      - name: creategeneration
        method: POST
        description: Create Lip-Sync Generation
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: listgenerations
        method: GET
        description: List Generations
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
          description: Maximum number of results to return
        - name: offset
          in: query
          type: integer
          description: Pagination offset
        - name: status
          in: query
          type: string
          description: Filter by status
    - name: generate-estimate-cost
      path: /generate/estimate-cost
      operations:
      - name: estimategenerationcost
        method: GET
        description: Estimate Generation Cost
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: model
          in: query
          type: string
          description: AI model to use
          required: true
        - name: duration
          in: query
          type: number
          description: Video duration in seconds
          required: true
    - name: generate-id
      path: /generate/{id}
      operations:
      - name: getgeneration
        method: GET
        description: Get Generation Status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Generation job ID
          required: true
    authentication:
      type: apikey
      key: x-api-key
      value: '{{env.SYNC_LABS_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: sync-labs-generate-rest
    port: 8080
    description: REST adapter for Sync Labs API — Generate. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/generate
      name: generate
      description: REST surface for generate.
      operations:
      - method: POST
        name: creategeneration
        description: Create Lip-Sync Generation
        call: sync-labs-generate.creategeneration
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: listgenerations
        description: List Generations
        call: sync-labs-generate.listgenerations
        with:
          limit: rest.limit
          offset: rest.offset
          status: rest.status
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/generate/estimate-cost
      name: generate-estimate-cost
      description: REST surface for generate-estimate-cost.
      operations:
      - method: GET
        name: estimategenerationcost
        description: Estimate Generation Cost
        call: sync-labs-generate.estimategenerationcost
        with:
          model: rest.model
          duration: rest.duration
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/generate/{id}
      name: generate-id
      description: REST surface for generate-id.
      operations:
      - method: GET
        name: getgeneration
        description: Get Generation Status
        call: sync-labs-generate.getgeneration
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: sync-labs-generate-mcp
    port: 9090
    transport: http
    description: MCP adapter for Sync Labs API — Generate. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: create-lip-sync-generation
      description: Create Lip-Sync Generation
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: sync-labs-generate.creategeneration
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-generations
      description: List Generations
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: sync-labs-generate.listgenerations
      with:
        limit: tools.limit
        offset: tools.offset
        status: tools.status
      outputParameters:
      - type: object
        mapping: $.
    - name: estimate-generation-cost
      description: Estimate Generation Cost
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: sync-labs-generate.estimategenerationcost
      with:
        model: tools.model
        duration: tools.duration
      outputParameters:
      - type: object
        mapping: $.
    - name: get-generation-status
      description: Get Generation Status
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: sync-labs-generate.getgeneration
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.