Sume job metadata on Kling motion control and H3 Max lip sync
Both Kling 3.0 Motion Control and MiniMax H3 Max Lip Sync accept a metadata object stored with the Sume job request. It is not sent to the provider.

Yes. Kling 3.0 Motion Control and MiniMax H3 Max Lip Sync both accept an optional metadata object. Sume's schema says it is 'stored with the Sume job request' and 'not sent to the provider', so it is a place for your own labels, not a way to pass settings to the model.
What does metadata accept?
An object with additionalProperties: true, so any JSON keys. The text is the same on both routes. Nothing in it reaches the provider, so putting a prompt or a style flag there changes nothing about the clip.
The schema does not say which read returns it, so submit one test job and look at the job you get back before building on it.
| Route | Field | Sent to provider? |
|---|---|---|
POST /v1/kling/3.0/motion-control | metadata object | No |
POST /v1/minimax/h3-max/lip-sync | metadata object | No |
What should I put in it?
Your own ids: an order number, a campaign tag, the scene name. Do not put secrets or personal data in it; it is stored with the request.
For retries, the stronger tool is Idempotency-Key: reusing the key with the same payload returns the original job with idempotency_hit: true, and the key is returned on every job object, so it doubles as a join label.
Can metadata stop a double charge?
No. Metadata is a label. Only the idempotency key makes a retry adopt the first job instead of paying twice. Jobs and results says retrying the submit with the same key is fine, and submitting a new paid job for the same intent is not.
Send both: a stable Idempotency-Key per intended clip, and metadata that names the clip in your own system.
Sources
Related posts
More in Developers
- jobs_result with job_ids: read ok per entry, re-read failed_job_ids
A Sume MCP jobs_result batch returns ok plus value or error per id. One job_not_completed does not fail the rest; re-read partial_failure.failed_job_ids.
- jobs_wait include_results: skip the second read, handle omitted ids
Set include_results true on Sume MCP jobs_wait: completed ids return jobs_result in results[]; ids that do not fit are named in results_omitted.job_ids.
- jobs_wait returned operator_stopped: what it means and what to do
operator_stopped on Sume jobs_wait: operations stopped the job. It is terminal, has no output, and its hold was refunded. Wait only on the pending ids.
- jobs_wait timeout_seconds 600 returns at 55 seconds, clamped
Sume MCP jobs_wait accepts timeout_seconds up to 600 but clamps it to 55 and says so in wait_slice_clamped. Repeat the wait instead.
Written by Sume