# List Verifiable Credential Templates

This method lists the available Verifiable Credential Templates. The weightage for this API is `1`

## API Specification

## List Verifiable Credential Templates

<mark style="color:green;">`POST`</mark> `https://api.krypcore.com/api/v0/did/listVCTemplates`

Lists the available Verifiable Credential Templates under the given instance.&#x20;

#### Headers

| Name                                            | Type   | Description                      |
| ----------------------------------------------- | ------ | -------------------------------- |
| Authorization<mark style="color:red;">\*</mark> | String | User Auth Key obtained from Dash |
| DappId<mark style="color:red;">\*</mark>        | String | DappId                           |

#### Request Body

| Name                                      | Type   | Description |
| ----------------------------------------- | ------ | ----------- |
| status<mark style="color:red;">\*</mark>  | String | status      |
| data<mark style="color:red;">\*</mark>    | String | data        |
| message<mark style="color:red;">\*</mark> | String | message     |

{% tabs %}
{% tab title="200: OK Success" %}

```javascript
{
    "Data": [{
        "mutable": true,
        "name": "PermanentResidentCard",
        "template": null
    }, {
        "mutable": false,
        "name": "DataConsortium",
        "template": null
    }, {
        "mutable": true,
        "name": "KycCredential",
        "template": null
    }, {
        "mutable": true,
        "name": "AmletCredential",
        "template": null
    }, {
        "mutable": true,
        "name": "VerifiablePresentation",
        "template": null
    }, {
        "mutable": true,
        "name": "ParticipantCredential",
        "template": null
    }, {
        "mutable": true,
        "name": "Email",
        "template": null
    }, {
        "mutable": false,
        "name": "EbsiVerifiableAccreditationToAccredit",
        "template": null
    }, {
        "mutable": true,
        "name": "UniversityDegree",
        "template": null
    }, {
        "mutable": false,
        "name": "KybMonoCredential",
        "template": null
    }, {
        "mutable": false,
        "name": "StatusList2021Credential",
        "template": null
    }, {
        "mutable": false,
        "name": "EbsiVerifiableAttestationLegal",
        "template": null
    }, {
        "mutable": true,
        "name": "VerifiableId",
        "template": null
    }, {
        "mutable": true,
        "name": "StudentId",
        "template": null
    }, {
        "mutable": false,
        "name": "VerifiableAttestation",
        "template": null
    }, {
        "mutable": false,
        "name": "EbsiEuropass",
        "template": null
    }, {
        "mutable": false,
        "name": "KybCredential",
        "template": null
    }, {
        "mutable": false,
        "name": "Europass",
        "template": null
    }, {
        "mutable": false,
        "name": "ProofOfResidence",
        "template": null
    }, {
        "mutable": false,
        "name": "EbsiAccreditedVerifiableAttestation",
        "template": null
    }, {
        "mutable": false,
        "name": "LegalPerson",
        "template": null
    }, {
        "mutable": false,
        "name": "VerifiableVaccinationCertificate",
        "template": null
    }, {
        "mutable": false,
        "name": "Iso27001Certificate",
        "template": null
    }, {
        "mutable": false,
        "name": "VerifiableMandate",
        "template": null
    }, {
        "mutable": false,
        "name": "EbsiVerifiableAttestationGeneric",
        "template": null
    }, {
        "mutable": false,
        "name": "GaiaxCredential",
        "template": null
    }, {
        "mutable": false,
        "name": "EbsiVerifiableAttestationPerson",
        "template": null
    }, {
        "mutable": false,
        "name": "EbsiDiplomaVerifiableAccreditation",
        "template": null
    }, {
        "mutable": true,
        "name": "VerifiableAuthorization",
        "template": null
    }, {
        "mutable": true,
        "name": "VerifiableDiploma",
        "template": null
    }, {
        "mutable": true,
        "name": "DataSelfDescription",
        "template": null
    }, {
        "mutable": false,
        "name": "NEOM/StudentCard",
        "template": null
    }, {
        "mutable": false,
        "name": "DataServiceOffering",
        "template": null
    }, {
        "mutable": false,
        "name": "DeqarReport",
        "template": null
    }, {
        "mutable": false,
        "name": "PeerReview",
        "template": null
    }, {
        "mutable": false,
        "name": "OpenBadgeCredential",
        "template": null
    }, {
        "mutable": false,
        "name": "EuropeanBankIdentity",
        "template": null
    }, {
        "mutable": true,
        "name": "ServiceOfferingCredential",
        "template": null
    }],
    "Message": "",
    "Status": "SUCCESS"
}
```

{% endtab %}
{% endtabs %}

Take a look at how you might call this method using our official libraries, or via `curl`:

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

```bash
curl --location 'https://api.krypcore.com/api/v0/did/listVCTemplates' \
--header 'Authorization: xxxxxxxxxxxxxxxx' \
--header 'DappId: xxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data '{
  "data": "string",
  "message": "string",
  "status": "string"
}'
```

{% endtab %}

{% tab title="Node.js (Fetch)" %}

```javascript
const axios = require('axios');
let data = JSON.stringify({
  "data": "string",
  "message": "string",
  "status": "string"
});

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://api.krypcore.com/api/v0/did/listVCTemplates',
  headers: { 
    'Authorization': 'xxxxxxxxxxxxxxxx', 
    'DappId': 'xxxxxxxxxxxxxxxx', 
    'Content-Type': 'application/json'
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});

```

{% endtab %}

{% tab title="Python " %}

```python
import requests
import json

url = "https://api.krypcore.com/api/v0/did/listVCTemplates"

payload = json.dumps({
  "data": "string",
  "message": "string",
  "status": "string"
})
headers = {
  'Authorization': 'xxxxxxxxxxxxxxxx',
  'DappId': 'xxxxxxxxxxxxxxxx',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

```

{% endtab %}

{% tab title="Golang" %}

```go
package main

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

func main() {

  url := "https://api.krypcore.com/api/v0/did/listVCTemplates"
  method := "POST"

  payload := strings.NewReader(`{
  "data": "string",
  "message": "string",
  "status": "string"
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Authorization", "xxxxxxxxxxxxxxxx")
  req.Header.Add("DappId", "xxxxxxxxxxxxxxxx")
  req.Header.Add("Content-Type", "application/json")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
```

{% endtab %}
{% endtabs %}
