> For the complete documentation index, see [llms.txt](https://docs.bird.com/api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bird.com/api/collaborations-api/api-reference/skills.md).

# Skills

## GET /workspaces/{workspaceId}/inbox/skills

> List Agent Skills

```json
{"openapi":"3.0.3","info":{"title":"Collaboration","version":"v1"},"tags":[],"security":[{"user":[]},{"accessKey":[]}],"components":{"securitySchemes":{"user":{"description":"Provide the token that is returned upon login","scheme":"bearer","type":"http","bearerFormat":"jwt"},"accessKey":{"description":"Uses the Authorization header: 'AccessKey ' followed by your access key token","scheme":"AccessKey","type":"http"}},"parameters":{"pagination.param.limit":{"description":"Limits the number of results to return.","in":"query","name":"limit","schema":{"default":25,"maximum":100,"type":"integer"}},"pagination.param.pageToken":{"description":"The cursor that keeps track of the current position in the results.","in":"query","name":"pageToken","schema":{"type":"string"}},"pagination.param.reverse":{"description":"Reverses the order in which the results are returned.","in":"query","name":"reverse","schema":{"default":false,"type":"boolean"}}},"schemas":{"common.paginated_list.response_body":{"description":"A list of results that supports pagination.","properties":{"nextPageToken":{"description":"The token to fetch the next page of results. If empty, there are no more results to fetch.","type":"string"}},"title":"PaginatedList","type":"object"},"inbox.agents.skill":{"description":"AgentSkill can be assigned to Agent or Ticket. In case of RootItem it specifies what skills Agent should have to handle the item.\n","properties":{"createdAt":{"format":"date-time","type":"string"},"createdBy":{"format":"uuid","type":"string"},"description":{"type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"},"updatedBy":{"format":"uuid","type":"string"},"valueType":{"$ref":"#/components/schemas/inbox.agents.skill.value.type"},"values":{"items":{"$ref":"#/components/schemas/inbox.agents.skill.value"},"type":"array"},"workspaceId":{"format":"uuid","type":"string"}},"required":["id","workspaceId","name","description","valueType","values","createdAt","updatedAt","createdBy","updatedBy"],"type":"object"},"inbox.agents.skill.value.type":{"description":"AgentSkillValueType defines how can the Values of a Skill can be selected.\n","enum":["single","multiple","boolean"],"type":"string"},"inbox.agents.skill.value":{"description":"AgentSkillValue is a single value that can be selected for a skill.\n","properties":{"createdAt":{"format":"date-time","type":"string"},"icon":{"type":"string"},"id":{"format":"uuid","type":"string"},"value":{"type":"string"}},"required":["id","value","icon","createdAt"],"type":"object"}}},"paths":{"/workspaces/{workspaceId}/inbox/skills":{"get":{"operationId":"listAgentSkills","parameters":[{"$ref":"#/components/parameters/pagination.param.limit"},{"$ref":"#/components/parameters/pagination.param.pageToken"},{"$ref":"#/components/parameters/pagination.param.reverse"}],"responses":{"200":{"description":"A paginated list of agent skills.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/common.paginated_list.response_body"},{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/inbox.agents.skill"}}},"required":["results"]}]}}}}},"summary":"List Agent Skills","tags":["agent_skills"]}}}}
```

## POST /workspaces/{workspaceId}/inbox/skills

> Create Agent Skill

```json
{"openapi":"3.0.3","info":{"title":"Collaboration","version":"v1"},"tags":[],"security":[{"user":[]},{"accessKey":[]}],"components":{"securitySchemes":{"user":{"description":"Provide the token that is returned upon login","scheme":"bearer","type":"http","bearerFormat":"jwt"},"accessKey":{"description":"Uses the Authorization header: 'AccessKey ' followed by your access key token","scheme":"AccessKey","type":"http"}},"schemas":{"inbox.agents.skill.value.type":{"description":"AgentSkillValueType defines how can the Values of a Skill can be selected.\n","enum":["single","multiple","boolean"],"type":"string"},"inbox.agents.skill":{"description":"AgentSkill can be assigned to Agent or Ticket. In case of RootItem it specifies what skills Agent should have to handle the item.\n","properties":{"createdAt":{"format":"date-time","type":"string"},"createdBy":{"format":"uuid","type":"string"},"description":{"type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"},"updatedBy":{"format":"uuid","type":"string"},"valueType":{"$ref":"#/components/schemas/inbox.agents.skill.value.type"},"values":{"items":{"$ref":"#/components/schemas/inbox.agents.skill.value"},"type":"array"},"workspaceId":{"format":"uuid","type":"string"}},"required":["id","workspaceId","name","description","valueType","values","createdAt","updatedAt","createdBy","updatedBy"],"type":"object"},"inbox.agents.skill.value":{"description":"AgentSkillValue is a single value that can be selected for a skill.\n","properties":{"createdAt":{"format":"date-time","type":"string"},"icon":{"type":"string"},"id":{"format":"uuid","type":"string"},"value":{"type":"string"}},"required":["id","value","icon","createdAt"],"type":"object"},"error.detailed":{"additionalProperties":false,"description":"An error returned from the API that includes additional details about the error. The `details` property can contain any additional information about the error that may be helpful for debugging or understanding the error.\n","properties":{"code":{"description":"A unique code that identifies the error. This code can be used to programmatically identify the error.","minLength":3,"type":"string"},"details":{"additionalProperties":true,"description":"Any additional information about the error that may be helpful for debugging or understanding the error.","type":"object"},"message":{"description":"A human-readable message that describes the error.","minLength":1,"type":"string"}},"required":["code","message"],"title":"DetailedError","type":"object"},"error.validation":{"additionalProperties":false,"description":"A validation error returned from the API. The `details` map keys are JSON paths\npointing into the request body / parameters; values are arrays of human-readable\nmessages describing each problem with that path.\n","properties":{"code":{"description":"A unique code that identifies the error. This code can be used to programmatically identify the error.","minLength":3,"type":"string"},"details":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"description":"Per-field validation messages keyed by JSON path.","type":"object"},"message":{"description":"A human-readable message that describes the error.","minLength":1,"type":"string"}},"required":["code","message"],"title":"ValidationError","type":"object"}},"responses":{"inbox.agents.skill.response":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/inbox.agents.skill"}}},"description":"The agent skill."},"error.response.not_found":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.detailed"}}},"description":"The requested resource was not found."},"error.response.conflict":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.detailed"}}},"description":"The request conflicts with the current state of the resource."},"error.response.invalid_request":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.validation"}}},"description":"The request contains invalid parameters or body fields."}}},"paths":{"/workspaces/{workspaceId}/inbox/skills":{"post":{"operationId":"createAgentSkill","requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"CreateAgentSkill is the request body for creating a new AgentSkill.\n","properties":{"name":{"type":"string"},"description":{"type":"string"},"valueType":{"$ref":"#/components/schemas/inbox.agents.skill.value.type"},"values":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"icon":{"type":"string"}},"required":["value","icon"]}}},"required":["name","description","valueType","values"]}}},"required":true},"responses":{"201":{"$ref":"#/components/responses/inbox.agents.skill.response"},"404":{"$ref":"#/components/responses/error.response.not_found"},"409":{"$ref":"#/components/responses/error.response.conflict"},"422":{"$ref":"#/components/responses/error.response.invalid_request"}},"summary":"Create Agent Skill","tags":["agent_skills"]}}}}
```

## GET /workspaces/{workspaceId}/inbox/skills/{agentSkillId}

> Get Agent Skill

```json
{"openapi":"3.0.3","info":{"title":"Collaboration","version":"v1"},"tags":[],"security":[{"user":[]},{"accessKey":[]}],"components":{"securitySchemes":{"user":{"description":"Provide the token that is returned upon login","scheme":"bearer","type":"http","bearerFormat":"jwt"},"accessKey":{"description":"Uses the Authorization header: 'AccessKey ' followed by your access key token","scheme":"AccessKey","type":"http"}},"responses":{"inbox.agents.skill.response":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/inbox.agents.skill"}}},"description":"The agent skill."},"error.response.not_found":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.detailed"}}},"description":"The requested resource was not found."}},"schemas":{"inbox.agents.skill":{"description":"AgentSkill can be assigned to Agent or Ticket. In case of RootItem it specifies what skills Agent should have to handle the item.\n","properties":{"createdAt":{"format":"date-time","type":"string"},"createdBy":{"format":"uuid","type":"string"},"description":{"type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"},"updatedBy":{"format":"uuid","type":"string"},"valueType":{"$ref":"#/components/schemas/inbox.agents.skill.value.type"},"values":{"items":{"$ref":"#/components/schemas/inbox.agents.skill.value"},"type":"array"},"workspaceId":{"format":"uuid","type":"string"}},"required":["id","workspaceId","name","description","valueType","values","createdAt","updatedAt","createdBy","updatedBy"],"type":"object"},"inbox.agents.skill.value.type":{"description":"AgentSkillValueType defines how can the Values of a Skill can be selected.\n","enum":["single","multiple","boolean"],"type":"string"},"inbox.agents.skill.value":{"description":"AgentSkillValue is a single value that can be selected for a skill.\n","properties":{"createdAt":{"format":"date-time","type":"string"},"icon":{"type":"string"},"id":{"format":"uuid","type":"string"},"value":{"type":"string"}},"required":["id","value","icon","createdAt"],"type":"object"},"error.detailed":{"additionalProperties":false,"description":"An error returned from the API that includes additional details about the error. The `details` property can contain any additional information about the error that may be helpful for debugging or understanding the error.\n","properties":{"code":{"description":"A unique code that identifies the error. This code can be used to programmatically identify the error.","minLength":3,"type":"string"},"details":{"additionalProperties":true,"description":"Any additional information about the error that may be helpful for debugging or understanding the error.","type":"object"},"message":{"description":"A human-readable message that describes the error.","minLength":1,"type":"string"}},"required":["code","message"],"title":"DetailedError","type":"object"}}},"paths":{"/workspaces/{workspaceId}/inbox/skills/{agentSkillId}":{"get":{"operationId":"getAgentSkill","responses":{"200":{"$ref":"#/components/responses/inbox.agents.skill.response"},"404":{"$ref":"#/components/responses/error.response.not_found"}},"summary":"Get Agent Skill","tags":["agent_skills"]}}}}
```

## PATCH /workspaces/{workspaceId}/inbox/skills/{agentSkillId}

> Update Agent Skill

```json
{"openapi":"3.0.3","info":{"title":"Collaboration","version":"v1"},"tags":[],"security":[{"user":[]},{"accessKey":[]}],"components":{"securitySchemes":{"user":{"description":"Provide the token that is returned upon login","scheme":"bearer","type":"http","bearerFormat":"jwt"},"accessKey":{"description":"Uses the Authorization header: 'AccessKey ' followed by your access key token","scheme":"AccessKey","type":"http"}},"schemas":{"inbox.agents.skill.value.type":{"description":"AgentSkillValueType defines how can the Values of a Skill can be selected.\n","enum":["single","multiple","boolean"],"type":"string"},"inbox.agents.skill":{"description":"AgentSkill can be assigned to Agent or Ticket. In case of RootItem it specifies what skills Agent should have to handle the item.\n","properties":{"createdAt":{"format":"date-time","type":"string"},"createdBy":{"format":"uuid","type":"string"},"description":{"type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"},"updatedBy":{"format":"uuid","type":"string"},"valueType":{"$ref":"#/components/schemas/inbox.agents.skill.value.type"},"values":{"items":{"$ref":"#/components/schemas/inbox.agents.skill.value"},"type":"array"},"workspaceId":{"format":"uuid","type":"string"}},"required":["id","workspaceId","name","description","valueType","values","createdAt","updatedAt","createdBy","updatedBy"],"type":"object"},"inbox.agents.skill.value":{"description":"AgentSkillValue is a single value that can be selected for a skill.\n","properties":{"createdAt":{"format":"date-time","type":"string"},"icon":{"type":"string"},"id":{"format":"uuid","type":"string"},"value":{"type":"string"}},"required":["id","value","icon","createdAt"],"type":"object"},"error.detailed":{"additionalProperties":false,"description":"An error returned from the API that includes additional details about the error. The `details` property can contain any additional information about the error that may be helpful for debugging or understanding the error.\n","properties":{"code":{"description":"A unique code that identifies the error. This code can be used to programmatically identify the error.","minLength":3,"type":"string"},"details":{"additionalProperties":true,"description":"Any additional information about the error that may be helpful for debugging or understanding the error.","type":"object"},"message":{"description":"A human-readable message that describes the error.","minLength":1,"type":"string"}},"required":["code","message"],"title":"DetailedError","type":"object"},"error.validation":{"additionalProperties":false,"description":"A validation error returned from the API. The `details` map keys are JSON paths\npointing into the request body / parameters; values are arrays of human-readable\nmessages describing each problem with that path.\n","properties":{"code":{"description":"A unique code that identifies the error. This code can be used to programmatically identify the error.","minLength":3,"type":"string"},"details":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"description":"Per-field validation messages keyed by JSON path.","type":"object"},"message":{"description":"A human-readable message that describes the error.","minLength":1,"type":"string"}},"required":["code","message"],"title":"ValidationError","type":"object"}},"responses":{"inbox.agents.skill.response":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/inbox.agents.skill"}}},"description":"The agent skill."},"error.response.not_found":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.detailed"}}},"description":"The requested resource was not found."},"error.response.conflict":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.detailed"}}},"description":"The request conflicts with the current state of the resource."},"error.response.invalid_request":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.validation"}}},"description":"The request contains invalid parameters or body fields."}}},"paths":{"/workspaces/{workspaceId}/inbox/skills/{agentSkillId}":{"patch":{"operationId":"updateAgentSkill","requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"UpdateAgentSkill is the request body for updating an existing AgentSkill.\n","properties":{"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"valueType":{"$ref":"#/components/schemas/inbox.agents.skill.value.type","nullable":true},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true},"value":{"nullable":true,"type":"string"},"icon":{"nullable":true,"type":"string"},"createdAt":{"nullable":true,"type":"string","format":"date-time"}}}}}}}},"required":true},"responses":{"200":{"$ref":"#/components/responses/inbox.agents.skill.response"},"404":{"$ref":"#/components/responses/error.response.not_found"},"409":{"$ref":"#/components/responses/error.response.conflict"},"422":{"$ref":"#/components/responses/error.response.invalid_request"}},"summary":"Update Agent Skill","tags":["agent_skills"]}}}}
```

## DELETE /workspaces/{workspaceId}/inbox/skills/{agentSkillId}

> Delete Agent Skill

```json
{"openapi":"3.0.3","info":{"title":"Collaboration","version":"v1"},"tags":[],"security":[{"user":[]},{"accessKey":[]}],"components":{"securitySchemes":{"user":{"description":"Provide the token that is returned upon login","scheme":"bearer","type":"http","bearerFormat":"jwt"},"accessKey":{"description":"Uses the Authorization header: 'AccessKey ' followed by your access key token","scheme":"AccessKey","type":"http"}},"responses":{"error.response.not_found":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.detailed"}}},"description":"The requested resource was not found."}},"schemas":{"error.detailed":{"additionalProperties":false,"description":"An error returned from the API that includes additional details about the error. The `details` property can contain any additional information about the error that may be helpful for debugging or understanding the error.\n","properties":{"code":{"description":"A unique code that identifies the error. This code can be used to programmatically identify the error.","minLength":3,"type":"string"},"details":{"additionalProperties":true,"description":"Any additional information about the error that may be helpful for debugging or understanding the error.","type":"object"},"message":{"description":"A human-readable message that describes the error.","minLength":1,"type":"string"}},"required":["code","message"],"title":"DetailedError","type":"object"}}},"paths":{"/workspaces/{workspaceId}/inbox/skills/{agentSkillId}":{"delete":{"operationId":"deleteAgentSkill","responses":{"204":{"description":"OK"},"404":{"$ref":"#/components/responses/error.response.not_found"}},"summary":"Delete Agent Skill","tags":["agent_skills"]}}}}
```
