VerifycateDeveloper Docs

Quickstart

Create an API key and make your first authenticated request

Get a workspace API key, then list certificates or import recipients.

1. Create an API key

  1. Sign in at app.verifycate.com.
  2. Open your workspace → API Keys.
  3. Create a key with at least certificates:read (list) or certificates:write (import). Leave scopes empty for full access.
  4. Copy the secret. It starts with vc_ and is shown only once.

API keys require an active Pro seat on the workspace. Without a seat, authenticated API calls return 402 with code seat_required.

2. List certificates

Replace YOUR_WORKSPACE_SLUG and the key.

curl "https://api.verifycate.com/api/v1/workspaces/YOUR_WORKSPACE_SLUG/certificates?limit=50&offset=0" \
  -H "Authorization: Bearer vc_your_api_key"
const res = await fetch(
  "https://api.verifycate.com/api/v1/workspaces/acme/certificates?limit=50&offset=0",
  {
    headers: { Authorization: "Bearer vc_your_api_key" },
  },
);
const page = await res.json();
console.log(page.items, page.total);
package main

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

func main() {
	req, _ := http.NewRequest(
		http.MethodGet,
		"https://api.verifycate.com/api/v1/workspaces/acme/certificates?limit=50&offset=0",
		nil,
	)
	req.Header.Set("Authorization", "Bearer vc_your_api_key")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(res.Status, string(body))
}
import urllib.request

req = urllib.request.Request(
    "https://api.verifycate.com/api/v1/workspaces/acme/certificates?limit=50&offset=0",
    headers={"Authorization": "Bearer vc_your_api_key"},
)
with urllib.request.urlopen(req) as res:
    print(res.status, res.read().decode())

3. Import recipients (optional)

Once you have a certificate id, import issues with certificates:write:

curl -X POST \
  https://api.verifycate.com/api/v1/workspaces/acme/certificates/550e8400-e29b-41d4-a716-446655440000/issues \
  -H "Authorization: Bearer vc_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "issues": [
      {
        "email": "[email protected]",
        "name": "Ada Lovelace",
        "attributes": {
          "course": "Mathematics",
          "roll_number": "CS-001"
        }
      }
    ]
  }'

Next: Authentication, Scopes, and Import issues.