---
updatedAt: 2026-05-05T13:44:18.000Z
---

Fetch the complete documentation index at: https://apidocs.eightfold.ai/llms.txt. Use this file to discover all available pages before exploring further.

# Create Demand

Create a new Demand

# OpenAPI definition

```json
{
  "servers": [
    {
      "url": "https://apiv2.{domain}.ai",
      "variables": {
        "domain": {
          "default": "eightfold",
          "enum": [
            "eightfold",
            "eightfold-eu",
            "eightfold-gov",
            "eightfold-ca",
            "eightfold-me",
            "eightfold-wu",
            "eightfold-ap"
          ]
        }
      }
    }
  ],
  "paths": {
    "/api/v2/resource_management/demands": {
      "post": {
        "description": "Create a new Demand",
        "operationId": "create_demand",
        "parameters": [
          {
            "description": "The secret key to access the api. It starts with the bearer token",
            "in": "header",
            "name": "Authorization",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DemandSchema"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DemandSchema"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Create Demand",
        "tags": [
          "Demand"
        ]
      }
    }
  },
  "info": {
    "title": "Api_server_v2_service Service",
    "version": "1.0.0"
  },
  "openapi": "3.0.2",
  "components": {
    "schemas": {
      "SkillGroupList": {
        "type": "object",
        "properties": {
          "proficiency": {
            "type": "number",
            "format": "float",
            "nullable": true,
            "description": "group proficiency of the skill group"
          },
          "groupName": {
            "type": "string",
            "nullable": true,
            "description": "name of the skill group"
          },
          "level": {
            "type": "string",
            "readOnly": true,
            "nullable": true,
            "description": "level of the role"
          },
          "skillCategory": {
            "type": "string",
            "nullable": true,
            "description": "skill category of the skill group"
          }
        }
      },
      "SkillProficiency": {
        "type": "object",
        "properties": {
          "proficiency": {
            "type": "number",
            "format": "float",
            "nullable": true,
            "description": "proficiency of the role"
          },
          "skillGroupList": {
            "nullable": true,
            "description": "skill group list of a role",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SkillGroupList"
            }
          },
          "level": {
            "type": "string",
            "readOnly": true,
            "nullable": true,
            "description": "level of the role"
          },
          "name": {
            "type": "string",
            "nullable": true,
            "description": "name of the role"
          }
        }
      },
      "CalibrationTemplate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32",
            "readOnly": true,
            "nullable": true,
            "description": "id of the calibration template"
          },
          "name": {
            "type": "string",
            "nullable": true,
            "description": "Name of the calibration template"
          }
        }
      },
      "RoleSchema": {
        "type": "object",
        "properties": {
          "templates": {
            "readOnly": true,
            "nullable": true,
            "description": "all calibration templates associated with the role",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalibrationTemplate"
            }
          },
          "name": {
            "type": "string",
            "nullable": true,
            "description": "name of the role"
          }
        }
      },
      "PersonSchema": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "nullable": true,
            "description": "email"
          },
          "name": {
            "type": "string",
            "nullable": true,
            "description": "Name"
          }
        },
        "required": [
          "name"
        ]
      },
      "RmUserGroup": {
        "type": "object",
        "properties": {
          "userGroupId": {
            "type": "string",
            "nullable": true,
            "description": "Unique identifier for the user group"
          }
        }
      },
      "DemandPublishSettings": {
        "type": "object",
        "properties": {
          "publishMode": {
            "type": "string",
            "readOnly": true,
            "nullable": true,
            "description": "Publish mode (local, custom, local_and_custom)"
          },
          "publishedToUserGroups": {
            "readOnly": true,
            "nullable": true,
            "description": "User groups the demand is published to",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RmUserGroup"
            }
          }
        }
      },
      "EntityTag": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "user",
              "system"
            ],
            "description": "Type of the tag (user/system)"
          },
          "name": {
            "type": "string",
            "description": "Name of the tag"
          },
          "category": {
            "type": "string",
            "enum": [
              "inherited_tag",
              null
            ],
            "nullable": true,
            "description": "Category of the tag (e.g. inherited_tag)"
          }
        },
        "required": [
          "name",
          "type"
        ]
      },
      "DemandOrgUnit": {
        "type": "object",
        "properties": {
          "externalId": {
            "type": "string",
            "readOnly": true,
            "nullable": true,
            "description": "external id"
          },
          "id": {
            "type": "integer",
            "format": "int32",
            "readOnly": true,
            "nullable": true,
            "description": "id"
          },
          "isArchived": {
            "type": "boolean",
            "readOnly": true,
            "nullable": true,
            "description": "is archived"
          },
          "status": {
            "type": "string",
            "readOnly": true,
            "nullable": true,
            "description": "status"
          },
          "userGroups": {
            "readOnly": true,
            "nullable": true,
            "description": "User groups associated with the demand",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RmUserGroup"
            }
          },
          "mainOwner": {
            "readOnly": true,
            "nullable": true,
            "description": "main owner",
            "allOf": [
              {
                "$ref": "#/components/schemas/PersonSchema"
              }
            ]
          },
          "endDate": {
            "type": "integer",
            "format": "int32",
            "readOnly": true,
            "nullable": true,
            "description": "end date in epoch timestamp"
          },
          "otherOwners": {
            "readOnly": true,
            "nullable": true,
            "description": "other owners",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonSchema"
            }
          },
          "parentExtId": {
            "type": "string",
            "readOnly": true,
            "nullable": true,
            "description": "parent external id"
          },
          "startDate": {
            "type": "integer",
            "format": "int32",
            "readOnly": true,
            "nullable": true,
            "description": "start date in epoch timestamp"
          },
          "type": {
            "type": "string",
            "readOnly": true,
            "nullable": true,
            "description": "org unit type"
          },
          "customFields": {
            "type": "object",
            "readOnly": true,
            "nullable": true,
            "description": "custom fields"
          },
          "title": {
            "type": "string",
            "readOnly": true,
            "nullable": true,
            "description": "title"
          },
          "tags": {
            "readOnly": true,
            "description": "Tags associated with the demand org unit",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityTag"
            }
          }
        }
      },
      "DemandCalibrationData": {
        "type": "object",
        "properties": {
          "flags": {
            "type": "array",
            "nullable": true,
            "description": "flags",
            "items": {
              "type": "string"
            }
          },
          "skillProficiencies": {
            "writeOnly": true,
            "nullable": true,
            "description": "skill proficiencies",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SkillProficiency"
            }
          },
          "minExperience": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "min experience"
          },
          "workCategories": {
            "type": "array",
            "nullable": true,
            "description": "work categories",
            "items": {
              "type": "string"
            }
          },
          "demandTitle": {
            "type": "string",
            "nullable": true,
            "description": "demand title"
          },
          "notes": {
            "type": "string",
            "nullable": true,
            "description": "notes"
          },
          "numOpenings": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "number of openings"
          },
          "relocation": {
            "type": "array",
            "nullable": true,
            "description": "relocation",
            "items": {
              "type": "string"
            }
          },
          "skills": {
            "type": "array",
            "nullable": true,
            "description": "skills",
            "items": {
              "type": "string"
            }
          },
          "seniorities": {
            "type": "array",
            "nullable": true,
            "description": "seniorities",
            "items": {
              "type": "string"
            }
          },
          "titles": {
            "type": "array",
            "nullable": true,
            "description": "alternative demand titles",
            "items": {
              "type": "string"
            }
          },
          "idealResources": {
            "type": "array",
            "nullable": true,
            "description": "ideal resources",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "type": "array",
            "nullable": true,
            "description": "locations",
            "items": {
              "type": "string"
            }
          },
          "maxExperience": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "max experience"
          },
          "customFields": {
            "type": "object",
            "nullable": true,
            "description": "custom fields"
          },
          "idealResourceUrls": {
            "type": "array",
            "nullable": true,
            "description": "ideal resources url",
            "items": {
              "type": "string"
            }
          },
          "tags": {
            "description": "Tags associated with the demand",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityTag"
            }
          }
        }
      },
      "DemandSchema": {
        "type": "object",
        "properties": {
          "isArchived": {
            "type": "boolean",
            "readOnly": true,
            "nullable": true,
            "description": "Whether the demand has been archived or not"
          },
          "demandManager": {
            "nullable": true,
            "description": "Demand Manager",
            "allOf": [
              {
                "$ref": "#/components/schemas/PersonSchema"
              }
            ]
          },
          "capacity": {
            "type": "number",
            "format": "float",
            "nullable": true,
            "description": "Capacity of the demand"
          },
          "serviceLine": {
            "type": "string",
            "nullable": true,
            "description": "Service Line of the demand"
          },
          "rmUserGroups": {
            "nullable": true,
            "description": "User groups associated with the demand",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RmUserGroup"
            }
          },
          "publishSettings": {
            "readOnly": true,
            "nullable": true,
            "description": "Publish mode and the user groups the demand is published to. Only applicable when RM user groups are enabled.",
            "allOf": [
              {
                "$ref": "#/components/schemas/DemandPublishSettings"
              }
            ]
          },
          "name": {
            "type": "string",
            "readOnly": true,
            "nullable": true,
            "description": "Title of the Demand"
          },
          "userId": {
            "type": "string",
            "nullable": true,
            "description": "User who created the demand"
          },
          "followers": {
            "type": "array",
            "nullable": true,
            "description": "all the followers of the demand",
            "items": {
              "type": "string"
            }
          },
          "startDate": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Start date of the demand"
          },
          "demandOrgUnits": {
            "readOnly": true,
            "nullable": true,
            "description": "Org units (program, project) associated with the demand",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DemandOrgUnit"
            }
          },
          "demandId": {
            "type": "integer",
            "format": "int32",
            "readOnly": true,
            "nullable": true,
            "description": "Demand id"
          },
          "endDate": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "End date of the demand"
          },
          "demandStatus": {
            "type": "string",
            "nullable": true,
            "description": "Status of the demand"
          },
          "numOpenings": {
            "type": "integer",
            "format": "int32",
            "readOnly": true,
            "nullable": true,
            "description": "The number of openings for this demand"
          },
          "calibrationConfirmedBy": {
            "type": "string",
            "nullable": true,
            "description": "User who confirmed the calibration"
          },
          "resourceManager": {
            "nullable": true,
            "description": "Resource Manager",
            "allOf": [
              {
                "$ref": "#/components/schemas/PersonSchema"
              }
            ]
          },
          "calibrationConfirmedAt": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Confirmed timestamp for the calibration"
          },
          "calibrationData": {
            "nullable": true,
            "description": "calibration data of the demand",
            "allOf": [
              {
                "$ref": "#/components/schemas/DemandCalibrationData"
              }
            ]
          },
          "subServiceLine": {
            "type": "string",
            "nullable": true,
            "description": "Sub service line of the demand"
          },
          "role": {
            "readOnly": true,
            "nullable": true,
            "description": "role associated with the demand",
            "allOf": [
              {
                "$ref": "#/components/schemas/RoleSchema"
              }
            ]
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Detailed Description in a text format"
          }
        },
        "required": [
          "capacity",
          "demandStatus",
          "endDate",
          "startDate"
        ]
      }
    }
  }
}
```