Skip to content

API Key Management

Description: The following interfaces are used to manage API Keys for the MOI workspace. After successfully obtaining or creating an API Key, the returned moi-key should be passed in the Header when calling other MOI business APIs for authentication.

Steps to obtain an API KEY: After logging into the GenAI workspace platform, click on the user avatar in the top right corner of the page, and select the "API Management" option from the dropdown menu to view, obtain, or update your API keys.

Create API Key

POST /user/me/api-key

Description: Creates a new API Key (moi-key) for the current user.

Header Parameters:

Parameter Name Type Required Description
access-token string Yes Account authentication token
uid string Yes Account ID

Response Parameters:

Parameter Name Type Description
key string The generated API Key (moi-key)
created_at string Creation time
request_id string Request ID

Example (Python):

import requests
import json

# Assume access_token and uid have been obtained via the login interface
access_token = "YOUR_ACCESS_TOKEN"
uid = "YOUR_USER_ID"
api_endpoint = "https://freetier-01.cn-hangzhou.cluster.matrixonecloud.cn"

url = f"{api_endpoint}/user/me/api-key"

headers = {
    "access-token": access_token,
    "uid": uid,
    "Content-Type": "application/json",
    "Accept": "application/json"
}

response = requests.post(url, headers=headers, json={})

print("Status Code:", response.status_code)
if response.status_code == 200:
    try:
        response_data = response.json()
        print("Response Body (new moi-key details):", json.dumps(response_data, indent=4, ensure_ascii=False))
        new_moi_key = response_data.get("data", {}).get("key")
        if new_moi_key:
            print(f"Successfully created new moi-key: {new_moi_key}")
        else:
            print("New moi-key not found in response.")
    except json.JSONDecodeError:
        print("Error decoding JSON from response:", response.text)
else:
    print("Error Response Body:", response.text)

Example (JSON Response):

{
  "code": "OK",
  "msg": "OK",
  "data": {
    "key": "YOUR_NEW_MOI_KEY_STRING",
    "created_at": "2023-05-29T08:06:42Z"
  },
  "request_id": "YOUR_REQUEST_ID"
}

Refresh API Key

POST /user/me/api-key/refresh

Description: Generates a new API Key (moi-key) for the current user. The old API Key will become invalid.

Header Parameters:

Parameter Name Type Required Description
access-token string Yes Account authentication token
uid string Yes Account ID

Response Parameters (200 OK):

Parameter Name Type Description
key string The newly generated API Key (moi-key)
created_at string New Key creation time
request_id string Request ID

Example (Python):

import requests
import json

# Assume access_token and uid have been obtained via the login interface
access_token = "YOUR_ACCESS_TOKEN"
uid = "YOUR_USER_ID"
api_endpoint = "https://freetier-01.cn-hangzhou.cluster.matrixonecloud.cn"

url = f"{api_endpoint}/user/me/api-key/refresh"

headers = {
    "access-token": access_token,
    "uid": uid,
    "Content-Type": "application/json",
    "Accept": "application/json"
}

response = requests.post(url, headers=headers, json={})

print("Status Code:", response.status_code)
if response.status_code == 200:
    try:
        response_data = response.json()
        print("Response Body (refreshed moi-key details):", json.dumps(response_data, indent=4, ensure_ascii=False))
        refreshed_moi_key = response_data.get("data", {}).get("key")
        if refreshed_moi_key:
            print(f"Successfully refreshed moi-key: {refreshed_moi_key}")
        else:
            print("Refreshed moi-key not found in response.")
    except json.JSONDecodeError:
        print("Error decoding JSON from response:", response.text)
else:
    print("Error Response Body:", response.text)

Example (JSON Response):

{
  "code": "OK",
  "msg": "OK",
  "data": {
    "key": "YOUR_REFRESHED_MOI_KEY_STRING",
    "created_at": "2023-05-29T08:10:00Z"
  },
  "request_id": "YOUR_REQUEST_ID"
}