# 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"]}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bird.com/api/collaborations-api/api-reference/skills.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
