> This page is for Itential Platform On-Prem, version 6 (default).
> For other versions, use one of these documentation indexes:
> - 6 (default): https://docs.itential.com/itential-platform/6/llms.txt
> - 2023.2: https://docs.itential.com/itential-platform/2023-2/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.itential.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.itential.com/_mcp/server.

# Export a skill

GET https://example.itential.io/agent-project-service/skills/{skillId}/export

Returns one version of a skill as a base64-encoded zip file that the skill import operation accepts. Returns the current version unless another is requested. Requires read access to the skill.

Reference: https://docs.itential.com/itential-platform/6/api-reference/agent-project-service/export-skill

## Authentication

- `Authorization` header (basic auth, required) — Basic authentication of the form `Basic <base64(username:password)>`.

## Request

### Path parameters

- `skillId` (string, required) — Skill id (UUID).

### Query parameters

- `version` (integer, optional) — Version to export; the current version when omitted.

## Response

### 200

The exported Skill version, with the file name and content type to save it under.

- `message` (string, required)
- `data` (AgentProjectServiceSkillsSkillIdExportGetResponsesContentApplicationJsonSchemaData, required)

## Errors

### 500 Internal Server Error

Error response from API

- `any`

## Types

### AgentProjectServiceSkillsSkillIdExportGetResponsesContentApplicationJsonSchemaData

- `skillId` (string, required) — Skill id (UUID).
- `version` (integer, required) — The version exported: the requested one, or the current one.
- `filename` (string, required) — Name to save the export under: the skill's name with a .zip extension.
- `contentType` ("application/zip", required) — Content type of the decoded `content`.
- `content` (string, required) — Base64 of a zip with SKILL.md at its root, rebuilt from the version's name, description and body, and one file per resource at its path. At most 11,175,000 bytes zipped and 25 MB uncompressed, else the request is refused with 400.

## Examples

**Response**

```json
{
  "message": "string",
  "data": {
    "skillId": "string",
    "version": 1,
    "filename": "string",
    "contentType": "string",
    "content": "string"
  }
}
```

**SDK Code**

```python
import requests

url = "https://example.itential.io/agent-project-service/skills/skillId/export"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://example.itential.io/agent-project-service/skills/skillId/export';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://example.itential.io/agent-project-service/skills/skillId/export"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://example.itential.io/agent-project-service/skills/skillId/export")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://example.itential.io/agent-project-service/skills/skillId/export")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://example.itential.io/agent-project-service/skills/skillId/export');

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://example.itential.io/agent-project-service/skills/skillId/export");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://example.itential.io/agent-project-service/skills/skillId/export")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```