# CertSeal

```json
{
  "name": "CertSeal",
  "slug": "cert_seal",
  "url": "https://composio.dev/toolkits/cert_seal",
  "markdown_url": "https://composio.dev/toolkits/cert_seal.md",
  "logo_url": "https://logos.composio.dev/api/certseal",
  "categories": [
    "document & file management"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-08-14T06:03:08.196Z"
}
```

![CertSeal logo](https://logos.composio.dev/api/certseal)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with CertSeal MCP or direct API to issue certificates, manage recipients, process batches, and create webhook subscriptions through natural language.

## Summary

CertSeal is an API platform for issuing and managing verifiable digital certificates.
Use it to automate trusted certificate workflows for recipients, batches, designs, and webhooks.

## Categories

- document & file management

## Toolkit Details

- Tools: 21

## Images

- Logo: https://logos.composio.dev/api/certseal

## Authentication

- **Api Key**
  - Type: `api_key`
  - Description: Api Key authentication for CertSeal.
  - Setup:
    - Configure Api Key credentials for CertSeal.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Issue certificates for completed training batch
- List pending CertSeal certificate recipients
- Create webhook for issued certificates

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `CERT_SEAL_CREATE_BATCH` | Create Batch | Create a persistent certificate batch from an existing CertSeal design and optional email template. This consumes a batch slot and can fail when the plan batch limit is reached; designs and templates must already exist and are not created by this tool. |
| `CERT_SEAL_CREATE_WEBHOOK_SUBSCRIPTION` | Create Webhook Subscription | Create a persistent webhook subscription for selected certificate events. The response contains a wh_sec_ signing secret exactly once; capture it immediately and store it securely because later reads reveal only its tail. The workspace allows at most 20 subscriptions. |
| `CERT_SEAL_DELETE_RECIPIENT` | Delete Recipient | Permanently delete an issued recipient from an active batch. This cannot be undone, does not refund certificate quota, and permanently burns the certificate ID. Use only when permanent removal is intended. |
| `CERT_SEAL_DELETE_WEBHOOK_SUBSCRIPTION` | Delete Webhook Subscription | Permanently delete a webhook subscription and stop future deliveries. This cannot be undone; create a new subscription to resume events. |
| `CERT_SEAL_GET_BATCH` | Get Batch | Get one active or archived certificate batch by ID. |
| `CERT_SEAL_GET_CERTIFICATE` | Get Certificate | Look up an issued certificate using either its human-readable certificate ID or its public-viewer share token, and return its recipient, batch, design, and resolved variables. Provide exactly one lookup value. |
| `CERT_SEAL_GET_CURRENT_WORKSPACE` | Get Current Workspace | Verify the connected CertSeal API key and return the workspace ID and username it belongs to. Use this to confirm account context before creating or changing resources. |
| `CERT_SEAL_GET_RECIPIENT` | Get Recipient | Get one issued certificate recipient record by batch ID and recipient ID. |
| `CERT_SEAL_GET_WEBHOOK_SUBSCRIPTION` | Get Webhook Subscription | Get one webhook subscription by ID. This does not reveal the signing secret; it returns only the stored secret tail. |
| `CERT_SEAL_ISSUE_AND_SEND_CERTIFICATES` | Issue and Send Certificates | Atomically issue certificates for 1-100 recipients and queue email delivery for every created certificate. This irreversible external side effect requires every recipient to have an email address and the active batch to have an email template and configured mail delivery. Each recipient permanently consumes one certificate quota unit. |
| `CERT_SEAL_ISSUE_CERTIFICATES` | Issue Certificates | Atomically issue certificates without sending email for 1-100 recipients in one active batch. Each recipient permanently consumes one certificate quota unit even if later deleted; any invalid row, duplicate certificate ID, or quota failure creates none. |
| `CERT_SEAL_LIST_BATCHES` | List Batches | Return one newest-first page of certificate batches in the connected workspace, optionally filtered by archive state. |
| `CERT_SEAL_LIST_DESIGNS` | List Designs | Return one newest-first page of reusable certificate designs. Designs are read-only through the API and must be authored in the CertSeal web app. |
| `CERT_SEAL_LIST_RECIPIENTS` | List Recipients | Return one page of issued certificate recipients in a batch, optionally filtered by email delivery status. |
| `CERT_SEAL_LIST_WEBHOOK_SUBSCRIPTIONS` | List Webhook Subscriptions | Return one newest-first page of webhook subscriptions. Stored signing secrets are never returned; secret_tail is only a non-sensitive identifier. |
| `CERT_SEAL_ROTATE_WEBHOOK_SIGNING_SECRET` | Rotate Webhook Signing Secret | Immediately invalidate a webhook subscription's current signing secret and replace it. The new wh_sec_ secret is returned exactly once; capture and deploy it immediately or webhook verification will fail. |
| `CERT_SEAL_SEND_CERTIFICATE_EMAILS` | Send Certificate Emails | Sequentially queue real certificate emails for 1-25 existing recipients in one active batch. Each queued email is irreversible. Processing stops after the first failed or unknown attempt, and remaining recipients are marked not_attempted. |
| `CERT_SEAL_SEND_RECIPIENT_CERTIFICATE_EMAIL` | Send Recipient Certificate Email | Queue asynchronous certificate email delivery to one recipient. This causes an external email side effect and requires a recipient email, a batch email template, and configured mail delivery; already queued or in-flight recipients and archived batches are rejected. |
| `CERT_SEAL_SET_BATCH_ARCHIVED` | Set Batch Archived State | Idempotently archive or unarchive a batch. Archiving freezes recipient create, update, delete, and send operations but preserves existing certificate URLs; unarchiving re-enables those writes. This persistent change is reversible. |
| `CERT_SEAL_TEST_WEBHOOK_SUBSCRIPTION` | Test Webhook Subscription | Enqueue one synthetic signed event through CertSeal's normal webhook dispatcher. This causes a real external delivery to the subscription URL; it does not only validate the subscription locally. |
| `CERT_SEAL_UPDATE_RECIPIENT` | Update Recipient | Partially update an issued certificate recipient. Only supplied fields change, while an explicit null clears an optional field; changing certificate_id must remain globally unique. Archived batches reject this mutation. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute CertSeal Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute CertSeal actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'List all CertSeal certificate batches created this month'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'List all CertSeal certificate batches created this month'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK for Python or TypeScript
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Initialize Client and Create Tool Router Session

Import and initialize the Composio client, then create a Tool Router session for CertSeal
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });
const session = await composio.create('your-user-id');
console.log(`Tool Router session created: ${session.mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent (Anthropic Claude or Mastra)
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to CertSeal tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('List all CertSeal certificate batches created this month')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: session.mcp.url,
    headers: {
      'x-api-key': 'your-composio-api-key',
    },
  },
});

const tools = await client.tools();
const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{
    role: 'user',
    content: 'List all CertSeal certificate batches created this month'
  }],
  maxSteps: 5,
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native CertSeal Integration

- Supports both CertSeal MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable certificate, recipient, batch, design, and webhook actions
- Rich coverage for reading, writing, and querying your CertSeal data without custom glue code

### 2. Managed Auth

- Secure API key handling so agents can call CertSeal without hard-coded credentials
- Central place to manage, scope, and revoke CertSeal access
- Per user and per environment credentials for safer certificate automation

### 3. Agent Optimized Design

- Tools are designed so AI agents can understand CertSeal workflows clearly, from issuing certificates to managing batches
- Tool schemas reduce guesswork and help agents pass the right certificate, recipient, and webhook fields
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access CertSeal
- Scoped, least privilege access to CertSeal resources
- Full audit trail of certificate-related agent actions to support review and compliance

## Use CertSeal with any AI Agent Framework

Choose a framework you want to connect CertSeal with:

- [ChatGPT Work](https://composio.dev/toolkits/cert_seal/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/cert_seal/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/cert_seal/framework/hermes-agent)

## Related Toolkits

- [Google Drive](https://composio.dev/toolkits/googledrive) - Google Drive is a cloud storage platform for uploading, sharing, and collaborating on files. It's perfect for keeping your documents accessible and organized across devices.
- [Google Docs](https://composio.dev/toolkits/googledocs) - Google Docs is a cloud-based word processor that enables document creation and real-time collaboration. Its seamless sharing and version history make team editing and content management a breeze.
- [Google Super](https://composio.dev/toolkits/googlesuper) - Google Super is an all-in-one suite combining Gmail, Drive, Calendar, Sheets, Analytics, and more. It gives you a unified platform to manage your digital life, boosting productivity and organization.
- [ActiveMerge](https://composio.dev/toolkits/active_merge) - ActiveMerge is a document automation platform for generating documents, images, merged files, and e-signature workflows. It helps teams turn templates and stored files into finished, shareable documents faster.
- [Affinda](https://composio.dev/toolkits/affinda) - Affinda is an AI-powered document processing platform that automates data extraction from resumes, invoices, and more. It streamlines document-heavy workflows by turning files into structured, actionable data.
- [Agility cms](https://composio.dev/toolkits/agility_cms) - Agility CMS is a headless content management system for building and managing digital experiences across platforms. It lets teams update content quickly and deliver omnichannel experiences with ease.
- [Airparser](https://composio.dev/toolkits/airparser) - Airparser is an AI-powered parser for extracting structured data from emails, documents, PDFs, and files. It turns messy inbound content into clean fields your apps and workflows can use.
- [Algodocs](https://composio.dev/toolkits/algodocs) - Algodocs is an AI-powered platform that automates data extraction from business documents. It delivers fast, secure, and accurate processing without templates or manual training.
- [Api2pdf](https://composio.dev/toolkits/api2pdf) - Api2Pdf is a REST API for generating PDFs from HTML, URLs, and documents using powerful engines like wkhtmltopdf and Headless Chrome. It streamlines document conversion and automation for developers and businesses.
- [Aryn](https://composio.dev/toolkits/aryn) - Aryn is an AI-powered platform for parsing, extracting, and analyzing data from unstructured documents. Use it to automate document processing and unlock actionable insights from your files.
- [Boldsign](https://composio.dev/toolkits/boldsign) - Boldsign is a digital eSignature platform for sending, signing, and tracking documents online. Organizations use it to automate agreements and manage legally binding workflows efficiently.
- [Boloforms](https://composio.dev/toolkits/boloforms) - BoloForms is an eSignature platform built for small businesses, offering unlimited signatures, templates, and forms. It simplifies digital document signing and team collaboration at a predictable, fixed price.
- [Box](https://composio.dev/toolkits/box) - Box is a cloud content management and file sharing platform for businesses. It helps teams securely store, organize, and collaborate on files from anywhere.
- [Carbone](https://composio.dev/toolkits/carbone) - Carbone is a blazing-fast report generator that turns JSON data into PDFs, Word docs, spreadsheets, and more using flexible templates. It lets you automate document creation at scale with minimal code.
- [Castingwords](https://composio.dev/toolkits/castingwords) - CastingWords is a transcription service specializing in human-powered, accurate transcripts via a simple API. Get seamless audio-to-text conversion for interviews, meetings, podcasts, and more.
- [Cloudconvert](https://composio.dev/toolkits/cloudconvert) - CloudConvert is a powerful file conversion service supporting over 200 file formats. It streamlines converting, compressing, and managing documents, media, and more, all in one place.
- [Cloudlayer](https://composio.dev/toolkits/cloudlayer) - Cloudlayer is a document and asset generation service for creating PDFs and images via API or SDKs. It lets you automate high-quality doc creation, saving dev time and reducing manual work.
- [CloudPDF](https://composio.dev/toolkits/cloud_pdf) - CloudPDF is an API platform for creating, uploading, managing, and sharing PDF documents. Use it to build secure PDF workflows with webhooks, share links, and access control.
- [Cloudpress](https://composio.dev/toolkits/cloudpress) - Cloudpress is a content export tool for Google Docs and Notion. It automates publishing to your favorite Content Management Systems.
- [Contentful graphql](https://composio.dev/toolkits/contentful_graphql) - Contentful graphql is a content delivery API that lets you access Contentful data using GraphQL queries. It gives you efficient, flexible ways to fetch and manage structured content for any digital project.

## Frequently Asked Questions

### Do I need my own developer credentials to use CertSeal with Composio?

Yes, CertSeal requires you to configure your own API key. Once set up, Composio handles secure credential storage and API request handling for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
