Hadrian is experimental alpha software. Do not use in production.
Hadrian

Skills

Manage Agent Skills (https://agentskills.io). A skill packages a SKILL.md instruction file plus optional bundled scripts, references, and assets. Skills can be user-invoked via slash command or auto-invoked by the model via the frontend Skill tool.

List skills by project.

GET
/admin/v1/organizations/{org_slug}/projects/{project_slug}/skills
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

org_slug*string

Organization slug

project_slug*string

Project slug

Query Parameters

limit?integer|null

Maximum number of results to return

Formatint64
cursor?string|null

Cursor for keyset pagination. Encoded as base64 string.

direction?string|null

Pagination direction: "forward" (default) or "backward".

include_deleted?boolean|null

Include soft-deleted records in results

Response Body

application/json

application/json

application/json

curl -X GET "https://loading/admin/v1/organizations/string/projects/string/skills"
{
  "data": [
    {
      "allowed_tools": [
        "string"
      ],
      "argument_hint": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "description": "string",
      "disable_model_invocation": true,
      "files": [
        {
          "byte_size": 0,
          "content": "string",
          "content_type": "string",
          "created_at": "2019-08-24T14:15:22Z",
          "path": "string",
          "updated_at": "2019-08-24T14:15:22Z"
        }
      ],
      "files_manifest": [
        {
          "byte_size": 0,
          "content_type": "string",
          "path": "string"
        }
      ],
      "frontmatter_extra": {
        "property1": null,
        "property2": null
      },
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "name": "string",
      "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
      "owner_type": "organization",
      "source_ref": "string",
      "source_url": "string",
      "total_bytes": 0,
      "updated_at": "2019-08-24T14:15:22Z",
      "user_invocable": true
    }
  ],
  "pagination": {
    "has_more": true,
    "limit": 100,
    "next_cursor": "MTczMzU4MDgwMDAwMDphYmMxMjM0NS02Nzg5LTAxMjMtNDU2Ny0wMTIzNDU2Nzg5YWI",
    "prev_cursor": "string"
  }
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

List skills by organization.

GET
/admin/v1/organizations/{org_slug}/skills
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

org_slug*string

Organization slug

Query Parameters

limit?integer|null

Maximum number of results to return

Formatint64
cursor?string|null

Cursor for keyset pagination. Encoded as base64 string.

direction?string|null

Pagination direction: "forward" (default) or "backward".

include_deleted?boolean|null

Include soft-deleted records in results

Response Body

application/json

application/json

application/json

curl -X GET "https://loading/admin/v1/organizations/string/skills"
{
  "data": [
    {
      "allowed_tools": [
        "string"
      ],
      "argument_hint": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "description": "string",
      "disable_model_invocation": true,
      "files": [
        {
          "byte_size": 0,
          "content": "string",
          "content_type": "string",
          "created_at": "2019-08-24T14:15:22Z",
          "path": "string",
          "updated_at": "2019-08-24T14:15:22Z"
        }
      ],
      "files_manifest": [
        {
          "byte_size": 0,
          "content_type": "string",
          "path": "string"
        }
      ],
      "frontmatter_extra": {
        "property1": null,
        "property2": null
      },
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "name": "string",
      "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
      "owner_type": "organization",
      "source_ref": "string",
      "source_url": "string",
      "total_bytes": 0,
      "updated_at": "2019-08-24T14:15:22Z",
      "user_invocable": true
    }
  ],
  "pagination": {
    "has_more": true,
    "limit": 100,
    "next_cursor": "MTczMzU4MDgwMDAwMDphYmMxMjM0NS02Nzg5LTAxMjMtNDU2Ny0wMTIzNDU2Nzg5YWI",
    "prev_cursor": "string"
  }
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

List skills by team.

GET
/admin/v1/organizations/{org_slug}/teams/{team_slug}/skills
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

org_slug*string

Organization slug

team_slug*string

Team slug

Query Parameters

limit?integer|null

Maximum number of results to return

Formatint64
cursor?string|null

Cursor for keyset pagination. Encoded as base64 string.

direction?string|null

Pagination direction: "forward" (default) or "backward".

include_deleted?boolean|null

Include soft-deleted records in results

Response Body

application/json

application/json

application/json

curl -X GET "https://loading/admin/v1/organizations/string/teams/string/skills"
{
  "data": [
    {
      "allowed_tools": [
        "string"
      ],
      "argument_hint": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "description": "string",
      "disable_model_invocation": true,
      "files": [
        {
          "byte_size": 0,
          "content": "string",
          "content_type": "string",
          "created_at": "2019-08-24T14:15:22Z",
          "path": "string",
          "updated_at": "2019-08-24T14:15:22Z"
        }
      ],
      "files_manifest": [
        {
          "byte_size": 0,
          "content_type": "string",
          "path": "string"
        }
      ],
      "frontmatter_extra": {
        "property1": null,
        "property2": null
      },
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "name": "string",
      "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
      "owner_type": "organization",
      "source_ref": "string",
      "source_url": "string",
      "total_bytes": 0,
      "updated_at": "2019-08-24T14:15:22Z",
      "user_invocable": true
    }
  ],
  "pagination": {
    "has_more": true,
    "limit": 100,
    "next_cursor": "MTczMzU4MDgwMDAwMDphYmMxMjM0NS02Nzg5LTAxMjMtNDU2Ny0wMTIzNDU2Nzg5YWI",
    "prev_cursor": "string"
  }
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Create a skill.

POST
/admin/v1/skills
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Request Body

application/json

allowed_tools?|null
argument_hint?string|null
description*string
disable_model_invocation?boolean|null
files*
frontmatter_extra?|null
name*string
owner*|||

Owner specification for creating a skill.

source_ref?string|null
source_url?string|null
user_invocable?boolean|null

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://loading/admin/v1/skills" \  -H "Content-Type: application/json" \  -d '{    "description": "string",    "files": [      {        "content": "string",        "path": "string"      }    ],    "name": "string",    "owner": {      "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",      "type": "organization"    }  }'
{
  "allowed_tools": [
    "string"
  ],
  "argument_hint": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "description": "string",
  "disable_model_invocation": true,
  "files": [
    {
      "byte_size": 0,
      "content": "string",
      "content_type": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "path": "string",
      "updated_at": "2019-08-24T14:15:22Z"
    }
  ],
  "files_manifest": [
    {
      "byte_size": 0,
      "content_type": "string",
      "path": "string"
    }
  ],
  "frontmatter_extra": {
    "property1": null,
    "property2": null
  },
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "name": "string",
  "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  "owner_type": "organization",
  "source_ref": "string",
  "source_url": "string",
  "total_bytes": 0,
  "updated_at": "2019-08-24T14:15:22Z",
  "user_invocable": true
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get a skill by ID (with full file contents).

GET
/admin/v1/skills/{id}
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

id*string

Skill ID

Formatuuid

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/skills/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{
  "allowed_tools": [
    "string"
  ],
  "argument_hint": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "description": "string",
  "disable_model_invocation": true,
  "files": [
    {
      "byte_size": 0,
      "content": "string",
      "content_type": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "path": "string",
      "updated_at": "2019-08-24T14:15:22Z"
    }
  ],
  "files_manifest": [
    {
      "byte_size": 0,
      "content_type": "string",
      "path": "string"
    }
  ],
  "frontmatter_extra": {
    "property1": null,
    "property2": null
  },
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "name": "string",
  "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  "owner_type": "organization",
  "source_ref": "string",
  "source_url": "string",
  "total_bytes": 0,
  "updated_at": "2019-08-24T14:15:22Z",
  "user_invocable": true
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Update a skill.

PATCH
/admin/v1/skills/{id}
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

id*string

Skill ID

Formatuuid

Request Body

application/json

allowed_tools?|null
argument_hint?string|null
description?string|null
disable_model_invocation?boolean|null
files?|null
frontmatter_extra?|null
name?string|null
source_ref?string|null
source_url?string|null
user_invocable?boolean|null

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "https://loading/admin/v1/skills/497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{}'
{
  "allowed_tools": [
    "string"
  ],
  "argument_hint": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "description": "string",
  "disable_model_invocation": true,
  "files": [
    {
      "byte_size": 0,
      "content": "string",
      "content_type": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "path": "string",
      "updated_at": "2019-08-24T14:15:22Z"
    }
  ],
  "files_manifest": [
    {
      "byte_size": 0,
      "content_type": "string",
      "path": "string"
    }
  ],
  "frontmatter_extra": {
    "property1": null,
    "property2": null
  },
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "name": "string",
  "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  "owner_type": "organization",
  "source_ref": "string",
  "source_url": "string",
  "total_bytes": 0,
  "updated_at": "2019-08-24T14:15:22Z",
  "user_invocable": true
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Soft-delete a skill.

DELETE
/admin/v1/skills/{id}
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

id*string

Skill ID

Formatuuid

Response Body

application/json

curl -X DELETE "https://loading/admin/v1/skills/497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

List skills by user.

GET
/admin/v1/users/{user_id}/skills
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

user_id*string

User ID

Formatuuid

Query Parameters

limit?integer|null

Maximum number of results to return

Formatint64
cursor?string|null

Cursor for keyset pagination. Encoded as base64 string.

direction?string|null

Pagination direction: "forward" (default) or "backward".

include_deleted?boolean|null

Include soft-deleted records in results

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/users/497f6eca-6276-4993-bfeb-53cbbbba6f08/skills"
{
  "data": [
    {
      "allowed_tools": [
        "string"
      ],
      "argument_hint": "string",
      "created_at": "2019-08-24T14:15:22Z",
      "description": "string",
      "disable_model_invocation": true,
      "files": [
        {
          "byte_size": 0,
          "content": "string",
          "content_type": "string",
          "created_at": "2019-08-24T14:15:22Z",
          "path": "string",
          "updated_at": "2019-08-24T14:15:22Z"
        }
      ],
      "files_manifest": [
        {
          "byte_size": 0,
          "content_type": "string",
          "path": "string"
        }
      ],
      "frontmatter_extra": {
        "property1": null,
        "property2": null
      },
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "name": "string",
      "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
      "owner_type": "organization",
      "source_ref": "string",
      "source_url": "string",
      "total_bytes": 0,
      "updated_at": "2019-08-24T14:15:22Z",
      "user_invocable": true
    }
  ],
  "pagination": {
    "has_more": true,
    "limit": 100,
    "next_cursor": "MTczMzU4MDgwMDAwMDphYmMxMjM0NS02Nzg5LTAxMjMtNDU2Ny0wMTIzNDU2Nzg5YWI",
    "prev_cursor": "string"
  }
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}