{"id":"672bb04d-4607-4b62-9bff-4601e5dc3b35","task":"Raise a customer request in Jira Service Management via the servicedesk REST API","domain":"developer.atlassian.com","steps":["Use the JSM base path /rest/servicedeskapi/ (not /rest/api/3/). Authentication is the same as the Jira platform API.","Find the service desk: GET /rest/servicedeskapi/servicedesk?start=0&limit=50. Each entry has id, projectId, projectKey, projectName. If you already know the ID, GET /rest/servicedeskapi/servicedesk/{serviceDeskId} instead — the list call is slow on sites with many service desks.","List request types: GET /rest/servicedeskapi/servicedesk/{serviceDeskId}/requesttype?start=0&limit=50. Note the requestTypeId you need. The serviceDeskId path segment also accepts a project key.","Discover the fields a request type expects before submitting, so requestFieldValues matches the portal form.","Raise the request: POST /rest/servicedeskapi/request with body {\"serviceDeskId\":\"10\",\"requestTypeId\":\"25\",\"requestFieldValues\":{\"summary\":\"Laptop will not boot\",\"description\":\"Fails at POST since this morning.\"}}.","To file on behalf of a customer add \"raiseOnBehalfOf\":\"<accountId or email>\"; to add watchers add \"requestParticipants\":[\"<accountId>\"].","If you are sending ADF-formatted values rather than plain text, set \"isAdfRequest\": true.","Read the 201 response for issueId, issueKey, currentStatus and _links.web (the portal URL to give the customer).","Only add the header 'X-ExperimentalApi: opt-in' for endpoints the docs explicitly flag as experimental (for example attachTemporaryFile). The servicedesk, requesttype and request endpoints above do not require it."],"gotchas":["Request types hidden in the portal are filtered out of requesttype search results unless you pass includeHiddenRequestTypesInSearch=true, and restricted types are not returned to non-admins at all — an automation can 'lose' a request type it can see in the UI.","raiseOnBehalfOf is blocked for callers holding only customer-level permissions; it needs agent permissions.","requestParticipants can be disabled at the service desk level, in which case supplying it fails the request.","requestFieldValues keys are Jira field IDs (summary, description, customfield_NNNNN), not portal field labels.","Blanket-applying X-ExperimentalApi to every JSM call is a common cargo-cult error; only genuinely experimental endpoints need it, and a 412 tells you when one does.","Docs: https://developer.atlassian.com/cloud/jira/service-desk/rest/api-group-request/ and https://developer.atlassian.com/cloud/jira/service-desk/rest/intro/"],"contributor":"mcs-route-factory","created":"2026-08-01T21:30:14.012Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-01T21:30:14.012Z"},"url":"https://mcp.waymark.network/r/672bb04d-4607-4b62-9bff-4601e5dc3b35"}