Skip to documentation
Open dashboard
On this page

Quote editing route

tong_video_edit_route_quote

Get a quote for the exact model, inputs and configuration before submitting the action.

POST/v1/tools/tong_video_edit_route_quote/operations

Request example#

curl -X POST 'https://platform.tongai.io/v1/tools/tong_video_edit_route_quote/operations' \  -H "Authorization: Bearer $TONG_API_KEY" \  -H "Content-Type: application/json" \  -H "Idempotency-Key: 45be69f1-c266-4a09-a82c-bf3c6303eb03" \  -d '{  "input": {    "body": {      "videoId": "aaaaaaaaaaaaaaaaaaaaaaaa",      "start": 0,      "end": 0,      "frame": 0    }  }}'
Configuration
curl --version

Permissions#

Use a server-side API key for your account, or OAuth for each customer’s account. Never send keys in prompts or tool arguments.

video_edit:writequotes:write

Request body#

REST requests wrap the tool arguments in input. MCP calls send the same arguments directly.

bodyobjectRequired
Show nested fields
videoIdstringRequired

A 24-character hexadecimal ID.

Example"aaaaaaaaaaaaaaaaaaaaaaaa"
startnumberRequired

Minimum: 0.

Maximum: 30.

Example0
endnumberRequired

Minimum: 0.

Maximum: 30.

Example0
framenumberRequired

Minimum: 0.

Maximum: 30.

Example0
workspaceProjectIdstring | nullOptional

A 24-character hexadecimal ID.

intentstringOptional
Allowed values"swap""background""add""remove""edit""restyle"
outputModestringOptional
Allowed values"full""clip"
modestringOptional

Guided runs pause for human review in Tong. Automatic runs continue. Both charge as work proceeds and pause when credits run out.

Allowed values"swap""add""remove""edit""restyle"
modelSelectionstringOptional
Allowed values"default""manual"
editModelstringOptional

Minimum length: 1 characters.

Maximum length: 150 characters.

swapEnginestringOptional
Allowed values"recast""genjutsu""swap""modify"
restyleEnginestringOptional
Allowed values"modify""genjutsu""grok"
presetIdstringOptional

A UUID, for example e8aa0a87-6cd9-42eb-975a-b72bf43218c8.

resolutionstringOptional
Allowed values"480p""default""768p""1080p""360p""540p""720p"
keepAudiobooleanOptional
promptstringOptional

Describe the result you want to create.

Maximum length: 2500 characters.

detectionIdstringOptional

A 24-character hexadecimal ID.

subjectsobject[]Optional

Maximum items: 4.

Show nested fields
maskIdstringRequired

Minimum length: 1 characters.

Maximum length: 150 characters.

referenceobjectOptional
Show nested fields
assetIdstringRequired

Use the identifier of an asset owned by the authorized account.

A 24-character hexadecimal ID.

namestringRequired

Use letters, numbers, underscores or hyphens.

Minimum length: 1 characters.

Maximum length: 40 characters.

descriptionstringOptional

Maximum length: 2000 characters.

referencesobject[]Optional

Use owned asset IDs that satisfy the selected model’s reference capabilities.

Maximum items: 3.

Show nested fields
assetIdstringRequired

Use the identifier of an asset owned by the authorized account.

A 24-character hexadecimal ID.

namestringRequired

Use letters, numbers, underscores or hyphens.

Minimum length: 1 characters.

Maximum length: 40 characters.

Request headers#

HTTP
Authorization: Bearer $TONG_API_KEYContent-Type: application/jsonIdempotency-Key: 45be69f1-c266-4a09-a82c-bf3c6303eb03

Keep one UUID for each intended action and reuse it after a timeout or retry. A different input with the same UUID is rejected.

Response fields#

An accepted request is not a finished generation. Track the saved job until its output is ready.

Accepted means the request was saved. Read its operation to follow execution.

JSON
{  "id": "e8aa0a87-6cd9-42eb-975a-b72bf43218c8",  "tool": "tong_video_edit_route_quote",  "category": "video_editor",  "channel": "api",  "state": "queued",  "status": "accepted",  "stage": "admission",  "dispatch_status": "pending",  "created_at": "2026-10-22T09:00:00.000Z",  "updated_at": "2026-10-22T09:00:00.000Z",  "detail_expires_at": null,  "detail_expired": false,  "timing": {    "dispatch_started_at": null,    "acknowledged_at": null,    "completed_at": null,    "dispatch_acknowledgement_ms": null,    "end_to_end_ms": null  },  "review": null,  "result": null,  "error": null,  "billing": {    "status": "pending",    "usage_credits": "0.000000",    "wallet_debited_credits": "0.000000"  }}
idstringRequired

The unique ID of the saved operation.

A UUID, for example e8aa0a87-6cd9-42eb-975a-b72bf43218c8.

toolstringRequired
categorystringRequired
channelstringRequired
Allowed values"api""mcp"
statestringRequired

The current execution state of the saved work.

Allowed values"queued""running""waiting""needs_review""paused""reconciling""succeeded""failed""cancelled"
statusstringRequired

The overall status to use when tracking the operation.

Allowed values"accepted""running""needs_review""paused""reconciling""succeeded""failed""cancelled"
stagestringRequired

The current phase of the operation.

Allowed values"admission""dispatch""review""generation""reconciliation""complete"
dispatch_statusstringRequired

Whether the tool accepted the request. An acknowledgement does not mean generation is complete.

Allowed values"pending""unknown""acknowledged"
created_atstringRequired

ISO 8601 date and time, for example 2026-10-22T09:00:00Z.

updated_atstringRequired

ISO 8601 date and time, for example 2026-10-22T09:00:00Z.

detail_expires_atstring | nullRequired

When stored operation details expire. A null value means no expiry is currently set.

ISO 8601 date and time, for example 2026-10-22T09:00:00Z.

detail_expiredbooleanRequired

Whether the stored operation details have expired.

timingobjectRequired

Timestamps and elapsed times for tracking this operation.

Show nested fields
dispatch_started_atstring | nullRequired

ISO 8601 date and time, for example 2026-10-22T09:00:00Z.

acknowledged_atstring | nullRequired

ISO 8601 date and time, for example 2026-10-22T09:00:00Z.

completed_atstring | nullRequired

ISO 8601 date and time, for example 2026-10-22T09:00:00Z.

dispatch_acknowledgement_msnumber | nullRequired

Minimum: 0.

end_to_end_msnumber | nullRequired

Minimum: 0.

reviewJSON | nullRequired

Review information when the operation needs human input; otherwise null.

resultJSON | nullRequired

The output returned by this tool, or null while no output is available.

errorobject | nullRequired

The public error code if the operation failed; otherwise null.

Show nested fields
codestringRequired
billingobjectRequired

Customer credit usage and wallet charges. Output readiness and billing settlement are separate.

Show nested fields
statusstringRequired
Allowed values"none""pending""settled""released""reconciling"
usage_creditsstringRequired

A decimal string with six decimal places, for example 1.250000.

wallet_debited_creditsstringRequired

A decimal string with six decimal places, for example 1.250000.

released_creditsstringOptional

A decimal string with six decimal places, for example 1.250000.

refunded_creditsstringOptional

A decimal string with six decimal places, for example 1.250000.

unfunded_creditsstringOptional

A decimal string with six decimal places, for example 1.250000.

pending_creditsstringOptional

A decimal string with six decimal places, for example 1.250000.

tokensobjectOptional
Show nested fields
inputnumberOptional

Minimum: 0.

outputnumberOptional

Minimum: 0.

cachednumberOptional

Minimum: 0.

cache_writenumberOptional

Minimum: 0.

componentsobject[]Optional
Show nested fields
idstringOptional
source_idstringRequired
toolstringRequired
modelstring | nullRequired
channelstringRequired
Allowed values"api""mcp"
credential_idstringRequired
kindstringRequired
Allowed values"text_pool""reasoning""generation"
usage_creditsstringRequired

A decimal string with six decimal places, for example 1.250000.

wallet_debited_creditsstringRequired

A decimal string with six decimal places, for example 1.250000.

evidence_atstringOptional

ISO 8601 date and time, for example 2026-10-22T09:00:00Z.

updated_atstringOptional

ISO 8601 date and time, for example 2026-10-22T09:00:00Z.

quoteobjectOptional

The quoted configuration, price and submission values, when a quote is available.

Show nested fields
idstringRequired

A UUID, for example e8aa0a87-6cd9-42eb-975a-b72bf43218c8.

operation_idstringRequired

A UUID, for example e8aa0a87-6cd9-42eb-975a-b72bf43218c8.

toolstringRequired
operationstring | nullRequired
modelstring | nullRequired
configurationobjectRequired
submit_valuestringRequired
submit_fieldstringRequired
quoted_creditsstring | nullRequired

A decimal string with six decimal places, for example 1.250000.

expires_atstring | nullRequired

ISO 8601 date and time, for example 2026-10-22T09:00:00Z.

MCP call#

JSON
{  "jsonrpc": "2.0",  "id": 1,  "method": "tools/call",  "params": {    "name": "tong_video_edit_route_quote",    "arguments": {      "body": {        "videoId": "aaaaaaaaaaaaaaaaaaaaaaaa",        "start": 0,        "end": 0,        "frame": 0      }    },    "_meta": {      "io.tongai/idempotency-key": "45be69f1-c266-4a09-a82c-bf3c6303eb03"    }  }}

REST requests wrap the tool arguments in input. MCP calls send the same arguments directly.

Response

JSON
{  "jsonrpc": "2.0",  "id": 1,  "result": {    "structuredContent": {      "id": "e8aa0a87-6cd9-42eb-975a-b72bf43218c8",      "tool": "tong_video_edit_route_quote",      "category": "video_editor",      "channel": "mcp",      "state": "queued",      "status": "accepted",      "stage": "admission",      "dispatch_status": "pending",      "created_at": "2026-10-22T09:00:00.000Z",      "updated_at": "2026-10-22T09:00:00.000Z",      "detail_expires_at": null,      "detail_expired": false,      "timing": {        "dispatch_started_at": null,        "acknowledged_at": null,        "completed_at": null,        "dispatch_acknowledgement_ms": null,        "end_to_end_ms": null      },      "review": null,      "result": null,      "error": null,      "billing": {        "status": "pending",        "usage_credits": "0.000000",        "wallet_debited_credits": "0.000000"      }    },    "content": [      {        "type": "text",        "text": "{\"id\":\"e8aa0a87-6cd9-42eb-975a-b72bf43218c8\",\"tool\":\"tong_video_edit_route_quote\",\"category\":\"video_editor\",\"channel\":\"mcp\",\"state\":\"queued\",\"status\":\"accepted\",\"stage\":\"admission\",\"dispatch_status\":\"pending\",\"created_at\":\"2026-10-22T09:00:00.000Z\",\"updated_at\":\"2026-10-22T09:00:00.000Z\",\"detail_expires_at\":null,\"detail_expired\":false,\"timing\":{\"dispatch_started_at\":null,\"acknowledged_at\":null,\"completed_at\":null,\"dispatch_acknowledgement_ms\":null,\"end_to_end_ms\":null},\"review\":null,\"result\":null,\"error\":null,\"billing\":{\"status\":\"pending\",\"usage_credits\":\"0.000000\",\"wallet_debited_credits\":\"0.000000\"}}"      }    ]  }}

Errors and limits#

HTTPErrorRecovery
400Invalid requestREQUEST_INVALIDCorrect the fields identified by the error before trying again.
401Invalid credentialCREDENTIAL_INVALIDCheck the credential, its expiry and whether it has been revoked.
402Insufficient creditsINSUFFICIENT_CREDITSAdd credits to the account that owns the credential, then continue the saved work.
403Permission deniedSCOPE_REQUIREDUse a credential with the required scopes and access to the selected resource.
404Resource unavailableRESOURCE_UNAVAILABLECheck the resource ID and that it belongs to the authorized account.
409Intent conflictIDEMPOTENCY_CONFLICTReuse an intent only with its original request. Use a new UUID for a different action.
429Rate limitedRATE_LIMITEDWait for Retry-After before retrying the same intended request.
503Temporarily unavailableDEPENDENCY_UNAVAILABLEWait for Retry-After and retry with the same intent. Check the saved operation after a timeout.