> For the complete documentation index, see [llms.txt](https://docs.archisketch.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.archisketch.com/guide/dev-en/api-sdk/faq.md).

# API FAQ (Frequently Asked Questions)

## 0. General & Common API

<details>

<summary>Q. How to check if an API request succeeded or failed</summary>

A. Every API response includes a `result` field. Determine the success of the request based on whether this value is `SUCCESS` or `FAIL`. A `5xx` response is returned only during system failures.

```json
{
  "result": "SUCCESS",
  "data": { ... }
}
```

```json
{
  "result": "FAIL",
  "error": {
    "errorType": "NOT_FOUND",
    "message": "Resource not found."
  }
}
```

</details>

<details>

<summary>Q. Where can I issue an x-api-key?</summary>

A. You can issue an API key after logging into the Archisketch dashboard. The issued key must be included in the header of all API requests.

```http
X-API-KEY: {x-api-key}
```

{% hint style="warning" %}
Make sure to keep your `x-api-key` secure so that it is not exposed externally.
{% endhint %}

</details>

<details>

<summary>Q. Are there API request limits?</summary>

A. Request limits are enforced per company for each API.

* Write: 30 requests per second or fewer
* Read: 50 requests per second or fewer

If exceeded, a `TOO_MANY_REQUEST` error will be returned for some requests.

</details>

<details>

<summary>Q. What is the maximum length for String parameters?</summary>

A. It varies by field, but most are within 255 characters.

</details>

## 1. Modeling

<details>

<summary>Q. Which 3D file formats are supported?</summary>

A. Files are uploaded in `multipart/form-data` format when creating a model. Please contact the representative to inquire about supported formats.

</details>

<details>

<summary>Q. How do I check if rendering is complete after creating a model?</summary>

A. You can check the status through the `renderingStatus` field of the Get Modeling API (`GET /api/v1/modelings/{id}`).

* PENDING: Rendering queued / waiting
* IN\_PROGRESS: Rendering in progress
* COMPLETED: Rendering complete (the output will be populated in `renderAsset`)
* FAILED: Rendering failed

</details>

## 2. Component

<details>

<summary>Q. Can I create a component without a model?</summary>

A. Yes, you can. The `modelingId` is an optional field. To link a model later, use `PATCH /api/v1/components/{id}/modeling`.

</details>

<details>

<summary>Q. What is isFinal?</summary>

A. `isFinal` indicates whether the component is a final part that cannot be broken down any further into sub-parts.

* true: Final part (cannot be broken down further)
* false: Assembly part that can contain sub-components (`childComponents`)

</details>

<details>

<summary>Q. What is a Flat BOM?</summary>

A. A BOM (Bill of Materials) is a list of parts that make up a product. A Flat BOM flattens the hierarchical structure, allowing you to retrieve all sub-parts at once. You can fetch this using `GET /api/v1/components/{id}/bom`.

</details>

## 3. Product

<details>

<summary>Q. What are product decomposition (decompose) and merging (merge)?</summary>

A.

* Decompose: Separates a single product into individual products based on its constituent components.
* Merge: Combines multiple products into a single product. You can group them into an option structure by specifying option keys such as color or size.

</details>

<details>

<summary>Q. What is a product option key (optionKey)?</summary>

A. An option key is the criteria used to differentiate product options. For example, if `optionKey1` is set to "Color", you can assign values like "Beige" or "Gray" to `optionValue1` in each option record. You can use up to 5 option keys.

</details>

<details>

<summary>Q. Can I link multiple components to a single product?</summary>

A. Yes, you can. You can pass multiple components as an array in `components.records`, or add options after creating a product using `POST /api/v1/sales/{id}/options`.

</details>

## 4. Parametric Component

<details>

<summary>Q. What is the difference between a general component and a parametric component?</summary>

A. A general component is a 3D object with a fixed shape. A parametric component is a dynamic component whose parameters—such as width, height, and color—can be adjusted directly by the user within the Archisketch editor. It is used when dimensions need to be freely customized, such as with custom furniture.

</details>

<details>

<summary>Q. Can a parametric component also be registered as a product (Sale)?</summary>

A. Yes, it can. Just like general components, parametric components can be registered as products. You can simply use the parametric component ID in `components.records` when making a `POST /api/v1/sales` request.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.archisketch.com/guide/dev-en/api-sdk/faq.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
