Digital Toolkit APIs

← Just want crops?

Intelligent cropping and digital-profile copy from the Digital Toolkit Engine, for any adidas team or page. Nothing you send is kept after the response.

Your API key

Ask the Digital Toolkit team for a key.

Call it from code

# One photo, every device of one of our components
curl -X POST https://api.toolkitengine.com/crop/v1/components/Banner%20Hero \
  -H "Authorization: Bearer $DTK_KEY" \
  -F image=@photo.jpg -F channel=.COM -F product=footwear

# One photo, a size of your own
curl -X POST https://api.toolkitengine.com/crop/v1/crops \
  -H "Authorization: Bearer $DTK_KEY" \
  -F image=@photo.jpg \
  -F 'targets=[{"name":"social","width":1080,"height":1350,
               "safe_zones":[{"left_pct":0,"top_pct":75,"right_pct":100,"bottom_pct":100}]}]'

# A batch — 1. create the job: what to cut, for which page, how to name the files
curl -X POST https://api.toolkitengine.com/crop/v1/jobs \
  -H "Authorization: Bearer $DTK_KEY" -H "Content-Type: application/json" \
  -d '{"template":[{"component":"Banner Hero","touchpoint":"HP"},
                   {"component":"Banner Hero","touchpoint":"WGLP"},
                   {"component":"Card Teaser","touchpoint":"CATLP"}],
       "channel":".COM","product":"footwear","category":"Football",
       "campaign":{"market":"global","campaign":"Predator Touch",
                   "category":"Football","season":"FW26","phase":"Launch"},
       "select":"best"}'
# → {"job_id":"job_…","upload_to":"/crop/v1/jobs/job_…/photos",…}
# or, instead of uploading: "photos_from":"API TEST/your-team/shoot"  (a folder your key may read;
#   the crops are written back to …/shoot/crops/<job_id>/ unless "write_back":false)

# 2. upload each photo (up to 50)
curl -X POST https://api.toolkitengine.com/crop/v1/jobs/$JOB/photos \
  -H "Authorization: Bearer $DTK_KEY" -F images=@photo1.jpg

# 3. start, poll until "status":"done", download the zip
curl -X POST https://api.toolkitengine.com/crop/v1/jobs/$JOB/start -H "Authorization: Bearer $DTK_KEY"
curl https://api.toolkitengine.com/crop/v1/jobs/$JOB -H "Authorization: Bearer $DTK_KEY"
curl https://api.toolkitengine.com/crop/v1/jobs/$JOB/download -H "Authorization: Bearer $DTK_KEY" -o result.zip

# Copy: one approved line, one line per digital profile
curl -X POST https://api.toolkitengine.com/copy/v1/variants \
  -H "Authorization: Bearer $DTK_KEY" -H "Content-Type: application/json" \
  -d '{"approved":{"title":"Designed to be worn your way"},"market":"eu",
       "profiles":["football-fan"],"component":"Banner Hero"}'
productfootwear · apparel · both
categoryOriginals · Football · Running
touchpointHP · CATLP · CAMLP · GLP · WGLP · MGLP · PLP · PDP · APP · CRM · PN (push notification) — the page also sets the channel (APP, CRM); GET /crop/v1/touchpoints lists which components live on which page. WGLP / MGLP cut only from photos showing women / men
selectall · best (each component from the photo that fits its shape best)
campaignnames the files global-predator_touch-football-fw26-launch-hp-banner_hero-d.jpg (-t, -m); leave it out for <photo>-<component>-<device>
shot_typeoptional: Close-Up · Full-Body-Styling
photos_froma SharePoint folder of the Campaigns Workspace your key is scoped to (GET /crop/v1/sources lists them); the job reads the folder, up to 50 photos, no upload step
write_backtrue (default) uploads the crops and report.json to <photos_from>/crops/<job_id>/; the status then carries delivered_to. The zip download stays either way

A batch from Terminal

Components, by page — the page goes into the file name; the number is how many (tiles for Group Media); each is cut for desktop, tablet and mobile
Paste your key above to see the components.

Write copy per digital profile