Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Ishaq74/concordia/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The Blog API provides comprehensive content management endpoints for articles, authors, categories, comments, and media. All Blog API endpoints require admin authentication.Articles
List Articles
Query Parameters
Page number (1-indexed)
Items per page (max: 100)
Search by slug
Filter by status:
draft, published, scheduled, archivedFilter featured articles (
true or false)Filter articles displayed on homepage
Filter articles displayed in blog listing
Filter by category ID
Filter by organization ID
Fetch single article by ID (returns full details with translations, authors, categories, media)
Create Article
From/src/pages/api/admin/blog/articles.ts:197-297:
Request Body
Must be
"create"URL-friendly slug (auto-generated if not provided)
Article status:
draft, published, scheduled, archivedPrimary language code (ISO 639-1)
Organization ID (nullable)
Show on homepage
Show in blog listing
Mark as featured
Enable comments
Estimated reading time (e.g., “5 min”)
Article word count
Array of translation objects (see structure above)
Array of author IDs
Array of category IDs
Array of media objects with
mediaId, type, positionUpdate Article
From/src/pages/api/admin/blog/articles.ts:299-409:
Other Article Actions
From/src/pages/api/admin/blog/articles.ts:411-534:
Publish Article
status to "published" and sets publishedAt to current timestamp.
Unpublish Article
Delete Article
Duplicate Article
"draft" and unique slug.
Authors
List Authors
From/src/pages/api/admin/blog/authors.ts:19-98:
Query Parameters
Fetch single author by ID (includes article count)
Return all authors (for selectors) with minimal fields
Search by slug
Filter featured authors
Filter authors displayed on homepage
Filter authors displayed in blog
Create Author
From/src/pages/api/admin/blog/authors.ts:122-166:
Response
Update/Delete Author
From/src/pages/api/admin/blog/authors.ts:168-238:
Categories
List Categories
From/src/pages/api/admin/blog/categories.ts:18-102:
Query Parameters
Fetch single category by ID
Return all categories (for selectors)
Filter by parent ID (use
"root" for top-level)Filter categories shown in menu
Create Category
From/src/pages/api/admin/blog/categories.ts:126-165:
Comments
List Comments
From/src/pages/api/admin/blog/comments.ts:13-66:
Query Parameters
Filter by status:
pending, approved, rejectedFilter by post type
Search by author name or email
Response
Moderate Comments
From/src/pages/api/admin/blog/comments.ts:72-162:
Media
List Media
From/src/pages/api/admin/blog/media.ts:20-51:
Query Parameters
Filter by media type:
image, video, audioSearch by URL
Upload Media
From/src/pages/api/admin/blog/media.ts:57-210:
Configuration
- Upload directory:
public/uploads/blog - Max file size: 10 MB
- Allowed types: JPEG, PNG, WebP, AVIF, GIF, SVG
Form Fields
Image file to upload
Custom filename (auto-sanitized)
Alt text for accessibility
Image caption
Detailed description
Update/Delete Media
From/src/pages/api/admin/blog/media.ts:66-115:
Common Response Codes
| Code | Description |
|---|---|
| 200 | Success |
| 201 | Created |
| 400 | Invalid request (missing fields, invalid action) |
| 403 | Not admin (forbidden) |
| 404 | Resource not found |
| 500 | Server error |
Audit Logging
All Blog API actions are logged toaudit_log table:
blog.article.createblog.article.updateblog.article.deleteblog.article.publishblog.article.unpublishblog.article.duplicateblog.author.createblog.author.updateblog.author.deleteblog.category.createblog.category.updateblog.category.deleteblog.comment.approveblog.comment.rejectblog.comment.deleteblog.media.uploadblog.media.delete
Related Resources
API Overview
Authentication and rate limiting
Services API
Manage service listings