Claude Platform Docs

Create Skill

Skill skills().create(SkillCreateParamsparams, RequestOptionsrequestOptions = RequestOptions.none())
POST/v1/skills

Create Skill

Parameters
SkillCreateParams params
List<String> files

Files to upload for the skill.

All files must be in the same top-level directory and must include a SKILL.md file at the root of that directory.

Optional<String> displayName

Human-readable, single-line label for the Skill. Maximum 255 characters. Always set: derived from the SKILL.md frontmatter name when omitted at creation. Not unique.

Returns
class Skill:
String id

Unique identifier for the skill.

The format and length of IDs may change over time.

LocalDateTime createdAt

ISO 8601 timestamp of when the skill was created.

formatdate-time
String displayName

Human-readable, single-line label for the Skill. Maximum 255 characters. Always set: derived from the SKILL.md frontmatter name when omitted at creation. Not unique.

String latestVersionId

ID of the newest Skill Version — what latest references resolve to. Always set: a Skill holds at least one version.

Where the Skill comes from.

Possible values:

  • "custom": authored by the platform user; private to their workspace
  • "anthropic": published by Anthropic; shared and read-only
  • "anthropic_example": Anthropic-published sample Skill
  • "plugin": resolved from an installed plugin
Type type

Where the Skill comes from.

Possible values:

  • "custom": authored by the platform user; private to their workspace
  • "anthropic": published by Anthropic; shared and read-only
  • "anthropic_example": Anthropic-published sample Skill
  • "plugin": resolved from an installed plugin
One of the following:
CUSTOM("custom")
ANTHROPIC("anthropic")
ANTHROPIC_EXAMPLE("anthropic_example")
PLUGIN("plugin")
JsonValue type "skill"constant

Object type.

For Skills, this is always "skill".

LocalDateTime updatedAt

ISO 8601 timestamp of when the skill was last updated.

formatdate-time

Create Skill

package com.anthropic.example;

import com.anthropic.client.AnthropicClient;
import com.anthropic.client.okhttp.AnthropicOkHttpClient;
import com.anthropic.models.skills.Skill;
import com.anthropic.models.skills.SkillCreateParams;
import java.io.ByteArrayInputStream;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        AnthropicClient client = AnthropicOkHttpClient.fromEnv();

        SkillCreateParams params = SkillCreateParams.builder()
            .addFile(new ByteArrayInputStream("Example data".getBytes()))
            .build();
        Skill skill = client.skills().create(params);
    }
}
{
  "id": "skill_01JAbcdefghijklmnopqrstuvw",
  "created_at": "2024-10-30T23:58:27.427722Z",
  "display_name": "display_name",
  "latest_version_id": "latest_version_id",
  "source": {
    "type": "custom"
  },
  "type": "skill",
  "updated_at": "2024-10-30T23:58:27.427722Z"
}
Returns Examples
{
  "id": "skill_01JAbcdefghijklmnopqrstuvw",
  "created_at": "2024-10-30T23:58:27.427722Z",
  "display_name": "display_name",
  "latest_version_id": "latest_version_id",
  "source": {
    "type": "custom"
  },
  "type": "skill",
  "updated_at": "2024-10-30T23:58:27.427722Z"
}