# Create certification metadata

URL: /en/docs/api/v1/certifications/post
Last Updated: 2026-07-30T21:15:44.919Z

## Description
No description available.

## Available Actions
- Execute POST request
- View request parameters
- View response schema
- Get code examples
- Navigate to related topics
- View step-by-step instructions
- Get best practices

## Content
### POST /api/v1/certifications

**Create certification metadata**

Create certification metadata without file uploads. Files and badges must be uploaded separately using dedicated endpoints.

**Authentication:** Bearer token (`Authorization: Bearer <token>`)

**Request body** (`application/json`) - required:

- `title` (string, required): Certification title
- `slug` (string): URL-friendly certification identifier
- `description` (string): Certification description
- `description_markdown` (string): Markdown-formatted description
- `issue_date` (string (date)): Issue date in YYYY-MM-DD format
- `expiry_date` (string (date)): Expiry date in YYYY-MM-DD format
- `validity_months` (integer): Validity period in months
- `state` (enum: valid | expired): Initial certification state
- `featured` (boolean): Whether certification should be featured
- `show_validity_period_on_card` (boolean): Show validity period on card display
- `template` (string (uuid)): Template ID to derive badge and category from
- `variant_options` (array of string (uuid)): Variant option IDs to assign to this item (default locale only).

Example (Basic certification):

```json
{
  "title": "ISO 27001 Certificate",
  "slug": "iso-27001",
  "description": "Information Security Management System certification",
  "issue_date": "2025-01-15",
  "validity_months": 36,
  "featured": true
}
```

Example (Certification with specific expiry date):

```json
{
  "title": "SOC 2 Type II",
  "slug": "soc-2-type-ii",
  "description": "Service Organization Control Type 2 certification",
  "issue_date": "2025-01-01",
  "expiry_date": "2026-01-01",
  "state": "valid",
  "featured": true
}
```

Example (Certification from template):

```json
{
  "title": "GDPR Compliance",
  "slug": "gdpr-compliance",
  "template": "550e8400-e29b-41d4-a716-446655440000",
  "issue_date": "2025-01-10",
  "validity_months": 12
}
```

**Responses:**

- `201` - Certification metadata created successfully
  - `success` (boolean)
  - `data` (object)
    - `documentId` (string (uuid)): ID of the created certification
    - `uploadUrls` (object)
      - `document` (string): URL for certificate file upload
      - `badge` (string): URL for badge file upload
- `400` - Bad Request - validation failed
  - `error` (string): Validation error message
- `401` - Unauthorized
- `409` - Conflict - slug already exists
  - `error` (string): Validation error message
- `500` - Internal server error

**Code samples:**

cURL:

```bash
curl -X POST "https://app.orbiqhq.com/api/v1/certifications" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "ISO 27001",
  "description": "Information security management certification",
  "issue_date": "2025-01-15"
}'
```

