Skip to main content
POST
/
skills
Create a skill
curl --request POST \
  --url https://app.gc.ai/api/external/v1/skills \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "NDA Risk Reviewer",
  "content": "Review the attached NDA and flag any clauses that deviate from our standard positions.",
  "description": "<string>",
  "file_ids": [
    "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  ]
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "<string>",
  "description": "<string>",
  "content": "<string>",
  "is_official": true,
  "files": [
    {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "name": "<string>"
    }
  ],
  "created_at": "<string>",
  "updated_at": "<string>"
}

Authorizations

Authorization
string
header
required

API key for authentication. Format: gcai_xxxxxxxxx

Create API keys in the GC AI app under Settings → API.

Body

application/json
name
string
required

Skill name (required, 1-255 chars)

Required string length: 1 - 255
Example:

"NDA Risk Reviewer"

content
string
required

The skill instructions — the prompt text the model receives when the skill runs (required, 1-100000 chars)

Required string length: 1 - 100000
Example:

"Review the attached NDA and flag any clauses that deviate from our standard positions."

description
string | null

Optional short description of what the skill does (max 1000 chars)

Maximum string length: 1000
visibility
enum<string>

Skill visibility. Defaults to private for user-scoped keys. Org-scoped keys always create organization-visible skills (they have no owning user).

Available options:
private,
organization
file_ids
string<uuid>[]

Optional uploaded file IDs to attach as reference context (max 50). Upload files first via POST /files.

Maximum array length: 50

Response

The created skill

id
string<uuid>
required

Unique skill identifier

name
string
required

Skill name

description
string | null
required

Short description of what the skill does, or null if unset

content
string
required

The skill instructions — the prompt text the model receives when the skill runs

visibility
enum<string>
required

private (only the creator and users it has been explicitly shared with) or organization (visible to everyone in the org). Official skills report organization.

Available options:
private,
organization
is_official
boolean
required

Whether this is an official GC AI skill. Official skills are read-only and cannot be edited or deleted via the API.

files
object[]
required

Files attached to the skill as reference context

created_at
string | null
required

ISO 8601 creation timestamp

updated_at
string | null
required

ISO 8601 last-updated timestamp