# Introduction

### API Basics <a href="#introduction-api-basics" id="introduction-api-basics"></a>

Akowe API gives you access to pretty much all the features you can use on our dashboard and lets you extend them for use in your application. It strives to be RESTful and is organized around the main resources you would be interacting with - with a few notable exceptions.

{% hint style="info" %}
**Before you do anything**

You should [create a free Akowe account](https://issuance.akowe.app/dashboard/register.html) that you can test the API against. We will provide you with keys that you can use to make API calls.
{% endhint %}

### Sample Requests <a href="#introduction-sample-requests" id="introduction-sample-requests"></a>

We provide sample API calls next to each method using [cURL](https://curl.haxx.se/). All you need to do is insert your specific parameters, and you can test the calls from the command line. See this tutorial on [using cURL with APIs](https://www.baeldung.com/curl-rest).

You can also use [Postman](https://www.postman.com/downloads/) if you are not familiar with cURL. Postman is an easy to use API development and testing platform. You can explore it to understand how our APIs work.

### Requests and Response <a href="#introduction-requests-response" id="introduction-requests-response"></a>

Both request body data and response data are formatted as JSON. Content type for responses will always be `application/json`. Generally, all responses will be in the following format:

{% code title="Response Format" lineNumbers="true" %}

```json
{
  "ResponseCode": [string],  // "00" if the details provided could be processed and no error occured while processing
  "ResponseMessage": [string], // Explains why status is false... Entirely informational. Please only log this but do not use for your checks
  "Data": [object]    // contains actionable result of processing if present
}
```

{% endcode %}

We have provided a handy `ResponseCode` key to let you know upfront if the request was successful or not. "00" represents Success, while other codes would have their corresponding failure message in `ResponseMessage.`

The ResponseMessage key is a string which will contain a summary of the response and its status. For instance, when trying to retrieve a list of templates, ResponseMessage might read “Successful”. In the event of an error, the message key will contain a description of the error. ResponseCode and ResponseMessage are the only keys that are universal across requests.

The Data key is where you want to look at for the result of your request. It can either be an object or an array depending on the request made. For instance, a request to retrieve templates will return  an array of templates earlier created by you.


---

# 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://docs.akowe.app/introduction.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.
