> ## Documentation Index
> Fetch the complete documentation index at: https://docs.waec.org/llms.txt
> Use this file to discover all available pages before exploring further.

# API Reference Overview

> Explore the WAEC Certificate Digitization REST API: base URLs, authentication, request and response formats, versioning, and all available endpoints.

The Digital Certificate Confirmation API allows institutions to integrate directly with the Digital Certificate platform to confirm WAEC certificates and retrieve confirmation records. All requests and responses use JSON.

## Environments

The API has two environments. Use the sandbox for development and testing — it is fully isolated from production data.

| Environment | Base URL                                        |
| ----------- | ----------------------------------------------- |
| Production  | `https://api.waec.org/api/v1/external`          |
| Sandbox     | `https://api.smartdocument.org/api/v1/external` |

<Note>
  Each environment requires its own API Secret key. See [Environments](/configuration/environment) for details on switching between them.
</Note>

## Authentication

Every endpoint requires your Institution API Secret key passed in the `X-DigiCert-Secret` request header:

```bash theme={null}
X-DigiCert-Secret: <your_api_secret_key>
```

You can generate an API Secret key from your Institution account profile on the platform.

## Request Format

For `POST` requests, set `Content-Type: application/json` and include a JSON body. `GET` requests pass all parameters as query string arguments or path segments.

## Response Format

Every response is a JSON object with a consistent envelope structure.

**Successful response:**

```json theme={null}
{
  "success": true,
  "data": {}
}
```

**Error response:**

```json theme={null}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid or missing API secret key."
  }
}
```

The `data` field contains the primary payload. On errors, the `error.code` field contains a machine-readable string for programmatic error handling. See [Errors](/api-reference/errors) for the full list of error codes.

## Available Endpoints

| Method | Endpoint                                 | Description                      |
| ------ | ---------------------------------------- | -------------------------------- |
| `POST` | `/certificate/confirm`                   | Confirm one or more certificates |
| `GET`  | `/certificate/confirmation/preview/{id}` | Preview a confirmed certificate  |
| `GET`  | `/certificate/confirmation-history`      | View confirmation history        |
