dodamai
Help centreWhat's newContact usAPI docsPricing
Language
Sign inCreate account
Help centreWhat's newContact usAPI docsPricing
dodamai

Guides for inspecting, fixing and publishing cross-border listings with Dodam AI.

Support

  • Help centre
  • What's new
  • Contact us
  • API docs
  • Pricing

Legal

  • Terms of service
  • Privacy policy
  • Legal

Company

Company
주식회사 바닐라엑스
Email
admin@vanillax.co
Address
서울특별시 동대문구 천호대로 295 우창프라자 8층 801호
© 2026 VanillaX Inc. · Dodam AI
Language
Help centre
Team and API6 min readUpdated 2026-09-03

Issuing and using API keys

Create a key, choose its scopes, call the REST API v1, and revoke a key that leaked.

On this page

  1. Creating a key
  2. Authenticating
  3. The endpoints you will use most
  4. Error codes
  5. Rotating and revoking

Creating a key

  1. 1Open Settings, then API keys. Only owners and admins see this screen.
  2. 2Give the key a name that says where it runs, for example "listing pipeline, production".
  3. 3Pick the scopes it needs and create it.
  4. 4Copy the key immediately. Only a short prefix is stored afterwards — the full value is never shown again.
ScopeGrants
jobs:readRead inspections, findings, outputs and reports.
jobs:writeCreate inspections, apply fixes, request re-inspection.
rules:readRead the resolved marketplace ruleset.

Grant only what the integration needs. A read-only reporting job should never hold jobs:write.

Authenticating

Send the key as a bearer token on every request. Keys look like dk_live_ followed by a random secret.

curl -H "Authorization: Bearer dk_live_..." \
  "https://dodam.vanillax.co/api/v1/rules?country=JP&platform=rakuten"

A missing or invalid key returns 401 unauthorized. A valid key without the required scope returns 403 forbidden and names the scope it needs.

The endpoints you will use most

CallPurpose
POST /api/v1/jobsCreate an inspection from a multipart upload of images and listing text.
GET /api/v1/jobs/{id}Read the job with its score, verdict and summary.
GET /api/v1/jobs/{id}/findingsList findings with evidence, severity and auto-fix flags.
POST /api/v1/jobs/{id}/fixApply a list of finding ids; re-inspection runs automatically.
POST /api/v1/jobs/{id}/reinspectStart a new round without applying fixes.
GET /api/v1/jobs/{id}/outputsFinal asset URLs, or add format=zip for the archive.
GET /api/v1/jobs/{id}/reportThe full report as JSON.
GET /api/v1/usageUnits used this month against your quota.

The full reference, request bodies and response shapes are in the API documentation, and the machine-readable contract is at /api/v1/openapi.json.

Error codes

Errors always return the shape { error: { code, message } } so you can branch on code rather than on a message string.

StatusCodeMeaning
400validation_errorA field is missing or has an unknown value; the message names it.
401unauthorizedNo key, a revoked key, or a malformed header.
403forbiddenThe key lacks the scope, or the resource belongs to another organization.
404not_foundNo such job in your organization.
415unsupported_media_typeThe upload was not multipart or the file type is not an image.
429quota_exhaustedThe monthly quota is used up.
500internal_errorUnexpected failure — retry, then contact support with the timestamp.

Rotating and revoking

  1. 1Create the replacement key first and deploy it.
  2. 2Confirm the new key is being used — the API keys screen shows the last-used time for each key.
  3. 3Revoke the old key. Revocation takes effect on the next request and cannot be undone.

If a key has leaked, revoke it first and worry about the deployment second. Every call made with a key is attributed to it in your usage breakdown.

Was this helpful?

Related guides

  • Usage and monthly quotaWhat counts as a unit, where to see the remaining balance, and what happens when the quota runs out.
  • Team members and rolesInvite colleagues, choose the right role, and understand what each role can and cannot do.
  • Final assets and the inspection reportWhat you get at the end of a job, how versions are tracked, and what is inside the report.

Did not find the answer?

Send us the question with your inspection id and we will look at the exact job.

Contact us