# Get started with Rodin

Rodin 的 API 使用 API 密钥来验证请求。要以编程方式访问 Rodin 服务，您需要生成一个 API 密钥。以下是如何安全地进行身份验证和使用 API 密钥的步骤。

#### 生成 API 密钥

1. **导航到 API 密钥管理页面**
   * 登录到您的 Rodin 账户，进入 API 密钥管理部分。
   * 点击“+创建新 API 密钥”按钮以生成新密钥。
2. **安全存储您的 API 密钥**
   * 一旦创建，API 密钥将仅显示一次。确保您复制并安全存储。如果您丢失了密钥，您需要生成一个新密钥。
3. **在必要时撤销密钥**
   * 您可以直接在 API 密钥管理页面管理现有的 API 密钥，并撤销不再需要的密钥。

#### **使用 API 密钥进行身份验证**

对于每个 API 请求，请在 Authorization HTTP 头中包含 API 密钥。以下是如何构建请求的示例：

```http
Authorization: Bearer YOUR_RODIN_API_KEY
```

将 `YOUR_RODIN_API_KEY` 替换为您实际生成的 API 密钥。

### 发起请求

一旦您生成了 API 密钥，就可以使用以下示例代码触发您的第一个请求，以生成高质量的 3D 资产。

{% tabs %}
{% tab title="cURL" %}
`bash export RODIN_API_KEY="your api key" curl https://api.hyper3d.com/api/v2/rodin \ -H "Authorization: Bearer ${RODIN_API_KEY}" \ -F "images=@/path/to/your/image.jpg" unset RODIN_API_KEY`
{% endtab %}

{% tab title="Python 3" %}
{% code fullWidth="false" %}

```
// Create the form data for Rodin API
writer := multipart.NewWriter(&buffer)

// Read the image
image, err := os.ReadFile(filePath)
if err != nil {
	return nil, err
}

// Add the image as a form entry
fieldWriter, err := writer.CreateFormFile("images", filepath.Base(filePath))
if err != nil {
	return nil, err
}

if _, err = fieldWriter.Write(image); err != nil {
	return nil, err
}

err = writer.Close()
if err != nil {
	return nil, err
}

// Create the request
req, err := http.NewRequest("POST", fmt.Sprintf("%s/v2/rodin", BaseURI), &buffer)
if err != nil {
	return nil, err
}

// Set headers
req.Header.Set("Authorization", "Bearer "+token)
req.Header.Set("Content-Type", writer.FormDataContentType())

resp, err := http.DefaultClient.Do(req)
if err != nil {
	return nil, err
}
defer resp.Body.Close()

var responseData RodinAllInOneResponse
err = json.NewDecoder(resp.Body).Decode(&responseData)
if err != nil {
	return nil, err
}

if responseData.Error != nil {
	return nil, fmt.Errorf("%s: %s", *responseData.Error, *responseData.Message)
}

return &responseData, nil
```

{% endcode %}
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.hyper3d.ai/zh_cn/get-started/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
