# List Categories

## List categories

<mark style="color:blue;">`GET`</mark> `https://sandbox.mnasati.com/v1/categories`

This endpoint allows you to list all categories of the store.

#### Headers

| Name         | Type   | Description                                       |
| ------------ | ------ | ------------------------------------------------- |
| Content-Type | string | Application/JSON                                  |
| Access Token | string | The JWT generated using the Authorization method. |

{% tabs %}
{% tab title="200 Cake successfully retrieved." %}

```
{
   "status":true,
   "total":"33",
   "data":[
      {
         "category_id":"304",
         "category_name":"Mezze",
         "category_name_ar":"Mezze",
         "image":"https://mnasatistorage.fra1.digitaloceanspaces.com/manastitesting/uploads/category_image/43/category_304_1598996931_thumb.jpg",
         "product_total":"12"
      },
      {
         "category_id":"438",
         "category_name":"test cat",
         "category_name_ar":"test cat",
         "image":null,
         "product_total":"1"
      },
      {
         "category_id":"454",
         "category_name":"cat test",
         "category_name_ar":"cat test",
         "image":null,
         "product_total":"1"
      },
      {
         "category_id":"459",
         "category_name":"test app",
         "category_name_ar":"test  app",
         "image":null,
         "product_total":"0"
      },
      {
         "category_id":"460",
         "category_name":"test appr",
         "category_name_ar":"test app",
         "image":null,
         "product_total":"0"
      },
      {
         "category_id":"461",
         "category_name":"test 222",
         "category_name_ar":"test app  r",
         "image":null,
         "product_total":"0"
      },
      {
         "category_id":"462",
         "category_name":"testttttt",
         "category_name_ar":"testtttttt",
         "image":null,
         "product_total":"0"
      },
      {
         "category_id":"463",
         "category_name":"test test test",
         "category_name_ar":"test test",
         "image":null,
         "product_total":"0"
      },
      {
         "category_id":"464",
         "category_name":"ggggg",
         "category_name_ar":"ggggg",
         "image":null,
         "product_total":"0"
      },
      {
         "category_id":"471",
         "category_name":"ttttttt",
         "category_name_ar":"ttttttttt",
         "image":null,
         "product_total":"0"
      }
   ]
}
```

{% endtab %}

{% tab title="400 " %}

```
{"status":400,"error":400,"messages":{"status":false,"message":"Access denied"}}
```

{% endtab %}
{% endtabs %}

#### Examples

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

```python
import http.client

conn = http.client.HTTPSConnection("sandbox.mnasati.com")

headers = {
    'Content-Type': "",
    'Authorization-Jwt': ""
    }

conn.request("POST", "/v1/categories", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://sandbox.mnasati.com/v1/categories",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_HTTPHEADER => [
    "Authorization-Jwt: ",
    "Content-Type: "
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
```

{% endtab %}

{% tab title="Java" %}

```java
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://sandbox.mnasati.com/v1/categories")
  .post(null)
  .addHeader("Content-Type", "")
  .addHeader("Authorization-Jwt", "")
  .build();

Response response = client.newCall(request).execute();
```

{% endtab %}

{% tab title="C#" %}

```csharp
var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Post,
    RequestUri = new Uri("https://sandbox.mnasati.com/v1/categories"),
    Headers =
    {
        { "Content-Type", "" },
        { "Authorization-Jwt", "" },
    },
};
using (var response = await client.SendAsync(request))
{
    response.EnsureSuccessStatusCode();
    var body = await response.Content.ReadAsStringAsync();
    Console.WriteLine(body);
}
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://sandbox.mnasati.com/v1/categories")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["Content-Type"] = ''
request["Authorization-Jwt"] = ''

response = http.request(request)
puts response.read_body
```

{% endtab %}

{% tab title="Go" %}

```go
package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "https://sandbox.mnasati.com/v1/categories"

	req, _ := http.NewRequest("POST", url, nil)

	req.Header.Add("Content-Type", "")
	req.Header.Add("Authorization-Jwt", "")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

{% endtab %}

{% tab title="Swift" %}

```swift
import Foundation

let headers = [
  "Content-Type": "",
  "Authorization-Jwt": ""
]

let request = NSMutableURLRequest(url: NSURL(string: "https://sandbox.mnasati.com/v1/categories")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

{% endtab %}

{% tab title="jQuery" %}

```javascript
const settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://sandbox.mnasati.com/v1/categories",
  "method": "POST",
  "headers": {
    "Content-Type": "",
    "Authorization-Jwt": ""
  }
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

{% endtab %}
{% endtabs %}


---

# 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.mnasati.com/api-methods/list-categories.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.
