import requests
url = "https://api.datagrid.com/v1/skills"
payload = {
"name": "<string>",
"slash_key": "<string>",
"instructions": "<string>",
"description": "<string>",
"required_tools": ["<string>"],
"preferred_tools": ["<string>"],
"enabled": True,
"scope": "account"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
slash_key: '<string>',
instructions: '<string>',
description: '<string>',
required_tools: ['<string>'],
preferred_tools: ['<string>'],
enabled: true,
scope: 'account'
})
};
fetch('https://api.datagrid.com/v1/skills', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://api.datagrid.com/v1/skills \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"slash_key": "<string>",
"instructions": "<string>",
"description": "<string>",
"required_tools": [
"<string>"
],
"preferred_tools": [
"<string>"
],
"enabled": true,
"scope": "account"
}
'{
"object": "skill",
"id": "<string>",
"scope": "user",
"category": "document_analysis",
"slash_key": "<string>",
"name": "<string>",
"description": "<string>",
"instructions": "<string>",
"required_tools": [
"<string>"
],
"preferred_tools": [
"<string>"
],
"enabled": true,
"account_id": "<string>",
"builtin_key": "<string>",
"promoted_at": "2023-11-07T05:31:56Z",
"creator_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"status_code": 123,
"error": "rate_limit_exceeded",
"message": "<string>",
"retryable": true,
"statusCode": 123,
"mitigation": "<string>",
"details": {
"reason": "<string>"
}
}Create skill
Create a skill. Defaults to company-owned (account) scope. Pass scope: user to create a private skill that can later be promoted. Account-scope slash keys must not collide with a built-in; use the override endpoint for that.
import requests
url = "https://api.datagrid.com/v1/skills"
payload = {
"name": "<string>",
"slash_key": "<string>",
"instructions": "<string>",
"description": "<string>",
"required_tools": ["<string>"],
"preferred_tools": ["<string>"],
"enabled": True,
"scope": "account"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
slash_key: '<string>',
instructions: '<string>',
description: '<string>',
required_tools: ['<string>'],
preferred_tools: ['<string>'],
enabled: true,
scope: 'account'
})
};
fetch('https://api.datagrid.com/v1/skills', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://api.datagrid.com/v1/skills \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"slash_key": "<string>",
"instructions": "<string>",
"description": "<string>",
"required_tools": [
"<string>"
],
"preferred_tools": [
"<string>"
],
"enabled": true,
"scope": "account"
}
'{
"object": "skill",
"id": "<string>",
"scope": "user",
"category": "document_analysis",
"slash_key": "<string>",
"name": "<string>",
"description": "<string>",
"instructions": "<string>",
"required_tools": [
"<string>"
],
"preferred_tools": [
"<string>"
],
"enabled": true,
"account_id": "<string>",
"builtin_key": "<string>",
"promoted_at": "2023-11-07T05:31:56Z",
"creator_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"status_code": 123,
"error": "rate_limit_exceeded",
"message": "<string>",
"retryable": true,
"statusCode": 123,
"mitigation": "<string>",
"details": {
"reason": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Display name of the skill.
255The slash command key (e.g. budget-check). Must be unique within the scope.
255The full instructions / system prompt for this skill.
Category bucket.
document_analysis, construction_project_management, financial_analysis, estimation, quality_and_safety, scheduling, contracts_and_legal, data_and_reporting, research, communication, general_productivity Short description. When omitted, an AI-generated description is produced from the instructions.
1000Tool identifiers required by this skill.
Tool identifiers preferred by this skill.
Whether the skill is active. Defaults to true.
Ownership of the new skill. Defaults to account (company-owned). Pass user for a private skill that can later be promoted.
user, account Response
Created skill
The object type, always 'skill'.
skill Unique identifier for the skill.
Ownership scope. user = private (author only), account = company-owned, builtin = global default.
user, account, builtin Category bucket for grouping in the skill picker.
document_analysis, construction_project_management, financial_analysis, estimation, quality_and_safety, scheduling, contracts_and_legal, data_and_reporting, research, communication, general_productivity The slash command key used to invoke this skill (e.g. budget-check).
Display name of the skill.
Short description shown in the skill picker.
The full instructions / system prompt for this skill.
Tool identifiers that this skill requires to function.
Tool identifiers that this skill works best with.
Whether the skill is active and available for selection.
The account (company) that owns this skill. null for user-scope and builtin skills.
For company overrides of built-in skills: the identifier of the underlying built-in. null for user-authored skills.
ISO timestamp when this skill was promoted to company scope. null for user-scope skills.
ID of the user who created this skill. null for built-in skills that have never been edited.
ISO timestamp when this skill was created.
ISO timestamp when this skill was last updated.