{"openapi":"3.0.3","info":{"title":"SAP SuccessFactors Platform User — bounded modeled profile","version":"OData v2 / 1H 2026","description":"Internal platform-user directory and account fields only. Original SAP sample metadata is retained unchanged; this document narrows executable fields and queries. Employee Central jobs/employment, navigation/permissions, tenant customizations, password operations, XML/Atom, OAuth issuance, and batch transport are not implemented."},"servers":[{"url":"/api/purple-suite/{instanceId}/contracts/hris/successfactors","variables":{"instanceId":{"default":"YOUR_INSTANCE_ID"}}}],"security":[{"bearer":[]}],"paths":{"/odata/v2/User":{"get":{"operationId":"listUsers","tags":["Platform users"],"summary":"listUsers","parameters":[{"in":"query","name":"$format","description":"JSON only (case insensitive).","schema":{"type":"string"}},{"in":"query","name":"$select","description":"Comma-separated fields: businessPhone, defaultLocale, department, division, email, firstName, hireDate, lastModifiedDateTime, lastName, location, mi, status, timeZone, title, userId, username.","schema":{"type":"string"}},{"in":"query","name":"$filter","description":"eq/ne/in over filterable string fields; and/or parentheses. Explicit status filter includes inactive records. Unsupported grammar fails closed.","schema":{"type":"string"}},{"in":"query","name":"$orderby","description":"Comma-separated sortable fields with asc/desc. SAP User sorting by status includes active and inactive users unless restricted by a status filter.","schema":{"type":"string"}},{"in":"query","name":"$top","description":"Nonnegative row limit.","schema":{"type":"string"}},{"in":"query","name":"$skip","description":"Nonnegative row offset.","schema":{"type":"string"}},{"in":"query","name":"$inlinecount","description":"allpages or none; __count is a string.","schema":{"type":"string"}}],"responses":{"200":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCollection"}}}},"400":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"insertUser","tags":["Platform users"],"summary":"insertUser","parameters":[{"in":"query","name":"$format","description":"JSON only (case insensitive).","schema":{"type":"string"}},{"in":"query","name":"processInactiveEmployees","schema":{"type":"boolean","default":false}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}}},"responses":{"201":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"400":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/odata/v2/User/$count":{"get":{"operationId":"countUsers","tags":["Platform users"],"summary":"countUsers","parameters":[{"in":"query","name":"$format","description":"JSON only (case insensitive).","schema":{"type":"string"}},{"in":"query","name":"$select","description":"Comma-separated fields: businessPhone, defaultLocale, department, division, email, firstName, hireDate, lastModifiedDateTime, lastName, location, mi, status, timeZone, title, userId, username.","schema":{"type":"string"}},{"in":"query","name":"$filter","description":"eq/ne/in over filterable string fields; and/or parentheses. Explicit status filter includes inactive records. Unsupported grammar fails closed.","schema":{"type":"string"}},{"in":"query","name":"$orderby","description":"Comma-separated sortable fields with asc/desc. SAP User sorting by status includes active and inactive users unless restricted by a status filter.","schema":{"type":"string"}},{"in":"query","name":"$top","description":"Nonnegative row limit.","schema":{"type":"string"}},{"in":"query","name":"$skip","description":"Nonnegative row offset.","schema":{"type":"string"}},{"in":"query","name":"$inlinecount","description":"allpages or none; __count is a string.","schema":{"type":"string"}}],"responses":{"200":{"description":"Count","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/odata/v2/$metadata":{"get":{"operationId":"metadata","tags":["Platform users"],"summary":"metadata","parameters":[],"responses":{"200":{"description":"Derived bounded EDMX","content":{"application/xml":{"schema":{"type":"string"}}}},"400":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/odata/v2/User/$metadata":{"get":{"operationId":"userMetadata","tags":["Platform users"],"summary":"userMetadata","parameters":[],"responses":{"200":{"description":"Derived bounded EDMX","content":{"application/xml":{"schema":{"type":"string"}}}},"400":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/odata/v2/upsert":{"post":{"operationId":"upsertUsers","tags":["Platform users"],"summary":"upsertUsers","parameters":[{"in":"query","name":"$format","description":"JSON only (case insensitive).","schema":{"type":"string"}},{"in":"query","name":"processInactiveEmployees","schema":{"type":"boolean","default":false}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UserWrite"},{"type":"array","minItems":1,"maxItems":1000,"items":{"$ref":"#/components/schemas/UserWrite"}}]}}}},"responses":{"200":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertResponse"}}}},"400":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/odata/v2/User('{userId}')":{"get":{"operationId":"readUser","tags":["Platform users"],"summary":"readUser","parameters":[{"in":"path","name":"userId","required":true,"description":"SAP User business key. Apostrophes inside the key must be doubled.","schema":{"type":"string","minLength":1}},{"in":"query","name":"$format","description":"JSON only (case insensitive).","schema":{"type":"string"}},{"in":"query","name":"$select","description":"Comma-separated fields: businessPhone, defaultLocale, department, division, email, firstName, hireDate, lastModifiedDateTime, lastName, location, mi, status, timeZone, title, userId, username.","schema":{"type":"string"}}],"responses":{"200":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"400":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"operationId":"replaceUser","tags":["Platform users"],"summary":"replaceUser","parameters":[{"in":"path","name":"userId","required":true,"description":"SAP User business key. Apostrophes inside the key must be doubled.","schema":{"type":"string","minLength":1}},{"in":"query","name":"$format","description":"JSON only (case insensitive).","schema":{"type":"string"}},{"in":"query","name":"processInactiveEmployees","schema":{"type":"boolean","default":false}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}}},"responses":{"204":{"description":"Success; empty body"},"400":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"mergeUser","tags":["Platform users"],"summary":"mergeUser","parameters":[{"in":"path","name":"userId","required":true,"description":"SAP User business key. Apostrophes inside the key must be doubled.","schema":{"type":"string","minLength":1}},{"in":"query","name":"$format","description":"JSON only (case insensitive).","schema":{"type":"string"}},{"in":"query","name":"processInactiveEmployees","schema":{"type":"boolean","default":false}},{"in":"header","name":"X-HTTP-METHOD","required":true,"schema":{"type":"string","enum":["MERGE"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserWrite"}}}},"responses":{"200":{"description":"Success; empty body"},"400":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"SAP OData v2 response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"PurpleSuite instance key in SAP's OAuth bearer-token position."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"object","required":["lang","value"],"properties":{"lang":{"type":"string","enum":["en-US"]},"value":{"type":"string"}}}}}}},"Metadata":{"type":"object","additionalProperties":false,"properties":{"uri":{"type":"string"},"type":{"type":"string","enum":["SFOData.User"]}}},"UserWrite":{"type":"object","additionalProperties":false,"properties":{"businessPhone":{"type":"string","nullable":true,"maxLength":20},"defaultLocale":{"type":"string","nullable":true,"maxLength":100},"department":{"type":"string","nullable":true,"maxLength":128},"division":{"type":"string","nullable":true,"maxLength":128},"email":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true,"maxLength":128},"hireDate":{"type":"string","nullable":true,"pattern":"^/Date\\(-?[0-9]+(?:[+-][0-9]{4})?\\)/$"},"lastName":{"type":"string","nullable":true,"maxLength":128},"location":{"type":"string","nullable":true,"maxLength":128},"mi":{"type":"string","nullable":true,"maxLength":128},"status":{"type":"string","nullable":false,"maxLength":17,"enum":["t","f","active","inactive"]},"timeZone":{"type":"string","nullable":true,"maxLength":16},"title":{"type":"string","nullable":true,"maxLength":255},"userId":{"type":"string","nullable":false,"maxLength":100},"username":{"type":"string","nullable":false,"maxLength":100},"__metadata":{"$ref":"#/components/schemas/Metadata"}}},"UserCreate":{"allOf":[{"$ref":"#/components/schemas/UserWrite"},{"required":["userId","username","status"]}]},"User":{"type":"object","additionalProperties":false,"required":["__metadata"],"properties":{"businessPhone":{"type":"string","nullable":true,"maxLength":20},"defaultLocale":{"type":"string","nullable":true,"maxLength":100},"department":{"type":"string","nullable":true,"maxLength":128},"division":{"type":"string","nullable":true,"maxLength":128},"email":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true,"maxLength":128},"hireDate":{"type":"string","nullable":true,"pattern":"^/Date\\(-?[0-9]+(?:[+-][0-9]{4})?\\)/$"},"lastModifiedDateTime":{"type":"string","nullable":true,"readOnly":true,"pattern":"^/Date\\(-?[0-9]+(?:[+-][0-9]{4})?\\)/$"},"lastName":{"type":"string","nullable":true,"maxLength":128},"location":{"type":"string","nullable":true,"maxLength":128},"mi":{"type":"string","nullable":true,"maxLength":128},"status":{"type":"string","nullable":false,"maxLength":17,"enum":["t","f","active","inactive"]},"timeZone":{"type":"string","nullable":true,"maxLength":16},"title":{"type":"string","nullable":true,"maxLength":255},"userId":{"type":"string","nullable":false,"maxLength":100},"username":{"type":"string","nullable":false,"maxLength":100},"__metadata":{"$ref":"#/components/schemas/Metadata"}}},"UserResponse":{"type":"object","required":["d"],"properties":{"d":{"$ref":"#/components/schemas/User"}}},"UserCollection":{"type":"object","required":["d"],"properties":{"d":{"type":"object","required":["results"],"properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/User"}},"__count":{"type":"string"},"__next":{"type":"string"}}}}},"UpsertResponse":{"type":"object","required":["d"],"properties":{"d":{"type":"array","items":{"type":"object","required":["key","status","editStatus","message","index","httpCode","inlineResults"],"properties":{"key":{"type":"string","nullable":true},"status":{"type":"string","enum":["OK","ERROR"]},"editStatus":{"type":"string","nullable":true,"enum":["INSERTED","UPDATED",null]},"message":{"type":"string","nullable":true},"index":{"type":"integer"},"httpCode":{"type":"integer"},"inlineResults":{"type":"object","nullable":true}}}}}}}}}