DAKSH API
Getting started
- In DAKSH, open your initials (top right) → Server console → API keys and create a key. Choose read, write or admin.
- Send it with every call:
Authorization: Bearer dk_… - Try it:
Responses are JSON. Errors look like {"error":{"code":"…","message":"…"}} with HTTP 400 (bad input), 401 (no or wrong key), 403 (not allowed), 404, 409 (busy or conflict) or 429 (too many requests; wait for Retry-After).
Connectors
Ready-made connectors run on this server and are set up by an admin under Server console → Connectors. Each one keeps its credentials encrypted on the server, can be tested, and can run any action as a dry run first to show what would change.
| System | What it does |
|---|---|
| Autodesk Construction Cloud (Autodesk Platform Services) | Pull issues into DAKSH tasks and push tasks back as issues; pull and push RFIs; pull document folders and versions into the document register; pull cost budgets. |
| SAP S/4HANA (Enterprise Project API, OData) | Pull the project and WBS elements; push planned and forecast dates to WBS elements; pull actual costs by WBS for cost control. |
| Oracle Aconex | Pull the document register (optionally the files) and mail into the sealed communication trail; send mail from DAKSH. |
| Oracle Primavera P6 EPPM (P6 REST) | Pull WBS, activities and relationships as a DAKSH schedule; push progress (percent complete, actual dates, remaining duration) back to P6. |
| Microsoft Project | Import and export MS Project XML from any version; pull schedules from Project Server (ProjectData OData). |
| Primavera P6 files | Import and export XER and P6 XML with calendars, WBS, activities, relationships, constraints and progress. |
Anything else (ERP, BI, Power BI, a client portal) can use the REST endpoints below and webhooks.
Webhooks
Admins subscribe a URL under Server console → Webhooks. DAKSH sends a POST with a JSON body for each event, retries with back-off for a day, and signs every call:
X-DAKSH-Event: task.updated X-DAKSH-Delivery: 7f3c… X-DAKSH-Timestamp: 1767225600 X-DAKSH-Signature: sha256=HMAC_SHA256(secret, timestamp + "." + raw_body)
Check the signature before trusting a call. Node.js:
const crypto = require('crypto');
function verified(req, rawBody, secret) {
const ts = req.headers['x-daksh-timestamp'], sig = req.headers['x-daksh-signature'] || '';
if (Math.abs(Date.now() / 1000 - Number(ts)) > 300) return false;
const want = 'sha256=' + crypto.createHmac('sha256', secret).update(ts + '.' + rawBody).digest('hex');
return sig.length === want.length && crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(want));
}