---
title: "Create a position (skill)"
method: POST
path: "/v1/public/skills"
tags: ["Public", "Skills"]
---

# Create a position (skill)

`POST /v1/public/skills`

## Request

- Base URL: `https://api.evolia.com`
- URL: `https://api.evolia.com/v1/public/skills`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/evolia/apis/public-evolia/docs/v1/public/skills/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- CreatePublicSkillRequest
  - `names` object, required: The name of the skill (position) in various locales. Accepted locales are en, fr, es
  - `code` string: A human readable ID that can be use has an ID for other API calls. The code is also used to map a skill to an external system structural element.
  - `abbrev` string: an abbreviation text, used in various place in the application where space is tight. Like on shifts of the schedule view.
  - `colorIndex` number: An index from 0 to 19 matching the skill color palette. Check the create position screen in Evolia settings.
  - `enableClocking` boolean: When true, shifts assigned to this skill are clockable by employees.
  - `dontAutoPropagate` boolean: Relevant only when enableClocking is false. When true, shift planned time is propagated as worked time in the timesheet
  - `externalId` string: A unique UID or a human readable ID that can be use has an ID for other API calls. The externalId can also be used to map a position to an external system structural element.
  - `custom` object: To set custom fields to a skill. You can pass a json objet where the values are string

## Response `200`

- PublicSkill
  - `uid` string, required: unique skill id
  - `status` 'active' | 'deleted', required: Skill status
  - `names` object, required: Multilingual skill name as a map indexed by locale ("en" or "fr")
  - `abbrev` string: Represents the abbreviation of the skill
  - `code` string: The skill code. The code is often used as a mapping value between Evolia and an external system
  - `externalId` string: The skill externalId. The unique externalId is often used as a mapping value between Evolia and an external system
  - `colorIndex` number, required: An index from 0 to 19 matching the skill color palette. Check the create position screen in Evolia settings.
  - `custom` object, nullable: An optional object of custom properties. Current implementation only support string values

---

[API](https://skmtc.dev/evolia/apis/public-evolia.md) - [All operations](https://skmtc.dev/evolia/apis/public-evolia/llms.txt) - [OpenAPI document](https://skmtc.dev/evolia/apis/public-evolia/revisions/e42abb18d4b6?raw)
