Aliases pointing to this version.













Beta Skills Endpoints
(beta) Skills API.












Examples
Real world code examples
ListSkills
GET /v2/skills
ListSkills
pageSize
pageToken
alias
fields
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.list();
for await (const page of result) {
console.log(page);
}
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.list();
for await (const page of result) {
console.log(page);
}
}
run();
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.list()
while res is not None:
# Handle items
res = res.next()
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.list()
while res is not None:
# Handle items
res = res.next()
curl https://api.mistral.ai/v2/skills \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'curl https://api.mistral.ai/v2/skills \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'200
{
"data": [
{
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "ticket-triage",
"definition": {
"description": "Triage a customer support ticket and suggest the next action.",
"body": "Use this skill when a support ticket needs triage.\nReturn the issue category, urgency, and the next best action.\n",
"assets": {
"policy.md": {
"textContent": "Use the enterprise support policy before escalating.",
"isExecutable": false
}
}
},
"version": 1,
"notes": "Initial skill version.",
"aliases": [
"production"
],
"sharingScope": "workspace",
"createdAt": "2025-01-15T09:30:00Z",
"updatedAt": "2025-01-15T10:00:00Z",
"latestVersion": 1
}
],
"nextPageToken": "eyJwYWdlIjoyfQ=="
}{
"data": [
{
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "ticket-triage",
"definition": {
"description": "Triage a customer support ticket and suggest the next action.",
"body": "Use this skill when a support ticket needs triage.\nReturn the issue category, urgency, and the next best action.\n",
"assets": {
"policy.md": {
"textContent": "Use the enterprise support policy before escalating.",
"isExecutable": false
}
}
},
"version": 1,
"notes": "Initial skill version.",
"aliases": [
"production"
],
"sharingScope": "workspace",
"createdAt": "2025-01-15T09:30:00Z",
"updatedAt": "2025-01-15T10:00:00Z",
"latestVersion": 1
}
],
"nextPageToken": "eyJwYWdlIjoyfQ=="
}CreateSkill
POST /v2/skills
CreateSkill
aliases
name
Stable object name.
notes
Notes for this version.
sharingScope
200
Success
aliases
Aliases pointing to this version.
createdAt
RFC 3339 timestamp.
id
latestVersion
Latest version number.
name
Stable object name.
notes
Notes for this version.
sharingScope
updatedAt
RFC 3339 timestamp.
version
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.create({
name: "<value>",
definition: {},
});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.create({
name: "<value>",
definition: {},
});
console.log(result);
}
run();
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.create(name="<value>", definition={})
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.create(name="<value>", definition={})
# Handle response
print(res)
curl https://api.mistral.ai/v2/skills \
-X POST \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"definition": {},
"name": "My resource"
}'curl https://api.mistral.ai/v2/skills \
-X POST \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"definition": {},
"name": "My resource"
}'200
{
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "ticket-triage",
"definition": {
"description": "Triage a customer support ticket and suggest the next action.",
"body": "Use this skill when a support ticket needs triage.\nReturn the issue category, urgency, and the next best action.\n",
"assets": {
"policy.md": {
"textContent": "Use the enterprise support policy before escalating.",
"isExecutable": false
}
}
},
"version": 1,
"notes": "Initial skill version.",
"aliases": [
"production"
],
"sharingScope": "workspace",
"createdAt": "2025-01-15T09:30:00Z",
"updatedAt": "2025-01-15T10:00:00Z",
"latestVersion": 1
}{
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "ticket-triage",
"definition": {
"description": "Triage a customer support ticket and suggest the next action.",
"body": "Use this skill when a support ticket needs triage.\nReturn the issue category, urgency, and the next best action.\n",
"assets": {
"policy.md": {
"textContent": "Use the enterprise support policy before escalating.",
"isExecutable": false
}
}
},
"version": 1,
"notes": "Initial skill version.",
"aliases": [
"production"
],
"sharingScope": "workspace",
"createdAt": "2025-01-15T09:30:00Z",
"updatedAt": "2025-01-15T10:00:00Z",
"latestVersion": 1
}GetSkill
GET /v2/skills/{skill_id}
GetSkill
skill_id
version
alias
fields
200
Success
aliases
Aliases pointing to this version.
createdAt
RFC 3339 timestamp.
id
latestVersion
Latest version number.
name
Stable object name.
notes
Notes for this version.
sharingScope
updatedAt
RFC 3339 timestamp.
version
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.get({
skillId: "<id>",
version: 1,
});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.get({
skillId: "<id>",
version: 1,
});
console.log(result);
}
run();
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.get(skill_id="<id>", version=1)
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.get(skill_id="<id>", version=1)
# Handle response
print(res)
curl https://api.mistral.ai/v2/skills/{skill_id} \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'curl https://api.mistral.ai/v2/skills/{skill_id} \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'200
{
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "ticket-triage",
"definition": {
"description": "Triage a customer support ticket and suggest the next action.",
"body": "Use this skill when a support ticket needs triage.\nReturn the issue category, urgency, and the next best action.\n",
"assets": {
"policy.md": {
"textContent": "Use the enterprise support policy before escalating.",
"isExecutable": false
}
}
},
"version": 1,
"notes": "Initial skill version.",
"aliases": [
"production"
],
"sharingScope": "workspace",
"createdAt": "2025-01-15T09:30:00Z",
"updatedAt": "2025-01-15T10:00:00Z",
"latestVersion": 1
}{
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "ticket-triage",
"definition": {
"description": "Triage a customer support ticket and suggest the next action.",
"body": "Use this skill when a support ticket needs triage.\nReturn the issue category, urgency, and the next best action.\n",
"assets": {
"policy.md": {
"textContent": "Use the enterprise support policy before escalating.",
"isExecutable": false
}
}
},
"version": 1,
"notes": "Initial skill version.",
"aliases": [
"production"
],
"sharingScope": "workspace",
"createdAt": "2025-01-15T09:30:00Z",
"updatedAt": "2025-01-15T10:00:00Z",
"latestVersion": 1
}DeleteSkill
DELETE /v2/skills/{skill_id}
DeleteSkill
skill_id
200
Success
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.delete({
skillId: "<id>",
});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.delete({
skillId: "<id>",
});
console.log(result);
}
run();
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.delete(skill_id="<id>")
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.delete(skill_id="<id>")
# Handle response
print(res)
curl https://api.mistral.ai/v2/skills/{skill_id} \
-X DELETE \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json'curl https://api.mistral.ai/v2/skills/{skill_id} \
-X DELETE \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json'200
{}{}UpdateSkill
PATCH /v2/skills/{skill_id}
UpdateSkill
skill_id
sharingScope
200
Success
aliases
Aliases pointing to this version.
createdAt
RFC 3339 timestamp.
id
latestVersion
Latest version number.
name
Stable object name.
notes
Notes for this version.
sharingScope
updatedAt
RFC 3339 timestamp.
version
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.updateMetadata("<id>", {});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.updateMetadata("<id>", {});
console.log(result);
}
run();
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.update_metadata(skill_id="<id>")
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.update_metadata(skill_id="<id>")
# Handle response
print(res)
curl https://api.mistral.ai/v2/skills/{skill_id} \
-X PATCH \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{}'curl https://api.mistral.ai/v2/skills/{skill_id} \
-X PATCH \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{}'200
{
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "ticket-triage",
"definition": {
"description": "Triage a customer support ticket and suggest the next action.",
"body": "Use this skill when a support ticket needs triage.\nReturn the issue category, urgency, and the next best action.\n",
"assets": {
"policy.md": {
"textContent": "Use the enterprise support policy before escalating.",
"isExecutable": false
}
}
},
"version": 1,
"notes": "Initial skill version.",
"aliases": [
"production"
],
"sharingScope": "workspace",
"createdAt": "2025-01-15T09:30:00Z",
"updatedAt": "2025-01-15T10:00:00Z",
"latestVersion": 1
}{
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "ticket-triage",
"definition": {
"description": "Triage a customer support ticket and suggest the next action.",
"body": "Use this skill when a support ticket needs triage.\nReturn the issue category, urgency, and the next best action.\n",
"assets": {
"policy.md": {
"textContent": "Use the enterprise support policy before escalating.",
"isExecutable": false
}
}
},
"version": 1,
"notes": "Initial skill version.",
"aliases": [
"production"
],
"sharingScope": "workspace",
"createdAt": "2025-01-15T09:30:00Z",
"updatedAt": "2025-01-15T10:00:00Z",
"latestVersion": 1
}ListSkillVersions
GET /v2/skills/{skill_id}/versions
ListSkillVersions
skill_id
200
Success
data
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.listVersions({
skillId: "<id>",
});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.listVersions({
skillId: "<id>",
});
console.log(result);
}
run();
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.list_versions(skill_id="<id>")
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.list_versions(skill_id="<id>")
# Handle response
print(res)
curl https://api.mistral.ai/v2/skills/{skill_id}/versions \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'curl https://api.mistral.ai/v2/skills/{skill_id}/versions \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'200
{
"data": [
{
"version": 1,
"definition": {
"description": "Triage a customer support ticket and suggest the next action.",
"body": "Use this skill when a support ticket needs triage.\nReturn the issue category, urgency, and the next best action.\n",
"assets": {
"policy.md": {
"textContent": "Use the enterprise support policy before escalating.",
"isExecutable": false
}
}
},
"notes": "Initial skill version.",
"aliases": [
"production"
],
"createdAt": "2025-01-15T09:30:00Z"
}
]
}{
"data": [
{
"version": 1,
"definition": {
"description": "Triage a customer support ticket and suggest the next action.",
"body": "Use this skill when a support ticket needs triage.\nReturn the issue category, urgency, and the next best action.\n",
"assets": {
"policy.md": {
"textContent": "Use the enterprise support policy before escalating.",
"isExecutable": false
}
}
},
"notes": "Initial skill version.",
"aliases": [
"production"
],
"createdAt": "2025-01-15T09:30:00Z"
}
]
}CreateSkillVersion
POST /v2/skills/{skill_id}/versions
CreateSkillVersion
skill_id
aliases
Aliases pointing to this version.
notes
Notes for this version.
200
Success
deduplicated
version
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.createVersion("<id>", {
definition: {},
});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.createVersion("<id>", {
definition: {},
});
console.log(result);
}
run();
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.create_version(skill_id="<id>", definition={})
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.create_version(skill_id="<id>", definition={})
# Handle response
print(res)
curl https://api.mistral.ai/v2/skills/{skill_id}/versions \
-X POST \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"definition": {}
}'curl https://api.mistral.ai/v2/skills/{skill_id}/versions \
-X POST \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"definition": {}
}'200
{
"version": 2,
"deduplicated": false
}{
"version": 2,
"deduplicated": false
}GetSkillVersion
GET /v2/skills/{skill_id}/versions/{version}
GetSkillVersion
skill_id
version
fields
200
Success
aliases
Aliases pointing to this version.
createdAt
RFC 3339 timestamp.
id
latestVersion
Latest version number.
name
Stable object name.
notes
Notes for this version.
sharingScope
updatedAt
RFC 3339 timestamp.
version
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.getVersion({
skillId: "<id>",
version: 1,
});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.getVersion({
skillId: "<id>",
version: 1,
});
console.log(result);
}
run();
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.get_version(skill_id="<id>", version=1)
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.get_version(skill_id="<id>", version=1)
# Handle response
print(res)
curl https://api.mistral.ai/v2/skills/{skill_id}/versions/{version} \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'curl https://api.mistral.ai/v2/skills/{skill_id}/versions/{version} \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'200
{
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "ticket-triage",
"definition": {
"description": "Triage a customer support ticket and suggest the next action.",
"body": "Use this skill when a support ticket needs triage.\nReturn the issue category, urgency, and the next best action.\n",
"assets": {
"policy.md": {
"textContent": "Use the enterprise support policy before escalating.",
"isExecutable": false
}
}
},
"version": 1,
"notes": "Initial skill version.",
"aliases": [
"production"
],
"sharingScope": "workspace",
"createdAt": "2025-01-15T09:30:00Z",
"updatedAt": "2025-01-15T10:00:00Z",
"latestVersion": 1
}{
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "ticket-triage",
"definition": {
"description": "Triage a customer support ticket and suggest the next action.",
"body": "Use this skill when a support ticket needs triage.\nReturn the issue category, urgency, and the next best action.\n",
"assets": {
"policy.md": {
"textContent": "Use the enterprise support policy before escalating.",
"isExecutable": false
}
}
},
"version": 1,
"notes": "Initial skill version.",
"aliases": [
"production"
],
"sharingScope": "workspace",
"createdAt": "2025-01-15T09:30:00Z",
"updatedAt": "2025-01-15T10:00:00Z",
"latestVersion": 1
}UpdateSkillVersionMetadata
PATCH /v2/skills/{skill_id}/versions/{version}
UpdateSkillVersionMetadata
skill_id
version
aliases
Presence wrapper for a set of alias labels on update RPCs. As a message field it carries presence, so callers can distinguish "leave aliases unchanged" (field omitted) from "clear all aliases" (field set, empty values).
notes
Notes for this version.
200
Success
aliases
Aliases pointing to this version.
createdAt
RFC 3339 timestamp.
id
latestVersion
Latest version number.
name
Stable object name.
notes
Notes for this version.
sharingScope
updatedAt
RFC 3339 timestamp.
version
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.updateVersionMetadata("<id>", 1, {});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.skills.updateVersionMetadata("<id>", 1, {});
console.log(result);
}
run();
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.update_version_metadata(skill_id="<id>", version=1)
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.skills.update_version_metadata(skill_id="<id>", version=1)
# Handle response
print(res)
curl https://api.mistral.ai/v2/skills/{skill_id}/versions/{version} \
-X PATCH \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{}'curl https://api.mistral.ai/v2/skills/{skill_id}/versions/{version} \
-X PATCH \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{}'200
{
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "ticket-triage",
"definition": {
"description": "Triage a customer support ticket and suggest the next action.",
"body": "Use this skill when a support ticket needs triage.\nReturn the issue category, urgency, and the next best action.\n",
"assets": {
"policy.md": {
"textContent": "Use the enterprise support policy before escalating.",
"isExecutable": false
}
}
},
"version": 1,
"notes": "Promote this version after support review.",
"aliases": [
"production"
],
"sharingScope": "workspace",
"createdAt": "2025-01-15T09:30:00Z",
"updatedAt": "2025-01-15T10:00:00Z",
"latestVersion": 1
}{
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"name": "ticket-triage",
"definition": {
"description": "Triage a customer support ticket and suggest the next action.",
"body": "Use this skill when a support ticket needs triage.\nReturn the issue category, urgency, and the next best action.\n",
"assets": {
"policy.md": {
"textContent": "Use the enterprise support policy before escalating.",
"isExecutable": false
}
}
},
"version": 1,
"notes": "Promote this version after support review.",
"aliases": [
"production"
],
"sharingScope": "workspace",
"createdAt": "2025-01-15T09:30:00Z",
"updatedAt": "2025-01-15T10:00:00Z",
"latestVersion": 1
}