Skill Matrix API (DEV)

Download OpenAPI specification:

This is the API for the skill matrix.

Users

Manage users.

Get all users.

Get all users.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new user.

Create a new user and return it.

Request Body schema: application/json
required
email
required
string <email> ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-...

The email address of the user.

firstName
required
string non-empty

The first name of the user.

lastName
required
string non-empty

The last name of the user.

teamId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{...

The ID of the team.

Responses

Request samples

Content type
application/json
{
  • "email": "peter.pan@example.com",
  • "firstName": "Peter",
  • "lastName": "Pan",
  • "teamId": "00000000-0002-4000-8000-000000000000"
}

Response samples

Content type
application/json
{
  • "id": "00000000-0001-4000-8000-000000000000",
  • "email": "peter.pan@example.com",
  • "firstName": "Peter",
  • "lastName": "Pan",
  • "teamId": "00000000-0002-4000-8000-000000000000"
}

Get a user.

Get the user with the given id, if it exists.

path Parameters
id
required
string <uuid>
Example: 11111111-0001-4000-8000-111111111111

Responses

Response samples

Content type
application/json
{
  • "id": "00000000-0001-4000-8000-000000000000",
  • "email": "peter.pan@example.com",
  • "firstName": "Peter",
  • "lastName": "Pan",
  • "teamId": "00000000-0002-4000-8000-000000000000"
}

Delete a user.

Delete the user with the given id, if it exists.

path Parameters
id
required
string <uuid>
Example: 11111111-0001-4000-8000-111111111111

Responses

Response samples

Content type
application/json
{
  • "statusCode": 409,
  • "message": "The transaction was rolled back because it conflicted with another one running at the same time. Retrying the request may succeed."
}

Update an existing user.

Update an existing user, if it exists, and return it.

path Parameters
id
required
string <uuid>
Example: 11111111-0001-4000-8000-111111111111
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{...

The ID of the user.

email
required
string <email> ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-...

The email address of the user.

firstName
required
string non-empty

The first name of the user.

lastName
required
string non-empty

The last name of the user.

teamId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{...

The ID of the team.

Responses

Request samples

Content type
application/json
{
  • "id": "00000000-0001-4000-8000-000000000000",
  • "email": "peter.pan@example.com",
  • "firstName": "Peter",
  • "lastName": "Pan",
  • "teamId": "00000000-0002-4000-8000-000000000000"
}

Response samples

Content type
application/json
{
  • "id": "00000000-0001-4000-8000-000000000000",
  • "email": "peter.pan@example.com",
  • "firstName": "Peter",
  • "lastName": "Pan",
  • "teamId": "00000000-0002-4000-8000-000000000000"
}

Teams

Manage teams.

Get all teams.

Get all teams.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new team.

Create a new team and return it.

Request Body schema: application/json
required
name
required
string non-empty

The name of the team.

Responses

Request samples

Content type
application/json
{
  • "name": "Platform"
}

Response samples

Content type
application/json
{
  • "id": "00000000-0002-4000-8000-000000000000",
  • "name": "Platform"
}

Get a team.

Get the team with the given id, if it exists.

path Parameters
id
required
string <uuid>
Example: 22222222-0002-4000-8000-111111111111

Responses

Response samples

Content type
application/json
{
  • "id": "00000000-0002-4000-8000-000000000000",
  • "name": "Platform"
}

Delete a team.

Delete the team with the given id, if it exists.

path Parameters
id
required
string <uuid>
Example: 22222222-0002-4000-8000-111111111111
header Parameters
If-Match
required
string
Example: W/"d41d8cd98f00b204e9800998ecf8427e"

The team’s current ETag.

Responses

Response samples

Content type
application/json
Example
{
  • "statusCode": 409,
  • "message": "Entity of type Team identified by (id=22222222-0002-4000-8000-111111111111) is in use"
}

Update an existing team.

Update an existing team, if it exists, and return it.

path Parameters
id
required
string <uuid>
Example: 22222222-0002-4000-8000-111111111111
header Parameters
If-Match
required
string
Example: W/"d41d8cd98f00b204e9800998ecf8427e"

The team’s current ETag.

Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{...

The ID of the team.

name
required
string non-empty

The name of the team.

Responses

Request samples

Content type
application/json
{
  • "id": "00000000-0002-4000-8000-000000000000",
  • "name": "Platform"
}

Response samples

Content type
application/json
{
  • "id": "00000000-0002-4000-8000-000000000000",
  • "name": "Platform"
}

Skills

Manage skills.

Get all skills.

Get all skills.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new skill.

Create a new skill and return it.

Request Body schema: application/json
required
name
required
string non-empty

The name of the skill.

description
required
string non-empty

A description of the skill.

exampleIds
required
Array of strings <uuid> unique [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{... ]

The ids of the examples associated with this skill.

Responses

Request samples

Content type
application/json
{
  • "name": "Backend Development",
  • "description": "Designing and building server-side services.",
  • "exampleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "33333333-0003-4000-8000-111111111111",
  • "name": "Backend Development",
  • "description": "Designing and building server-side services.",
  • "exampleIds": [
    ]
}

Get a skill.

Get the skill with the given id, if it exists.

path Parameters
id
required
string <uuid>
Example: 33333333-0003-4000-8000-111111111111

Responses

Response samples

Content type
application/json
{
  • "id": "33333333-0003-4000-8000-111111111111",
  • "name": "Backend Development",
  • "description": "Designing and building server-side services.",
  • "exampleIds": [
    ]
}

Delete a skill.

Delete the skill with the given id, if it exists.

path Parameters
id
required
string <uuid>
Example: 33333333-0003-4000-8000-111111111111
header Parameters
If-Match
required
string
Example: W/"d41d8cd98f00b204e9800998ecf8427e"

The skill’s current ETag.

Responses

Response samples

Content type
application/json
Example
{
  • "statusCode": 409,
  • "message": "Entity of type Skill identified by (id=33333333-0003-4000-8000-111111111111) is in use"
}

Update an existing skill.

Update an existing skill, if it exists, and return it.

path Parameters
id
required
string <uuid>
Example: 33333333-0003-4000-8000-111111111111
header Parameters
If-Match
required
string
Example: W/"d41d8cd98f00b204e9800998ecf8427e"

The skill’s current ETag.

Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{...

The ID of the skill.

name
required
string non-empty

The name of the skill.

description
required
string non-empty

A description of the skill.

exampleIds
required
Array of strings <uuid> unique [ items <uuid >^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{... ]

The ids of the examples associated with this skill.

Responses

Request samples

Content type
application/json
{
  • "id": "33333333-0003-4000-8000-111111111111",
  • "name": "Backend Development",
  • "description": "Designing and building server-side services.",
  • "exampleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "33333333-0003-4000-8000-111111111111",
  • "name": "Backend Development",
  • "description": "Designing and building server-side services.",
  • "exampleIds": [
    ]
}

Example Kinds

Manage the kinds examples can be classified as.

Get all example kinds.

Get all example kinds.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new example kind.

Create a new example kind and return it.

Request Body schema: application/json
required
name
required
string non-empty

The name of the example kind.

Responses

Request samples

Content type
application/json
{
  • "name": "Technology"
}

Response samples

Content type
application/json
{
  • "id": "55555555-0005-4000-8000-111111111111",
  • "name": "Technology"
}

Get an example kind.

Get the example kind with the given id, if it exists.

path Parameters
id
required
string <uuid>
Example: 55555555-0005-4000-8000-111111111111

Responses

Response samples

Content type
application/json
{
  • "id": "55555555-0005-4000-8000-111111111111",
  • "name": "Technology"
}

Delete an example kind.

Delete the example kind with the given id, if it exists.

path Parameters
id
required
string <uuid>
Example: 55555555-0005-4000-8000-111111111111
header Parameters
If-Match
required
string
Example: W/"d41d8cd98f00b204e9800998ecf8427e"

The example kind’s current ETag.

Responses

Response samples

Content type
application/json
Example
{
  • "statusCode": 409,
  • "message": "Entity of type ExampleKind identified by (id=55555555-0005-4000-8000-111111111111) is in use"
}

Update an existing example kind.

Update an existing example kind, if it exists, and return it.

path Parameters
id
required
string <uuid>
Example: 55555555-0005-4000-8000-111111111111
header Parameters
If-Match
required
string
Example: W/"d41d8cd98f00b204e9800998ecf8427e"

The example kind’s current ETag.

Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{...

The ID of the example kind.

name
required
string non-empty

The name of the example kind.

Responses

Request samples

Content type
application/json
{
  • "id": "55555555-0005-4000-8000-111111111111",
  • "name": "Technology"
}

Response samples

Content type
application/json
{
  • "id": "55555555-0005-4000-8000-111111111111",
  • "name": "Technology"
}

Examples

Manage examples that illustrate skill proficiency levels.

Get all examples.

Get all examples.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new example.

Create a new example and return it.

Request Body schema: application/json
required
name
required
string non-empty

The display name of the example.

exampleKindId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{...

The ID of the example kind.

url
required
string or null <uri>

An optional URL for the example, or null.

Responses

Request samples

Content type
application/json
{
  • "name": "NestJS",
  • "exampleKindId": "55555555-0005-4000-8000-111111111111",
}

Response samples

Content type
application/json
{
  • "id": "44444444-0004-4000-8000-111111111111",
  • "name": "NestJS",
  • "exampleKindId": "55555555-0005-4000-8000-111111111111",
}

Get an example.

Get the example with the given id, if it exists.

path Parameters
id
required
string <uuid>
Example: 44444444-0004-4000-8000-111111111111

Responses

Response samples

Content type
application/json
{
  • "id": "44444444-0004-4000-8000-111111111111",
  • "name": "NestJS",
  • "exampleKindId": "55555555-0005-4000-8000-111111111111",
}

Delete an example.

Delete the example with the given id, if it exists.

path Parameters
id
required
string <uuid>
Example: 44444444-0004-4000-8000-111111111111
header Parameters
If-Match
required
string
Example: W/"d41d8cd98f00b204e9800998ecf8427e"

The example’s current ETag.

Responses

Response samples

Content type
application/json
Example
{
  • "statusCode": 409,
  • "message": "Entity of type Example identified by (id=44444444-0004-4000-8000-111111111111) is in use"
}

Update an existing example.

Update an existing example, if it exists, and return it.

path Parameters
id
required
string <uuid>
Example: 44444444-0004-4000-8000-111111111111
header Parameters
If-Match
required
string
Example: W/"d41d8cd98f00b204e9800998ecf8427e"

The example’s current ETag.

Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{...

The ID of the example.

name
required
string non-empty

The display name of the example.

exampleKindId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{...

The ID of the example kind.

url
required
string or null <uri>

An optional URL for the example, or null.

Responses

Request samples

Content type
application/json
{
  • "id": "44444444-0004-4000-8000-111111111111",
  • "name": "NestJS",
  • "exampleKindId": "55555555-0005-4000-8000-111111111111",
}

Response samples

Content type
application/json
{
  • "id": "44444444-0004-4000-8000-111111111111",
  • "name": "NestJS",
  • "exampleKindId": "55555555-0005-4000-8000-111111111111",
}

Team Skill Proficiencies

Manage a team's skill proficiencies.

Get skill proficiencies for a team.

Get all skill proficiencies for the given team.

path Parameters
teamId
required
string <uuid>
Example: 22222222-0002-4000-8000-111111111111

Responses

Response samples

Content type
application/json
{
  • "teamId": "00000000-0002-4000-8000-000000000000",
  • "skills": [
    ]
}

Add a skill proficiency to a team.

Add a skill proficiency to the given team.

path Parameters
skillId
required
string <uuid>
Example: 33333333-0003-4000-8000-111111111111
teamId
required
string <uuid>
Example: 22222222-0002-4000-8000-111111111111
Request Body schema: application/json
required
proficiency
required
integer [ 0 .. 4 ]

The required proficiency level for a skill (0–4).

Responses

Request samples

Content type
application/json
{
  • "proficiency": 3
}

Response samples

Content type
application/json
{
  • "teamId": "00000000-0002-4000-8000-000000000000",
  • "skills": [
    ]
}

Update a skill proficiency on a team.

Update an existing skill proficiency for the given team.

path Parameters
skillId
required
string <uuid>
Example: 33333333-0003-4000-8000-111111111111
teamId
required
string <uuid>
Example: 22222222-0002-4000-8000-111111111111
Request Body schema: application/json
required
proficiency
required
integer [ 0 .. 4 ]

The required proficiency level for a skill (0–4).

Responses

Request samples

Content type
application/json
{
  • "proficiency": 3
}

Response samples

Content type
application/json
{
  • "teamId": "00000000-0002-4000-8000-000000000000",
  • "skills": [
    ]
}

Remove a skill proficiency from a team.

Remove an existing skill proficiency from the given team.

path Parameters
skillId
required
string <uuid>
Example: 33333333-0003-4000-8000-111111111111
teamId
required
string <uuid>
Example: 22222222-0002-4000-8000-111111111111

Responses

Response samples

Content type
application/json
{
  • "teamId": "00000000-0002-4000-8000-000000000000",
  • "skills": [
    ]
}

Health

Service health check.

Health check.

Check the health of the service.

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "info": {
    },
  • "error": { },
  • "details": {
    }
}
Built 2026-09-30 16:46 UTC · commit 34b3352