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

# Generar Clave de Servicio

POST https://api.megaport.com/v2/service/key
Content-Type: application/json

Crea una clave de servicio.

Antes de poder crear una clave de servicio, necesita un servicio y debe especificar el ID del servicio en el campo `productUid` de la solicitud.

Personalice el cuerpo de la solicitud con los detalles de configuración para la clave de servicio.

`active` determina si la clave de servicio está disponible para su uso. Los valores válidos son `true` si desea que la clave esté disponible inmediatamente y `false` si no desea que la clave esté disponible inmediatamente. La clave de servicio se puede actualizar más adelante para cambiar este valor.

`singleUse` determina si se crea una clave de servicio de un solo uso o de uso múltiple. Los valores válidos son `true` (un solo uso) y `false` (uso múltiple). Con una clave de uso múltiple, el cliente con el que comparte la clave puede solicitar múltiples conexiones utilizando esa clave. Solo para claves de un solo uso, especifique un ID de VLAN (`vlan`).

`maxSpeed` es el límite de velocidad máximo para la clave de servicio en Mbps. Debe ser igual o inferior a 1000. Dejar este valor en blanco limitará la clave de servicio a la velocidad de servicio máxima disponible.

`validFor` es el rango de fechas para el cual la clave de servicio es válida. Las fechas se ingresan en formato de marca de tiempo UNIX. Puede utilizar herramientas como [https://www.epochconverter.com/](https://www.epochconverter.com/) o [https://it-tools.tech/date-converter](https://it-tools.tech/date-converter) para determinar el valor correcto a ingresar.

Para obtener más información, consulte [Crear una clave de servicio con la API](https://docs.megaport.com/api/api-create-servicekey/).

Reference: https://es.megaport.ferndocs.com/es/api-reference/connections/generate-service-key

## Servers

- `https://api.megaport.com` (Entorno de producción, default)
- `https://api-staging.megaport.com` (Entorno de pruebas (solo pruebas, se restablece cada 24 horas))

## Request

### Body (application/json)

This endpoint expects an object.

- `_set_singleUse_to_false_to_make_service_key_multiUse` (boolean, optional)
- `active` (boolean, optional)
- `description` (string, optional)
- `maxSpeed` (string, optional)
- `preApproved` (boolean, optional)
- `productUid` (string, optional)
- `singleUse` (boolean, optional)
- `validFor` (V2ServiceKeyPostRequestBodyContentApplicationJsonSchemaValidFor, optional)
- `vlan` (double, optional)

## Response

### 200

Generar Clave de Servicio / Generar Clave de Servicio

- `data` (V2ServiceKeyPostResponsesContentApplicationJsonSchemaData, optional)
- `message` (string, optional)
- `terms` (string, optional)

## Types

### V2ServiceKeyPostRequestBodyContentApplicationJsonSchemaValidFor

- `_make_end_timestamp_equal_to_1_month_forward` (double, optional)
- `_make_start_timestamp_equal_to_now` (double, optional)
- `end` (double, optional)
- `start` (double, optional)

### V2ServiceKeyPostResponsesContentApplicationJsonSchemaData

- `active` (boolean, optional)
- `bEnd` (V2ServiceKeyPostResponsesContentApplicationJsonSchemaDataBEnd, optional)
- `companyId` (double, optional)
- `companyName` (string, optional)
- `companyUid` (string, optional)
- `createDate` (double, optional)
- `description` (string, optional)
- `expired` (boolean, optional)
- `key` (string, optional)
- `lastUsed` (any, optional, nullable)
- `maxSpeed` (double, optional)
- `preApproved` (boolean, optional)
- `productDto` (V2ServiceKeyPostResponsesContentApplicationJsonSchemaDataProductDto, optional)
- `productId` (double, optional)
- `productName` (string, optional)
- `productUid` (string, optional)
- `singleUse` (boolean, optional)
- `valid` (boolean, optional)
- `validFor` (V2ServiceKeyPostResponsesContentApplicationJsonSchemaDataValidFor, optional)
- `vlan` (double, optional)

### V2ServiceKeyPostResponsesContentApplicationJsonSchemaDataBEnd

### V2ServiceKeyPostResponsesContentApplicationJsonSchemaDataProductDto

- `companyName` (string, optional)
- `companyUid` (string, optional)
- `connectType` (string, optional)
- `diversityZone` (string, optional)
- `locationId` (double, optional)
- `portSpeed` (double, optional)
- `productName` (string, optional)
- `productUid` (string, optional)
- `vxcPermitted` (boolean, optional)

### V2ServiceKeyPostResponsesContentApplicationJsonSchemaDataValidFor

- `end` (double, optional)
- `start` (double, optional)

## Examples

**Request**

```json
{
  "_set_singleUse_to_false_to_make_service_key_multiUse": true,
  "active": true,
  "description": "Servicio de Documentación Clave - Un Solo Uso",
  "maxSpeed": "500",
  "preApproved": true,
  "productUid": "73b2a452-9f93-4c45-afa0-887cf7f17e89",
  "singleUse": true,
  "validFor": {
    "_make_end_timestamp_equal_to_1_month_forward": 1612015200000,
    "_make_start_timestamp_equal_to_now": 1608506197135,
    "end": 1612015200000,
    "start": 1608506197135
  },
  "vlan": 3
}
```

**Response**

```json
{
  "data": {
    "active": true,
    "bEnd": {},
    "companyId": 1153,
    "companyName": "Megaport Lab",
    "companyUid": "160208ae-01e4-4cb9-8d57-03a197bd47a8",
    "createDate": 1738039556254,
    "description": "Servicio de Documentación Clave - Un Solo Uso",
    "expired": true,
    "key": "96cbcd3b-024e-4ea2-9b9f-ebfe5296b979",
    "lastUsed": null,
    "maxSpeed": 500,
    "preApproved": true,
    "productDto": {
      "companyName": "Megaport Lab",
      "companyUid": "160208ae-01e4-4cb9-8d57-03a197bd47a8",
      "connectType": "DEFAULT",
      "diversityZone": "blue",
      "locationId": 68,
      "portSpeed": 10000,
      "productName": "Example Port",
      "productUid": "73b2a452-9f93-4c45-afa0-887cf7f17e89",
      "vxcPermitted": true
    },
    "productId": 226855,
    "productName": "Example Port",
    "productUid": "73b2a452-9f93-4c45-afa0-887cf7f17e89",
    "singleUse": true,
    "valid": false,
    "validFor": {
      "end": 1612015200000,
      "start": 1608506197135
    },
    "vlan": 3
  },
  "message": "Nueva clave de servicio [96cbcd3b-024e-4ea2-9b9f-ebfe5296b979] generada",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy"
}
```

**SDK Code**

```python
import requests

url = "https://api.megaport.com/v2/service/key"

payload = {
    "_set_singleUse_to_false_to_make_service_key_multiUse": True,
    "active": True,
    "description": "Servicio de Documentación Clave - Un Solo Uso",
    "maxSpeed": "500",
    "preApproved": True,
    "productUid": "73b2a452-9f93-4c45-afa0-887cf7f17e89",
    "singleUse": True,
    "validFor": {
        "_make_end_timestamp_equal_to_1_month_forward": 1612015200000,
        "_make_start_timestamp_equal_to_now": 1608506197135,
        "end": 1612015200000,
        "start": 1608506197135
    },
    "vlan": 3
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.megaport.com/v2/service/key';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: '{"_set_singleUse_to_false_to_make_service_key_multiUse":true,"active":true,"description":"Servicio de Documentación Clave - Un Solo Uso","maxSpeed":"500","preApproved":true,"productUid":"73b2a452-9f93-4c45-afa0-887cf7f17e89","singleUse":true,"validFor":{"_make_end_timestamp_equal_to_1_month_forward":1612015200000,"_make_start_timestamp_equal_to_now":1608506197135,"end":1612015200000,"start":1608506197135},"vlan":3}'
};

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"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.megaport.com/v2/service/key"

	payload := strings.NewReader("{\n  \"_set_singleUse_to_false_to_make_service_key_multiUse\": true,\n  \"active\": true,\n  \"description\": \"Servicio de Documentación Clave - Un Solo Uso\",\n  \"maxSpeed\": \"500\",\n  \"preApproved\": true,\n  \"productUid\": \"73b2a452-9f93-4c45-afa0-887cf7f17e89\",\n  \"singleUse\": true,\n  \"validFor\": {\n    \"_make_end_timestamp_equal_to_1_month_forward\": 1612015200000,\n    \"_make_start_timestamp_equal_to_now\": 1608506197135,\n    \"end\": 1612015200000,\n    \"start\": 1608506197135\n  },\n  \"vlan\": 3\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Content-Type", "application/json")

	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://api.megaport.com/v2/service/key")

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

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"_set_singleUse_to_false_to_make_service_key_multiUse\": true,\n  \"active\": true,\n  \"description\": \"Servicio de Documentación Clave - Un Solo Uso\",\n  \"maxSpeed\": \"500\",\n  \"preApproved\": true,\n  \"productUid\": \"73b2a452-9f93-4c45-afa0-887cf7f17e89\",\n  \"singleUse\": true,\n  \"validFor\": {\n    \"_make_end_timestamp_equal_to_1_month_forward\": 1612015200000,\n    \"_make_start_timestamp_equal_to_now\": 1608506197135,\n    \"end\": 1612015200000,\n    \"start\": 1608506197135\n  },\n  \"vlan\": 3\n}"

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.post("https://api.megaport.com/v2/service/key")
  .header("Content-Type", "application/json")
  .body("{\n  \"_set_singleUse_to_false_to_make_service_key_multiUse\": true,\n  \"active\": true,\n  \"description\": \"Servicio de Documentación Clave - Un Solo Uso\",\n  \"maxSpeed\": \"500\",\n  \"preApproved\": true,\n  \"productUid\": \"73b2a452-9f93-4c45-afa0-887cf7f17e89\",\n  \"singleUse\": true,\n  \"validFor\": {\n    \"_make_end_timestamp_equal_to_1_month_forward\": 1612015200000,\n    \"_make_start_timestamp_equal_to_now\": 1608506197135,\n    \"end\": 1612015200000,\n    \"start\": 1608506197135\n  },\n  \"vlan\": 3\n}")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.megaport.com/v2/service/key', [
  'body' => '{
  "_set_singleUse_to_false_to_make_service_key_multiUse": true,
  "active": true,
  "description": "Servicio de Documentación Clave - Un Solo Uso",
  "maxSpeed": "500",
  "preApproved": true,
  "productUid": "73b2a452-9f93-4c45-afa0-887cf7f17e89",
  "singleUse": true,
  "validFor": {
    "_make_end_timestamp_equal_to_1_month_forward": 1612015200000,
    "_make_start_timestamp_equal_to_now": 1608506197135,
    "end": 1612015200000,
    "start": 1608506197135
  },
  "vlan": 3
}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

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

```csharp
using RestSharp;

var client = new RestClient("https://api.megaport.com/v2/service/key");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"_set_singleUse_to_false_to_make_service_key_multiUse\": true,\n  \"active\": true,\n  \"description\": \"Servicio de Documentación Clave - Un Solo Uso\",\n  \"maxSpeed\": \"500\",\n  \"preApproved\": true,\n  \"productUid\": \"73b2a452-9f93-4c45-afa0-887cf7f17e89\",\n  \"singleUse\": true,\n  \"validFor\": {\n    \"_make_end_timestamp_equal_to_1_month_forward\": 1612015200000,\n    \"_make_start_timestamp_equal_to_now\": 1608506197135,\n    \"end\": 1612015200000,\n    \"start\": 1608506197135\n  },\n  \"vlan\": 3\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = [
  "_set_singleUse_to_false_to_make_service_key_multiUse": true,
  "active": true,
  "description": "Servicio de Documentación Clave - Un Solo Uso",
  "maxSpeed": "500",
  "preApproved": true,
  "productUid": "73b2a452-9f93-4c45-afa0-887cf7f17e89",
  "singleUse": true,
  "validFor": [
    "_make_end_timestamp_equal_to_1_month_forward": 1612015200000,
    "_make_start_timestamp_equal_to_now": 1608506197135,
    "end": 1612015200000,
    "start": 1608506197135
  ],
  "vlan": 3
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.megaport.com/v2/service/key")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```