{
  "x402Version": 2,
  "id": 27228,
  "slug": "27228",
  "resource": "https://app.suedeai.ai/agent/video",
  "description": "AI video generation from a text prompt. Returns an 8-second 720p clip with native audio. Use for short-form video, b-roll, product shots, music-video visuals, social clips, and ads. Include sound cues (instruments, voices, weather, movement) since audio is generated from the scene; a silent scene renders near-silent by design. Async by default: poll the returned pollUrl for videoUrl, or pass ?async=false to block.",
  "type": "http",
  "serviceName": "Suede AI",
  "resourceType": "Blockchain Data",
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0x10FF767043A1723E0BB5B9207bC37D3442cC9E4F",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "4990000",
      "amountUsd": 4.99,
      "maxTimeoutSeconds": 300
    }
  ],
  "outputSchema": {
    "properties": {
      "example": {
        "properties": {
          "jobId": {
            "description": "Job identifier for the render.",
            "type": "string"
          },
          "pageUrl": {
            "description": "Suede share-page URL when available.",
            "format": "uri",
            "type": [
              "string",
              "null"
            ]
          },
          "pollUrl": {
            "description": "Absolute URL to GET for the finished render, returned on the async accept. Needs no further payment. Null on a poll response.",
            "format": "uri",
            "type": [
              "string",
              "null"
            ]
          },
          "provider": {
            "description": "Provider handling the render.",
            "type": "string"
          },
          "status": {
            "description": "Current render status: 'queued' or 'processing' while the render runs, then the terminal 'completed' or 'failed'.",
            "type": "string"
          },
          "videoId": {
            "description": "Suede video record identifier when available.",
            "type": [
              "string",
              "null"
            ]
          },
          "videoUrl": {
            "description": "Generated video URL when the render is complete; null until then.",
            "format": "uri",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "jobId",
          "status",
          "provider"
        ],
        "type": "object"
      },
      "type": {
        "type": "string"
      }
    },
    "required": [
      "type"
    ],
    "type": "object"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "aspectRatio": "16:9",
            "durationSeconds": 8,
            "prompt": "<prompt>"
          },
          "bodyType": "json",
          "method": "POST",
          "type": "http"
        },
        "output": {
          "example": {
            "jobId": "video-job-example",
            "pollUrl": "https://app.suedeai.ai/agent/video/video-job-example",
            "provider": "suede",
            "status": "queued"
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "body": {
                "properties": {
                  "aspectRatio": {
                    "description": "Desired frame aspect ratio.",
                    "enum": [
                      "16:9",
                      "9:16",
                      "1:1"
                    ],
                    "type": "string"
                  },
                  "durationSeconds": {
                    "default": 8,
                    "description": "Requested clip length in seconds; the service maps it to a supported render length.",
                    "maximum": 15,
                    "minimum": 3,
                    "type": "integer"
                  },
                  "prompt": {
                    "description": "Narrative or visual prompt to drive the video concept.",
                    "type": "string"
                  }
                },
                "required": [
                  "prompt"
                ],
                "type": "object"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              },
              "headers": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              "method": {
                "enum": [
                  "POST",
                  "PUT",
                  "PATCH"
                ],
                "type": "string"
              },
              "queryParams": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "properties": {
                  "jobId": {
                    "description": "Job identifier for the render.",
                    "type": "string"
                  },
                  "pageUrl": {
                    "description": "Suede share-page URL when available.",
                    "format": "uri",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "pollUrl": {
                    "description": "Absolute URL to GET for the finished render, returned on the async accept. Needs no further payment. Null on a poll response.",
                    "format": "uri",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "provider": {
                    "description": "Provider handling the render.",
                    "type": "string"
                  },
                  "status": {
                    "description": "Current render status: 'queued' or 'processing' while the render runs, then the terminal 'completed' or 'failed'.",
                    "type": "string"
                  },
                  "videoId": {
                    "description": "Suede video record identifier when available.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "videoUrl": {
                    "description": "Generated video URL when the render is complete; null until then.",
                    "format": "uri",
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "jobId",
                  "status",
                  "provider"
                ],
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    },
    "skyfire": {
      "description": "Suede also accepts Skyfire pay+jwt/kya-pay+jwt tokens in the PAYMENT-SIGNATURE header on this endpoint.",
      "header": "PAYMENT-SIGNATURE",
      "tokenTypes": [
        "pay+jwt",
        "kya-pay+jwt"
      ]
    }
  },
  "tags": [
    "video",
    "video-generation",
    "text-to-video",
    "short-form-video",
    "creative-ai",
    "bazaar",
    "skyfire"
  ],
  "sourceHost": "app.suedeai.ai",
  "lastUpdated": "2026-09-17T19:29:04.397Z",
  "quality": {
    "calls30d": 1,
    "uniquePayers30d": 1,
    "lastCalledAt": "2026-09-17T19:29:03.895Z"
  },
  "metadata": {
    "serviceName": "Suede AI",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "aspectRatio": "16:9",
              "durationSeconds": 8,
              "prompt": "<prompt>"
            },
            "bodyType": "json",
            "method": "POST",
            "type": "http"
          },
          "output": {
            "example": {
              "jobId": "video-job-example",
              "pollUrl": "https://app.suedeai.ai/agent/video/video-job-example",
              "provider": "suede",
              "status": "queued"
            },
            "type": "json"
          }
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "body": {
                  "properties": {
                    "aspectRatio": {
                      "description": "Desired frame aspect ratio.",
                      "enum": [
                        "16:9",
                        "9:16",
                        "1:1"
                      ],
                      "type": "string"
                    },
                    "durationSeconds": {
                      "default": 8,
                      "description": "Requested clip length in seconds; the service maps it to a supported render length.",
                      "maximum": 15,
                      "minimum": 3,
                      "type": "integer"
                    },
                    "prompt": {
                      "description": "Narrative or visual prompt to drive the video concept.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "prompt"
                  ],
                  "type": "object"
                },
                "bodyType": {
                  "enum": [
                    "json",
                    "form-data",
                    "text"
                  ],
                  "type": "string"
                },
                "headers": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "type": "object"
                },
                "method": {
                  "enum": [
                    "POST",
                    "PUT",
                    "PATCH"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "type": "object"
                },
                "type": {
                  "const": "http",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "type": "object"
            },
            "output": {
              "properties": {
                "example": {
                  "properties": {
                    "jobId": {
                      "description": "Job identifier for the render.",
                      "type": "string"
                    },
                    "pageUrl": {
                      "description": "Suede share-page URL when available.",
                      "format": "uri",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "pollUrl": {
                      "description": "Absolute URL to GET for the finished render, returned on the async accept. Needs no further payment. Null on a poll response.",
                      "format": "uri",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "provider": {
                      "description": "Provider handling the render.",
                      "type": "string"
                    },
                    "status": {
                      "description": "Current render status: 'queued' or 'processing' while the render runs, then the terminal 'completed' or 'failed'.",
                      "type": "string"
                    },
                    "videoId": {
                      "description": "Suede video record identifier when available.",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "videoUrl": {
                      "description": "Generated video URL when the render is complete; null until then.",
                      "format": "uri",
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "jobId",
                    "status",
                    "provider"
                  ],
                  "type": "object"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      },
      "skyfire": {
        "description": "Suede also accepts Skyfire pay+jwt/kya-pay+jwt tokens in the PAYMENT-SIGNATURE header on this endpoint.",
        "header": "PAYMENT-SIGNATURE",
        "tokenTypes": [
          "pay+jwt",
          "kya-pay+jwt"
        ]
      }
    }
  },
  "liveness": {
    "reliability": null
  },
  "verified": false,
  "featured": false,
  "provider": {
    "host": "app.suedeai.ai",
    "manifest_name": "app.suedeai.ai",
    "source": "cdp-mirror",
    "source_manifest_url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources",
    "submitted_at": "2026-10-14T01:15:01.050Z"
  },
  "exampleResponse": {
    "example": {
      "jobId": "string",
      "pageUrl": "https://example.com",
      "pollUrl": "https://example.com",
      "provider": "string",
      "status": "string",
      "videoId": "string",
      "videoUrl": "https://example.com"
    },
    "type": "string"
  }
}