Featured competition · National · Vendor-neutral
The Great IndianFDE Hackathon 2026
Ship the agent that cleans up a 43-year-old manufacturer — and prove it by the business outcomes it delivers. Four task families, one shared environment, and a hidden key that decides the score. Download the data, build in whatever environment you already use, and upload the output file for automatic scoring.

- Entrants
- —
- Submissions today
- —
- Hours to next deadline
- —
- Host
- AIM Media House
Opens 20 Aug 2026 · Closes 27 Sep 2026, 23:59 IST · Stage at Cypher 2026
sandbox api
Working against DRI's systems
Workflow and Migration are not file uploads. Each participant gets an isolated copy of Deshmukh & Rao Industries — ERP, CRM, ticketing, the shared mailbox and the policy vault — behind a REST API. Your agent reads and writes it; scoring inspects the end state you leave behind.
- Base URL:
/api/public/sandbox/v1on this origin. - Every request carries
Authorization: Bearer <your key>. Get your key from the Submit tab. - 60 requests per minute per key. Over that you get HTTP 429.
- JSON in, JSON out. Unknown fields are rejected with HTTP 400 rather than silently ignored.
POST /resetrestores the seed state. It is free, unlimited, and never costs an attempt.
export DRI_BASE="https://<this-site>/api/public/sandbox/v1" export DRI_KEY="dri_…"
/erp/vendorsThe vendor master, including onboarding document flags.
curl -s -H "Authorization: Bearer $DRI_KEY" $DRI_BASE/erp/vendors
/erp/vendorsCreate a vendor. Any subset of the schema fields; vendor_name is required.
curl -s -X POST -H "Authorization: Bearer $DRI_KEY" -H "Content-Type: application/json" \
-d '{"vendor_name":"Sri Ranga Castings","gstin":"33AAACS1234R1ZK","city":"Coimbatore","state":"TN","msme_registered":"Y","gst_cert":true,"cancelled_cheque":true,"msme_declaration":true,"direct_material":true,"trial_po_cap":200000}' \
$DRI_BASE/erp/vendors/erp/vendors/{vendor_id}Update a vendor in place.
curl -s -X PATCH -H "Authorization: Bearer $DRI_KEY" -H "Content-Type: application/json" \
-d '{"trial_po_cap":200000}' $DRI_BASE/erp/vendors/V-1061/erp/productsThe product master with drishti_price and mapped_dri_sku.
curl -s -H "Authorization: Bearer $DRI_KEY" $DRI_BASE/erp/products
/erp/products/{sku}Only drishti_price and mapped_dri_sku may be written.
curl -s -X PATCH -H "Authorization: Bearer $DRI_KEY" -H "Content-Type: application/json" \
-d '{"drishti_price":114580.0}' $DRI_BASE/erp/products/CP-103/erp/purchase_ordersPurchase orders. Read-only.
curl -s -H "Authorization: Bearer $DRI_KEY" $DRI_BASE/erp/purchase_orders
/erp/invoicesVendor invoices. Read-only.
curl -s -H "Authorization: Bearer $DRI_KEY" $DRI_BASE/erp/invoices
/erp/approvalsRecord an approval. role is one of CFO, PLANT_HEAD, QA, GM_PROCUREMENT.
curl -s -X POST -H "Authorization: Bearer $DRI_KEY" -H "Content-Type: application/json" \
-d '{"vendor_name":"Sri Ranga Castings","role":"CFO"}' $DRI_BASE/erp/approvals/erp/reports/exceptionsPost (or replace) the exceptions report.
curl -s -X POST -H "Authorization: Bearer $DRI_KEY" -H "Content-Type: application/json" \
-d '{"counts":{"QTY_MISMATCH":21,"RATE_MISMATCH":16},"value_at_risk":88404135.42}' \
$DRI_BASE/erp/reports/exceptions/crm/customersDistributor accounts across both CRM instances.
curl -s -H "Authorization: Bearer $DRI_KEY" $DRI_BASE/crm/customers
/crm/customers/{legacy_id}Only crm_id, migrated_to_salestrack and merged_into may be written.
curl -s -X PATCH -H "Authorization: Bearer $DRI_KEY" -H "Content-Type: application/json" \
-d '{"migrated_to_salestrack":"Y","crm_id":"ST-10001"}' $DRI_BASE/crm/customers/C-5001/ticketsThe ticket queue. Tasks arrive here.
curl -s -H "Authorization: Bearer $DRI_KEY" $DRI_BASE/tickets
/tickets/{ticket_id}Only status may be written.
curl -s -X PATCH -H "Authorization: Bearer $DRI_KEY" -H "Content-Type: application/json" \
-d '{"status":"Closed"}' $DRI_BASE/tickets/FIX-3444/email/messagesThe shared ops@ mailbox extract. Read-only.
curl -s -H "Authorization: Bearer $DRI_KEY" $DRI_BASE/email/messages
/vault/documentsThe four policy documents as text. Read-only.
curl -s -H "Authorization: Bearer $DRI_KEY" $DRI_BASE/vault/documents
/resetThrow away your sandbox and restore the seed state. Unlimited, never costs an attempt.
curl -s -X POST -H "Authorization: Bearer $DRI_KEY" $DRI_BASE/reset
Onboard Sri Ranga Castings, Coimbatore (TN), GSTIN 33AAACS1234R1ZK, MSME-registered, direct-material supplier, projected annual spend Rs 14,00,000, per VOS-7.
Reconcile the vendor invoices against the purchase orders and post the exceptions report: a count per exception type and the total value at risk.
The distributor master carries duplicate accounts. Merge each duplicate into its original by setting the duplicate's merged_into to the original's legacy_id. Leave every other customer alone.
DRISHTI still carries the 2019 prices. Set drishti_price to list_price_2023 for every product that has a 2023 price. Products without one keep the price they already hold.
Set mapped_dri_sku on each FT- product to a DRI SKU whose description equals the FlowTech description minus the " (FlowTech)" suffix and whose list_price_2023 matches.
For every customer still marked migrated_to_salestrack = N, flip it to Y and assign a crm_id of the form ST-##### that is unique across your customers. The 55 accounts already migrated keep the crm_id they have.
Each family scores as the mean of its three tasks; each task scores as the fraction of its checks that pass. Wiping rows instead of correcting them scores zero for that task.
