> For the complete documentation index, see [llms.txt](https://docs.imerit.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.imerit.net/sdk/sdk-documentation/project-level-sdk-functions/upload_instructions.md).

# upload\_instructions

`imerit_ango.sdk.SDK.`

## upload\_instructions(project\_id, file\_path, storage\_id, bucket)

Upload an instruction file to your project.

### Parameters

* **project\_id:** string
  * The unique identifier for the project. You can find the project ID in [the user interface](/sdk/sdk-documentation.md#project-ids) or retrieve it using the [`list_projects`](/sdk/sdk-documentation/project-level-sdk-functions/list_projects.md) function.
* **file\_path:** string
  * Absolute path to the instruction file.
* **storage\_id:** string, *Optional, default None*
  * The unique identifier for the storage. You can retrieve the storage ID using [`get_storages`](/sdk/sdk-documentation/organization-level-sdk-functions/get_storages.md) function.
* **bucket:** string, *Optional, default None*
  * The name of the storage bucket, or Azure container, to use for upload.

Returns:

* **output:** dict
  * A dictionary containing the result of the operation.
  * Including a `status` field indicating whether the request was successful and a `data` field containing the response payload with updated resources produced by the operation.

<details open>

<summary><strong>How to verify in Ango Hub?</strong></summary>

After successfully executing the `upload_instructions` function, you can validate the changes directly in Ango Hub.

Navigate to: **Projects → \[Your Project] → Settings → Instructions**

* Confirm that the instruction file has been uploaded successfully and is displayed correctly.

{% hint style="info" %}
Changes made via the SDK are reflected in Ango Hub in near real-time. If updates are not immediately visible, please refresh the page.
{% endhint %}

</details>

### Example

Upload an instruction file:

{% tabs %}
{% tab title="python" %}

```python
import os
from dotenv import load_dotenv
from imerit_ango.sdk import SDK

load_dotenv('variables.env')
api_key = os.getenv('API_KEY')
project_id = os.getenv('PROJECT_ID')

ango_sdk = SDK(api_key)

file_path = "/Users/user/Desktop/project_instruction.pdf"

sdk_response = ango_sdk.upload_instructions(project_id=project_id, file_path=file_path)
```

{% endtab %}
{% endtabs %}

Upload an instruction file to a custom storage bucket or Azure container

{% tabs %}
{% tab title="python" %}

```python
import os
from dotenv import load_dotenv
from imerit_ango.sdk import SDK

load_dotenv('variables.env')
api_key = os.getenv('API_KEY')
project_id = os.getenv('PROJECT_ID')

ango_sdk = SDK(api_key)

file_path = "/Users/user/Desktop/project_instruction.pdf"
storage_id = "<Storage ID>"
bucket_name = "<Custom Bucket or Container Name>"

sdk_response = ango_sdk.upload_instructions(
    project_id=project_id,
    file_path=file_path,
    storage_id=storage_id,
    bucket=bucket_name
)
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
**See also**

[get\_project](/sdk/sdk-documentation/project-level-sdk-functions/get_project.md), [Instructions](/core-concepts/instructions.md)
{% endhint %}
