SilkDock
APIVideo Generation

Video Generation

Generate videos from text, images, and supported reference assets.

Video generation is asynchronous. Create a task, poll its status, and download content only after the task is completed.

  • Create: POST /v1/videos/generations
  • Status: GET /v1/videos/{video_id}
  • Content: GET /v1/videos/{video_id}/content (video/mp4)
  • Edit: POST /v1/videos/edits; the legacy Remix endpoint is deprecated

Create a video task

Endpoint: POST /v1/videos/generations

curl -X POST 'https://silkdock.ai/v1/videos/generations' \
  -H 'Authorization: Bearer $SILKDOCK_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "seedance-2.0",
    "prompt": "Ocean waves strike a lighthouse as the camera slowly pushes in",
    "seconds": 8,
    "extra_body": {
      "resolution": "1080p",
      "aspect_ratio": "16:9"
    }
  }'

Request parameters

ParameterTypeRequiredDescription
modelstringYesA public model ID from the capability tables.
promptstringYesVideo description or transformation instruction.
secondsintegerNoMust match the selected model's integer range or fixed-value list.
input_referencestring | string[]NoOne reference image URL or a list of image URLs. Support is model-specific.
imagestringNoFirst-frame image URL alias supported by Wan 3.0.
sizestringNoLegacy pixel dimensions. Prefer extra_body.resolution and extra_body.aspect_ratio.
userstringNoEnd-user identifier supplied by the caller.
extra_body.resolutionstringNo480p, 720p, 1080p, or 4k, as supported by the model.
extra_body.aspect_ratiostringNoAspect ratio in width:height form.
extra_body.first_frame_urlstringNoFirst-frame URL for models with start/end-frame support.
extra_body.last_frame_urlstringNoLast-frame URL; use it together with first_frame_url.
extra_body.reference_image_urlsstring[]NoMultimodal reference images.
extra_body.reference_video_urlsstring[]NoMultimodal reference videos.
extra_body.reference_audio_urlsstring[]NoMultimodal reference audio clips.
extra_body.motion_ref_urlstringNoMotion-transfer reference video.
extra_body.motion_ref_urlsstring[]NoMultiple motion-reference videos when supported.
extra_body.motion_modestringNoKling motion mode: std or pro. Seedance ignores this field.
extra_body.character_orientationstringNoKling motion character orientation: image or video.
extra_body.keep_original_soundbooleanNoPreserve the original motion-reference sound for Kling.
extra_body.audio_urlstringNoInput audio URL. Audio input is distinct from generated output audio.
extra_body.audiobooleanNoEnable or disable generated output audio for Wan 3.0.
extra_body.generate_audiobooleanNoGenerate output audio when supported.
extra_body.negative_promptstringNoNegative prompt for supported Kling models.
extra_body.seedintegerNoRandom seed for supported Kling models.
extra_body.prompt_extendbooleanNoWan prompt enhancement; defaults to true.
extra_body.prompt_optimizerbooleanNoHailuo prompt optimization; defaults to true.
extra_body.fast_pretreatmentbooleanNoHailuo fast preprocessing; defaults to false.
extra_body.aigc_watermarkbooleanNoHailuo AIGC watermark; defaults to false.
extra_body.enhance_promptbooleanNoVeo prompt enhancement; defaults to true.
extra_body.watermarkbooleanNoSeedance watermark; defaults to false.
extra_body.video_urlstringNoSeedance reference video for reference-to-video mode.
extra_body.first_image / last_imagestringNoCompatibility aliases for Seedance start/end-frame input.
extra_body.motion_strengthnumberNoMotion strength; use only when the model page documents an allowed value.
extra_body.camera_controlobjectNoKling motion camera controls.
extra_body.element_listarrayNoKling subject-reference or element list.
extra_body.background_tolerancenumberNoKling motion background tolerance.
extra_body.framesintegerNoSeedance output frame count; do not also send duration when using it.
extra_body.return_last_framebooleanNoReturn the generated last frame for Seedance.
extra_body.camera_fixedbooleanNoFix the camera for Seedance.
extra_body.callback_urlstringNoSeedance task callback URL.
extra_body.safety_identifierstringNoSeedance safety identifier.
extra_body.service_tierstringNoSeedance service tier.
extra_body.execution_expires_afterintegerNoSeedance task execution expiry.

Use input_reference consistently for reference images: a string means one image and an array means multiple reference images. Start/end-frame generation is different and must use extra_body.first_frame_url and extra_body.last_frame_url explicitly.

For motion transfer, send the character image through input_reference and the motion video through extra_body.motion_ref_url. Use reference_video_urls for general video guidance and reference_audio_urls for audio guidance.

think_level, thinking_level, and reasoning_effort are not part of the public image or video contract. Wan 3.0 also does not expose enable_thinking.

Do not send extension fields that are absent from the selected model's model-specific input list.

Reference input selection

GoalInput
Single-image videoinput_reference as a URL or file
Multiple reference imagesinput_reference as a URL array
General video referenceextra_body.reference_video_urls
Motion transferinput_reference plus extra_body.motion_ref_url
Audio referenceextra_body.reference_audio_urls
First or start/end framesextra_body.first_frame_url and optionally extra_body.last_frame_url

The gateway maps input_reference to the selected model's native image-to-video or reference-image request. It does not automatically turn a normal reference into a first frame.

Discover model capabilities

Query GET /model_group/info?model_group=<MODEL_ID> before presenting model-specific controls.

Response fieldTypeDescription
supported_resolutionsstring[]Supported resolution tiers.
supported_aspect_ratiosstring[]Supported display ratios; prefer this list when rendering size controls.
max_video_duration_secondsnumberMaximum output duration.
supports_video_audio_inputbooleanWhether reference audio is supported.
supports_video_audio_outputbooleanWhether generated output audio can be controlled.
supports_video_multimodal_referencebooleanWhether multimodal reference assets or native structures such as element_list are supported.
supports_video_start_end_framebooleanWhether explicit start/end-frame generation is supported.
supports_video_motionbooleanWhether motion transfer is supported.
curl 'https://silkdock.ai/model_group/info?model_group=seedance-2.0' \
  -H 'Authorization: Bearer $SILKDOCK_API_KEY'

Task responses

Creating a task returns an opaque ID. Do not parse or construct video IDs; status and content requests do not need the model ID again.

{
  "id": "video_xxxxxx",
  "object": "video",
  "status": "processing",
  "usage": {
    "duration_seconds": 10.0,
    "video_resolution": "1080p",
    "has_audio": false
  }
}

A completed status response may include the download URL:

{
  "id": "video_xxxxxx",
  "status": "completed",
  "url": "https://cdn.example.com/video.mp4"
}

status is processing, completed, or failed. Failed tasks include an error object.

Generation capabilities

ModelTextImageMulti-image/videoStart/end framesMotion transferAudio inputGenerated audio
seedance-2.0YesYesYesYesNoYesYes
seedance-2.0-fastYesYesYesNoNoYesYes
kling-3.0YesYesYesYesYesNoYes
kling-2.6YesYesMotion referenceNoYesNoYes
kling-2.5-turboYesYesNoNoNoNoNo
wan-2.5YesYesNoNoNoYesNo
wan-2.6YesYesNoNoNoYesNo
wan-2.6-flashNoYesYesNoNoYesYes
wan-2.7YesYesYesYesNoYesNo
wan-3.0YesYesYesYesNoYesYes
hailuo-2.3YesYesNoNoNoNoNo
hailuo-2.3-fastNoYesNoNoNoNoNo
veo-3.1YesNoNoNoNoNoYes
veo-3.1-fastYesNoNoNoNoNoYes
sora-2YesYesNoNoNoNoYes
sora-2-proYesYesNoNoNoNoYes
gen4_turboNoYesNoNoNoNoNo

Output specifications

ModelResolutionsAspect ratiosseconds
seedance-2.0480p, 720p, 1080p, 4kadaptive, 1:1, 4:3, 3:4, 16:9, 9:16, 21:9Any integer 4-15, or -1 for automatic
seedance-2.0-fast480p, 720padaptive, 1:1, 4:3, 3:4, 16:9, 9:16, 21:9Any integer 4-15, or -1 for automatic
kling-3.0720p, 1080p, 4k1:1, 16:9, 9:16Any integer 1-15
kling-2.6720p, 1080p16:9, 9:16Any integer 5-10
kling-2.5-turbo720p, 1080p1:1, 16:9, 9:16Any integer 4-10
wan-2.5480p, 720p, 1080p1:1, 4:3, 3:4, 16:9, 9:16Any integer 2-10
wan-2.6, wan-2.6-flash, wan-2.7720p, 1080p1:1, 4:3, 3:4, 16:9, 9:165, 10, or 15
wan-3.0480p, 720p, 1080padaptive, 16:9, 4:3, 1:1, 3:4, 9:16Any integer 2-30, or -1 for automatic
hailuo-2.3720p, 1080pModel default for text; follows reference image for image mode6 or 10
hailuo-2.3-fast720p, 1080pFollows reference image6 or 10
veo-3.1, veo-3.1-fast720p, 1080p, 4k16:9, 9:164, 6, or 8
sora-2720p16:9, 9:164, 8, 12, 16, or 20
sora-2-pro720p, 1024p, 1080p16:9, 9:164, 8, 12, 16, or 20
gen4_turbo720p16:9, 9:16, 4:3, 3:4, 1:1, 21:9Any integer 2-10

A range such as 4-15 accepts every integer within the range. A comma-separated list accepts only those exact values.

Model-specific inputs

ModelStable conditional fields
seedance-2.0input_reference, multimodal image/video/audio references, start/end frames, motion reference, audio input/output, frames, camera, seed, callback, safety, service tier, expiry, watermark
seedance-2.0-fastinput_reference, multimodal image/video/audio references, motion reference, audio input/output, frames, camera, seed, callback, safety, service tier, expiry, watermark
kling-3.0input_reference, image/video references, start/end frames, motion fields, element_list, generated audio, negative prompt, seed
kling-2.6input_reference, motion fields, generated audio, negative prompt, seed
kling-2.5-turboinput_reference, extra_body.negative_prompt, extra_body.seed
wan-2.5, wan-2.6input_reference, extra_body.audio_url, extra_body.prompt_extend
wan-2.6-flashinput_reference, image/video references, audio input/output, extra_body.prompt_extend
wan-2.7input_reference, image/video references, start/end frames, audio input, extra_body.prompt_extend
wan-3.0First-frame aliases, media, image/video/audio references, start/end frames, audio output, seed, prompt enhancement, watermark
hailuo-2.3input_reference, prompt optimizer, fast pretreatment, AIGC watermark
hailuo-2.3-fastinput_reference (required), prompt optimizer, fast pretreatment, AIGC watermark
gen4_turboinput_reference (required)
veo-3.1, veo-3.1-fastextra_body.generate_audio, extra_body.enhance_prompt
sora-2, sora-2-proinput_reference; generated videos can be passed to POST /v1/videos/edits

Pricing

All prices are in USD. Unless a row says “per video,” calculate unit price/second * seconds.

Seedance and Kling

Model / resolutionStandard or silentReference or audioNotes
seedance-2.0 480p/720p$0.145667/s$0.159404/s referenceGenerated audio is included
seedance-2.0 1080p/4k$0.363374/s$0.380117/s referenceGenerated audio is included
seedance-2.0-fast 480p/720p$0.117451/s$0.115982/s referenceGenerated audio is included
kling-3.0 720p$0.087719/s$0.131579/s with audioMotion: $0.131579/s
kling-3.0 1080p$0.116959/s$0.175439/s with audioMotion: $0.175439/s
kling-3.0 4k$0.438596/s$0.438596/s with audioAudio is included
kling-2.6 720p$0.043860/sPrice unavailable with audioMotion: $0.073099/s
kling-2.6 1080p$0.073099/s$0.146199/s with audioMotion: $0.116959/s
kling-2.5-turbo 720p/1080p$0.043860/sNot supportedFixed full-clip prices by resolution require confirmation

Seedance standard mode covers text-to-video and single-image video. Multiple images or reference videos use reference-mode pricing.

Wan

Model480p720p silent / audio1080p silent / audioReference images
wan-2.5$0.050000/s$0.100000/s / not supported$0.150000/s / not supported$0.030/image
wan-2.6-$0.100000/s / not supported$0.150000/s / not supported$0.030/image
wan-2.6-flash-$0.025000/s / $0.050000/s$0.037500/s / $0.075000/s$0.030/image
wan-2.7-$0.100000/s / not supported$0.150000/s / not supported$0.030/image; advanced $0.075/image
wan-3.0$0.050000/s$0.100000/s / $0.100000/s$0.200000/s / $0.200000/sIncluded in video rate

Audio input does not mean generated audio. Audio pricing applies only when the model generates audio in the output video. Wan 3.0 uses the same resolution rate whether generated audio is enabled or disabled.

Hailuo

Model / resolution6-second video10-second video
hailuo-2.3 720p$0.292398$0.584795
hailuo-2.3 1080p$0.511696$1.023392
hailuo-2.3-fast 720p$0.197368$0.328947
hailuo-2.3-fast 1080p$0.337719Price unavailable

Veo, Sora, and Gen-4

Model / resolutionUSD/secondAudio
veo-3.1 720p/1080p$0.400000Included
veo-3.1 4k$0.600000Included
veo-3.1-fast 720p$0.100000Included
veo-3.1-fast 1080p$0.120000Included
veo-3.1-fast 4k$0.300000Included
sora-2 720p$0.100000Synchronized audio included
sora-2-pro 720p$0.300000Synchronized audio included
gen4_turbo 720p$0.050000Not supported; reference image required

Do not expose combinations marked “Price unavailable” in quotes or checkout controls until billing configuration is complete.

Image-to-video example

{
  "model": "wan-2.7",
  "prompt": "The subject turns and runs forward as the camera pulls back smoothly",
  "input_reference": "https://example.com/first-frame.png",
  "seconds": 10,
  "extra_body": {
    "resolution": "1080p",
    "aspect_ratio": "16:9"
  }
}

Start/end-frame example

{
  "model": "seedance-2.0",
  "prompt": "Push slowly toward the subject and end on a night skyline",
  "seconds": 6,
  "extra_body": {
    "resolution": "1080p",
    "aspect_ratio": "16:9",
    "first_frame_url": "https://example.com/first.png",
    "last_frame_url": "https://example.com/last.png"
  }
}

Normal input_reference values remain reference images and do not automatically become first_frame_url. Check supports_video_start_end_frame before exposing this mode.

Code examples

curl -X POST 'https://silkdock.ai/v1/videos/generations' \
  -H 'Authorization: Bearer sk-xxx' \
  -H 'Content-Type: application/json' \
  -d '{"model":"seedance-2.0","prompt":"Ocean waves strike a lighthouse","seconds":10,"extra_body":{"resolution":"1080p","aspect_ratio":"16:9"}}'

curl 'https://silkdock.ai/v1/videos/video_xxx' \
  -H 'Authorization: Bearer sk-xxx'

curl -L 'https://silkdock.ai/v1/videos/video_xxx/content' \
  -H 'Authorization: Bearer sk-xxx' --output out.mp4
const headers = { Authorization: "Bearer sk-xxx", "Content-Type": "application/json" };
const response = await fetch("https://silkdock.ai/v1/videos/generations", {
  method: "POST",
  headers,
  body: JSON.stringify({
    model: "seedance-2.0",
    prompt: "Ocean waves strike a lighthouse",
    seconds: 10,
    extra_body: { resolution: "1080p", aspect_ratio: "16:9" },
  }),
});
console.log(await response.json());
import OpenAI from "openai";

const client = new OpenAI({ apiKey: "sk-xxx", baseURL: "https://silkdock.ai/v1" });
const video = await client.videos.create({
  model: "seedance-2.0",
  prompt: "Ocean waves strike a lighthouse",
  seconds: 10,
  extra_body: { resolution: "1080p", aspect_ratio: "16:9" },
});
let status = video;
while (status.status === "processing") {
  await new Promise((resolve) => setTimeout(resolve, 5000));
  status = await client.videos.retrieve(video.id);
}
from openai import OpenAI
import time

client = OpenAI(api_key="sk-xxx", base_url="https://silkdock.ai/v1")
video = client.videos.create(
    model="seedance-2.0",
    prompt="Ocean waves strike a lighthouse",
    seconds=10,
    extra_body={"resolution": "1080p", "aspect_ratio": "16:9"},
)
while True:
    status = client.videos.retrieve(video.id)
    if status.status == "completed": break
    if status.status == "failed": raise RuntimeError(status.error)
    time.sleep(5)
content = client.videos.retrieve_content(video.id)
with open("out.mp4", "wb") as output:
    output.write(content.read())
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  struct curl_slist *headers = NULL;
  headers = curl_slist_append(headers, "Authorization: Bearer sk-xxx");
  headers = curl_slist_append(headers, "Content-Type: application/json");
  curl_easy_setopt(curl, CURLOPT_URL, "https://silkdock.ai/v1/videos/generations");
  curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
  curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"model\":\"seedance-2.0\",\"prompt\":\"Ocean waves strike a lighthouse\",\"seconds\":10,\"extra_body\":{\"resolution\":\"1080p\",\"aspect_ratio\":\"16:9\"}}");
  curl_easy_perform(curl);
  curl_easy_cleanup(curl);
}
NSURL *url = [NSURL URLWithString:@"https://silkdock.ai/v1/videos/generations"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = @"POST";
[request setValue:@"Bearer sk-xxx" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSDictionary *payload = @{ @"model": @"seedance-2.0", @"prompt": @"Ocean waves strike a lighthouse", @"seconds": @10, @"extra_body": @{ @"resolution": @"1080p", @"aspect_ratio": @"16:9" } };
request.HTTPBody = [NSJSONSerialization dataWithJSONObject:payload options:0 error:nil];
[[[NSURLSession sharedSession] dataTaskWithRequest:request] resume];
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://silkdock.ai/v1/videos/generations"))
    .header("Authorization", "Bearer sk-xxx")
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString("{\"model\":\"seedance-2.0\",\"prompt\":\"Ocean waves strike a lighthouse\",\"seconds\":10,\"extra_body\":{\"resolution\":\"1080p\",\"aspect_ratio\":\"16:9\"}}"))
    .build();
System.out.println(HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()).body());
payload := strings.NewReader(`{"model":"seedance-2.0","prompt":"Ocean waves strike a lighthouse","seconds":10,"extra_body":{"resolution":"1080p","aspect_ratio":"16:9"}}`)
req, _ := http.NewRequest("POST", "https://silkdock.ai/v1/videos/generations", payload)
req.Header.Set("Authorization", "Bearer sk-xxx")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
<?php
$ch = curl_init('https://silkdock.ai/v1/videos/generations');
curl_setopt_array($ch, [CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => ['Authorization: Bearer sk-xxx', 'Content-Type: application/json'],
  CURLOPT_POSTFIELDS => json_encode(['model' => 'seedance-2.0', 'prompt' => 'Ocean waves strike a lighthouse', 'seconds' => 10, 'extra_body' => ['resolution' => '1080p', 'aspect_ratio' => '16:9']])]);
echo curl_exec($ch);
curl_close($ch);
var request = URLRequest(url: URL(string: "https://silkdock.ai/v1/videos/generations")!)
request.httpMethod = "POST"
request.setValue("Bearer sk-xxx", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let payload: [String: Any] = ["model": "seedance-2.0", "prompt": "Ocean waves strike a lighthouse", "seconds": 10, "extra_body": ["resolution": "1080p", "aspect_ratio": "16:9"]]
request.httpBody = try! JSONSerialization.data(withJSONObject: payload)
URLSession.shared.dataTask(with: request) { data, _, _ in print(String(data: data!, encoding: .utf8)!) }.resume()
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer sk-xxx");
var json = JsonSerializer.Serialize(new { model = "seedance-2.0", prompt = "Ocean waves strike a lighthouse", seconds = 10, extra_body = new { resolution = "1080p", aspect_ratio = "16:9" } });
var response = await client.PostAsync("https://silkdock.ai/v1/videos/generations", new StringContent(json, Encoding.UTF8, "application/json"));
Console.WriteLine(await response.Content.ReadAsStringAsync());
uri = URI("https://silkdock.ai/v1/videos/generations")
request = Net::HTTP::Post.new(uri, { "Authorization" => "Bearer sk-xxx", "Content-Type" => "application/json" })
request.body = { model: "seedance-2.0", prompt: "Ocean waves strike a lighthouse", seconds: 10, extra_body: { resolution: "1080p", aspect_ratio: "16:9" } }.to_json
puts Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(request) }.body
val json = """{"model":"seedance-2.0","prompt":"Ocean waves strike a lighthouse","seconds":10,"extra_body":{"resolution":"1080p","aspect_ratio":"16:9"}}"""
val request = Request.Builder().url("https://silkdock.ai/v1/videos/generations")
    .header("Authorization", "Bearer sk-xxx")
    .post(json.toRequestBody("application/json".toMediaType())).build()
OkHttpClient().newCall(request).execute().use { println(it.body?.string()) }
let response = reqwest::Client::new()
    .post("https://silkdock.ai/v1/videos/generations")
    .bearer_auth("sk-xxx")
    .json(&serde_json::json!({"model":"seedance-2.0","prompt":"Ocean waves strike a lighthouse","seconds":10,"extra_body":{"resolution":"1080p","aspect_ratio":"16:9"}}))
    .send().await?;
println!("{}", response.text().await?);
POST /v1/videos/generations HTTP/1.1
Host: silkdock.ai
Authorization: Bearer sk-xxx
Content-Type: application/json

{"model":"seedance-2.0","prompt":"Ocean waves strike a lighthouse","seconds":10,"extra_body":{"resolution":"1080p","aspect_ratio":"16:9"}}
final response = await http.post(
  Uri.parse('https://silkdock.ai/v1/videos/generations'),
  headers: {'Authorization': 'Bearer sk-xxx', 'Content-Type': 'application/json'},
  body: jsonEncode({'model': 'seedance-2.0', 'prompt': 'Ocean waves strike a lighthouse', 'seconds': 10, 'extra_body': {'resolution': '1080p', 'aspect_ratio': '16:9'}}),
);
print(response.body);
response <- request("https://silkdock.ai/v1/videos/generations") |>
  req_headers(Authorization = "Bearer sk-xxx") |>
  req_body_json(list(model = "seedance-2.0", prompt = "Ocean waves strike a lighthouse", seconds = 10, extra_body = list(resolution = "1080p", aspect_ratio = "16:9"))) |>
  req_perform()
resp_body_json(response)
let body = {|{"model":"seedance-2.0","prompt":"Ocean waves strike a lighthouse","seconds":10,"extra_body":{"resolution":"1080p","aspect_ratio":"16:9"}}|} in
let headers = Cohttp.Header.of_list [
  ("Authorization", "Bearer sk-xxx"); ("Content-Type", "application/json")
] in
Lwt_main.run (Cohttp_lwt_unix.Client.post ~headers ~body:(Cohttp_lwt.Body.of_string body)
  (Uri.of_string "https://silkdock.ai/v1/videos/generations"))

Check and download a task

  • Status: GET /v1/videos/{video_id}
  • Content: GET /v1/videos/{video_id}/content

The task status is processing, completed, or failed. Download the result only after the status is completed. Poll every 3-5 seconds in production and set an application-level timeout.

Errors and billing

ScenarioBehavior
Unsupported input mode400 BadRequestError
Unsupported resolution/aspect-ratio combinationFalls back to the model default and records a warning
Generation failurestatus: "failed" with details in error
Download before completionVideo-not-ready error

Billing depends on the model, duration, resolution, and generated audio. The usage object contains the metering inputs used by the gateway.

Last updated on

On this page