diff --git a/README.md b/README.md
index 2614930..32bfb8e 100644
--- a/README.md
+++ b/README.md
@@ -8,15 +8,92 @@
## Overview
-[//]: # (TODO: Add overview mentioning the purpose of the module, supported REST API versions, and other high-level details.)
+[OpenAI](https://openai.com/), an AI research organization focused on creating friendly AI for humanity, offers the [OpenAI API](https://platform.openai.com/docs/api-reference/introduction) to access its powerful AI models for tasks like natural language processing and image generation.
+
+The `ballarinax/openai.finetunes` package offers APIs to connect and interact with [the fine-tuning related endpoints of OpenAI REST API v1](https://platform.openai.com/docs/guides/fine-tuning) allowing users to customize OpenAI's AI models to meet specific needs.
## Setup guide
-[//]: # (TODO: Add detailed steps to obtain credentials and configure the module.)
+To use the OpenAI Connector, you must have access to the OpenAI API through a [OpenAI Platform account](https://platform.openai.com) and a project under it. If you do not have a OpenAI Platform account, you can sign up for one [here](https://platform.openai.com/signup).
+
+#### Create a OpenAI API Key
+
+1. Open the [OpenAI Platform Dashboard](https://platform.openai.com).
+
+2. Navigate to Dashboard -> API keys
+
+
+3. Click on the "Create new secret key" button
+
+
+4. Fill the details and click on Create secret key
+
+
+5. Store the API key securely to use in your application
+
## Quickstart
-[//]: # (TODO: Add a quickstart guide to demonstrate a basic functionality of the module, including sample code snippets.)
+To use the `OpenAI Finetunes` connector in your Ballerina application, update the `.bal` file as follows:
+
+### Step 1: Import the module
+
+Import the `openai.finetunes` module.
+
+```ballerina
+import ballerinax/openai.finetunes;
+import ballerina/io;
+```
+
+### Step 2: Instantiate a new connector
+
+Create a `finetunes:ConnectionConfig` with the obtained API Key and initialize the connector.
+
+```ballerina
+configurable string apiKey = ?;
+
+final finetunes:Client openAIFinetunes = check new({
+ auth: {
+ token: apiKey
+ }
+});
+```
+
+### Step 3: Invoke the connector operation
+
+Now, utilize the available connector operations.
+
+**Note**: First, create a sample.jsonl file in the same directory. This file should contain the training data formatted according to the guidelines provided [here](https://platform.openai.com/docs/api-reference/files/create).
+
+#### Fine tuning the gpt-3.5-turbo model
+
+```ballerina
+public function main() returns error? {
+
+ finetunes:CreateFileRequest req = {
+ file: {fileContent: check io:fileReadBytes("sample.jsonl"), fileName: "sample.jsonl"},
+ purpose: "fine-tune"
+ };
+
+ finetunes:OpenAIFile fileRes = check openaiFinetunes->/files.post(req);
+
+ string fileId = fileRes.id;
+
+ CreateFineTuningJobRequest fineTuneRequest = {
+ model: "gpt-3.5-turbo",
+ training_file: fileId
+ };
+
+ FineTuningJob fineTuneResponse =
+ check openaiFinetunes->/fine_tuning/jobs.post(fineTuneRequest);
+}
+```
+
+### Step 4: Run the Ballerina application
+
+```bash
+bal run
+```
## Examples
diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml
index d2c7c22..674f2e2 100644
--- a/ballerina/Ballerina.toml
+++ b/ballerina/Ballerina.toml
@@ -5,8 +5,8 @@ name = "openai.finetunes"
version = "1.0.5"
license = ["Apache-2.0"]
authors = ["Ballerina"]
-keywords = [] # TODO: Add keywords
-icon = "icon.png" # TODO: Add icon
+keywords = ["AI/Fine-tunes", "OpenAI", "Cost/Paid", "Files", "Models", "Vendor/OpenAI"]
+icon = "icon.png"
repository = "https://github.com/ballerina-platform/module-ballerinax-openai.finetunes"
[build-options]
diff --git a/ballerina/Module.md b/ballerina/Module.md
index f0b0909..7c59b65 100644
--- a/ballerina/Module.md
+++ b/ballerina/Module.md
@@ -1,17 +1,95 @@
+
## Overview
-[//]: # (TODO: Add overview mentioning the purpose of the module, supported REST API versions, and other high-level details.)
+[OpenAI](https://openai.com/), an AI research organization focused on creating friendly AI for humanity, offers the [OpenAI API](https://platform.openai.com/docs/api-reference/introduction) to access its powerful AI models for tasks like natural language processing and image generation.
+
+The `ballarinax/openai.finetunes` package offers APIs to connect and interact with [the fine-tuning related endpoints of OpenAI REST API v1](https://platform.openai.com/docs/guides/fine-tuning) allowing users to customize OpenAI's AI models to meet specific needs.
## Setup guide
-[//]: # (TODO: Add detailed steps to obtain credentials and configure the module.)
+To use the OpenAI Connector, you must have access to the OpenAI API through a [OpenAI Platform account](https://platform.openai.com) and a project under it. If you do not have a OpenAI Platform account, you can sign up for one [here](https://platform.openai.com/signup).
+
+#### Create a OpenAI API Key
+
+1. Open the [OpenAI Platform Dashboard](https://platform.openai.com).
+
+2. Navigate to Dashboard -> API keys
+
+
+3. Click on the "Create new secret key" button
+
+
+4. Fill the details and click on Create secret key
+
+
+5. Store the API key securely to use in your application
+
## Quickstart
-[//]: # (TODO: Add a quickstart guide to demonstrate a basic functionality of the module, including sample code snippets.)
+To use the `OpenAI Finetunes` connector in your Ballerina application, update the `.bal` file as follows:
+
+### Step 1: Import the module
+
+Import the `openai.finetunes` module.
+
+```ballerina
+import ballerinax/openai.finetunes;
+import ballerina/io;
+```
+
+### Step 2: Instantiate a new connector
+
+Create a `finetunes:ConnectionConfig` with the obtained API Key and initialize the connector.
+
+```ballerina
+configurable string apiKey = ?;
+
+final finetunes:Client openAIFinetunes = check new({
+ auth: {
+ token: apiKey
+ }
+});
+```
+
+### Step 3: Invoke the connector operation
+
+Now, utilize the available connector operations.
+
+**Note**: First, create a sample.jsonl file in the same directory. This file should contain the training data formatted according to the guidelines provided [here](https://platform.openai.com/docs/api-reference/files/create).
+
+#### Fine tuning the gpt-3.5-turbo model
+
+```ballerina
+public function main() returns error? {
+
+ finetunes:CreateFileRequest req = {
+ file: {fileContent: check io:fileReadBytes("sample.jsonl"), fileName: "sample.jsonl"},
+ purpose: "fine-tune"
+ };
+
+ finetunes:OpenAIFile fileRes = check openaiFinetunes->/files.post(req);
+
+ string fileId = fileRes.id;
+
+ CreateFineTuningJobRequest fineTuneRequest = {
+ model: "gpt-3.5-turbo",
+ training_file: fileId
+ };
+
+ FineTuningJob fineTuneResponse =
+ check openaiFinetunes->/fine_tuning/jobs.post(fineTuneRequest);
+}
+```
+
+### Step 4: Run the Ballerina application
+
+```bash
+bal run
+```
## Examples
The `OpenAI Finetunes` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/module-ballerinax-openai.finetunes/tree/main/examples/), covering the following use cases:
-[//]: # (TODO: Add examples)
\ No newline at end of file
+[//]: # (TODO: Add examples)
diff --git a/ballerina/Package.md b/ballerina/Package.md
index f0b0909..7c59b65 100644
--- a/ballerina/Package.md
+++ b/ballerina/Package.md
@@ -1,17 +1,95 @@
+
## Overview
-[//]: # (TODO: Add overview mentioning the purpose of the module, supported REST API versions, and other high-level details.)
+[OpenAI](https://openai.com/), an AI research organization focused on creating friendly AI for humanity, offers the [OpenAI API](https://platform.openai.com/docs/api-reference/introduction) to access its powerful AI models for tasks like natural language processing and image generation.
+
+The `ballarinax/openai.finetunes` package offers APIs to connect and interact with [the fine-tuning related endpoints of OpenAI REST API v1](https://platform.openai.com/docs/guides/fine-tuning) allowing users to customize OpenAI's AI models to meet specific needs.
## Setup guide
-[//]: # (TODO: Add detailed steps to obtain credentials and configure the module.)
+To use the OpenAI Connector, you must have access to the OpenAI API through a [OpenAI Platform account](https://platform.openai.com) and a project under it. If you do not have a OpenAI Platform account, you can sign up for one [here](https://platform.openai.com/signup).
+
+#### Create a OpenAI API Key
+
+1. Open the [OpenAI Platform Dashboard](https://platform.openai.com).
+
+2. Navigate to Dashboard -> API keys
+
+
+3. Click on the "Create new secret key" button
+
+
+4. Fill the details and click on Create secret key
+
+
+5. Store the API key securely to use in your application
+
## Quickstart
-[//]: # (TODO: Add a quickstart guide to demonstrate a basic functionality of the module, including sample code snippets.)
+To use the `OpenAI Finetunes` connector in your Ballerina application, update the `.bal` file as follows:
+
+### Step 1: Import the module
+
+Import the `openai.finetunes` module.
+
+```ballerina
+import ballerinax/openai.finetunes;
+import ballerina/io;
+```
+
+### Step 2: Instantiate a new connector
+
+Create a `finetunes:ConnectionConfig` with the obtained API Key and initialize the connector.
+
+```ballerina
+configurable string apiKey = ?;
+
+final finetunes:Client openAIFinetunes = check new({
+ auth: {
+ token: apiKey
+ }
+});
+```
+
+### Step 3: Invoke the connector operation
+
+Now, utilize the available connector operations.
+
+**Note**: First, create a sample.jsonl file in the same directory. This file should contain the training data formatted according to the guidelines provided [here](https://platform.openai.com/docs/api-reference/files/create).
+
+#### Fine tuning the gpt-3.5-turbo model
+
+```ballerina
+public function main() returns error? {
+
+ finetunes:CreateFileRequest req = {
+ file: {fileContent: check io:fileReadBytes("sample.jsonl"), fileName: "sample.jsonl"},
+ purpose: "fine-tune"
+ };
+
+ finetunes:OpenAIFile fileRes = check openaiFinetunes->/files.post(req);
+
+ string fileId = fileRes.id;
+
+ CreateFineTuningJobRequest fineTuneRequest = {
+ model: "gpt-3.5-turbo",
+ training_file: fileId
+ };
+
+ FineTuningJob fineTuneResponse =
+ check openaiFinetunes->/fine_tuning/jobs.post(fineTuneRequest);
+}
+```
+
+### Step 4: Run the Ballerina application
+
+```bash
+bal run
+```
## Examples
The `OpenAI Finetunes` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/module-ballerinax-openai.finetunes/tree/main/examples/), covering the following use cases:
-[//]: # (TODO: Add examples)
\ No newline at end of file
+[//]: # (TODO: Add examples)
diff --git a/docs/setup/resources/api-key-dashboard.png b/docs/setup/resources/api-key-dashboard.png
new file mode 100644
index 0000000..0a66883
Binary files /dev/null and b/docs/setup/resources/api-key-dashboard.png differ
diff --git a/docs/setup/resources/create-new-secret-key.png b/docs/setup/resources/create-new-secret-key.png
new file mode 100644
index 0000000..5492f4a
Binary files /dev/null and b/docs/setup/resources/create-new-secret-key.png differ
diff --git a/docs/setup/resources/navigate-api-key-dashboard.png b/docs/setup/resources/navigate-api-key-dashboard.png
new file mode 100644
index 0000000..f42cb48
Binary files /dev/null and b/docs/setup/resources/navigate-api-key-dashboard.png differ
diff --git a/docs/setup/resources/saved-key.png b/docs/setup/resources/saved-key.png
new file mode 100644
index 0000000..7ed28c7
Binary files /dev/null and b/docs/setup/resources/saved-key.png differ