You will need Bearer Token. The token is given below:
URrZvFul71e7dFCpSQwMcyNco0GuVLsB+wdQB9ih8OKCwwy4xYsWlvSB2hrAaGkfzCzEOE5byrv/czN8JMRvmj9+9Lr6CutFtu6k0aJefUn7/L6dY2tv1S+FTy92uyv3bJWSAXHVJ0H3Raf0Ic/WO309+FbKfF6n17AjwsSykgVHlW53yVsaMdSd9K/u76HctZYz0LWXaGsy8XrmD2C2kEd4budJSqziakqajq+wVcqrxcSzAmyqtnjVF0+MnXw+2HUfpAKDMyvj/TPmq/12z400+8P0s0e8mQXSi/vGG248pVlMq5SnhOSenQ3ZwVtEzH8OORj+9W40RFbfkue37u+Mz7dzBqw5s3/4q7HLoIDBPu76YUH7pZRYvLDmseSDsNsD4n6F0W+n7t2b7rG9Wc5IK6/VTDqHbMXg1giKXpctM7rJTrbVRQiYDgdfh8FNXiUJc5SMP6Nzbxi51pdB1+gxphEN5S5UaXaEJ/vGwM5K6UA231zbixKLjbEgyI2FyI7SpAWnVT3uUAZq6qB5yQ==
### Gaining Confidence in API Concepts
Throughout the course, I delved into the basics of Syncloop, including its dashboard, services and features. My review of the course would be to add more lessons and maybe other resources for learning. The course was on point, but a few more basic lessons would help students even more. Overall, I had a pretty good experience while learning, and I even got a badge and a certificate 🎉


## Creating an API with Syncloop
### Designing the API: Drag, Drop, and Connect
Syncloop's visual interface made developing the API a breeze. I could effortlessly select variables, create variables, make requests to other endpoints, connect services and whatnot. It was like a fun game to build the API visually. All it needed was some logic and an idea, everything else was pretty easy.
My Idea was to create an API that would take a transcript of a job interview video call between an interviewer and an interviewee and analyze that transcript and then make some suggestions based on that. Other than that, one would not be able to test my API if they don't have a transcript, so I decided to make one more API that would generate a transcript for you based on whatever role you give it. So that you can use that transcript to test the main API.
### Using services within an API
Just like I would write middleware using ExpressJS, I was simply able to make different services that I could use as a standalone API or I could use it in other APIs as a middleware. Syncloop also has a lot of premade services, such as the `request` service which lets you make a call to another API. This is one of the prominent features I used to make my API.
I used OpenAI's API to generate and analyze transcripts. I used my prompts and with the help of Syncloop, I was able to take the user's input, evaluate it in my prompt and then make a request to OpenAI using that prompt.

### Learning on the Go: Troubleshooting and Iterating
As a beginner, encountering roadblocks was inevitable. However, whenever I had a bug, I either rewatched a tutorial video or went through their documentation and in the end everything was solved. I even had to write my own service in Java but their Java documentation really helped me in it and with very little knowledge of Java I was able to write that service properly.
### The final product
So here I am with both the APIs I build in very little time and with very little knowledge. I know they are not perfect, but it feels like an achievement anyway. One thing to note is that they would take a little bit of time to run because I am consuming OpenAI's API. These APIs should take 60 seconds to return a response and if they don't return a response even after 150 seconds then let me know. Also, the response needs a little bit of cleaning for both results. Still, you can directly use the result of Prompt Service for Analyze Service. Also, error handling is not added yet, but I am planning to add them as soon as my exams are over. You can test both of them and they are listed below.
#### Prompt Service
* **Description**: It will generate an interview transcript based on the job role you provide.
* **URL** (Endpoint): [https://cloud.syncloop.com/tenant/1690351040930/interviewAnalysis.prompt](https://cloud.syncloop.com/tenant/1690351040930/interviewAnalysis.prompt)
* **Method**: `GET`
* **Query**: `jobRole` (The job role for which you want the transcript)
* **Example**
* 
#### Analyze Service
* **Description**: When given a transcript of a job role, it returns an object with **Strengths**, **Weaknesses** and **Other Suggestions for the interviewee** so that he can improve in his next interview.
* **URL** (Endpoint): [https://cloud.syncloop.com/tenant/1690351040930/interviewAnalysis.analyze](https://cloud.syncloop.com/tenant/1690351040930/interviewAnalysis.analyze)
* **Method**: `POST`
* **Body**:
* ```json
{
"transcript": "your transcript here"
}
```
* **Example**:
* 
> Sometimes the Prompt Returned by the