> ## Documentation Index
> Fetch the complete documentation index at: https://code.storage/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# deleteTag()

> Delete a tag from the repository.

<CodeGroup>
  ```typescript TypeScript theme={null} theme={"theme":{"light":"github-light","dark":"min-dark"}}
  const result = await repo.deleteTag({
    name: 'v1.0.0',
  });

  console.log(result.message);
  ```

  ```python Python theme={null} theme={"theme":{"light":"github-light","dark":"min-dark"}}
  result = await repo.delete_tag(name="v1.0.0")

  print(result["message"])
  ```

  ```go Go theme={null} theme={"theme":{"light":"github-light","dark":"min-dark"}}
  result, err := repo.DeleteTag(context.Background(), storage.DeleteTagOptions{
  	Name: "v1.0.0",
  })

  fmt.Println(result.Message)
  ```
</CodeGroup>

Tag names must not start with `refs/` — the SDK handles ref resolution automatically.

## Options

<ParamField path="name" type="string" required>
  Tag name to delete (e.g. `v1.0.0`). Must not start with `refs/`.
</ParamField>

<ParamField path="refPolicies" type="object[]">
  Ordered per-ref policy rules (`{ pattern, ops? }`) embedded in the per-call JWT. First match wins. Python: `ref_policies`. Go: `RefPolicies` with type `storage.RefPolicyList`. See the [Branch Protection guide](/docs/guides/branch-protection).
</ParamField>

## Response

<ResponseField name="name" type="string">
  The deleted tag name
</ResponseField>

<ResponseField name="message" type="string">
  Confirmation message from the API
</ResponseField>
