Full Feature Set

Everything in the Barry API

A complete RESTful API for managing educational institutions, courses, and users — built for modern EdTech.

🔐

JWT Authentication

Secure, stateless authentication powered by Guardian JWT. Every request is verified with industry-standard token-based auth.

• Access tokens (15 min expiry)
• Refresh tokens (30 day expiry)
• SHA-256 hashed token storage
• Token type enforcement
• Email verification required
• bcrypt password hashing

Auth Flow

Signup → Verify → Login → Access

POST /v1/users POST /v1/auth/token

Schools

Full CRUD with pagination

GET /v1/schools POST /v1/schools
🏫

School Management

Organize educational institutions with rich metadata, location data, and flexible filtering.

• UUID public identifiers
• Name, address, city, state
• Country (ISO 2-letter codes)
• Logo URL support
• Soft-delete with is_active
• Paginated listing (up to 100/page)
📚

Course Catalog

Full course management scoped to schools with comprehensive metadata and validation.

• School-scoped courses
• Course codes & descriptions
• Prerequisites tracking
• Credit hours (1-50)
• Unique course names per school
• Filtering by school & status

Courses

Scoped per institution

GET /v1/courses POST /v1/courses
👤

User Management

Complete user lifecycle including registration, profile updates, email verification, and soft-delete.

📄

JSON Envelope

Standardized response format with data, meta, and errors across all endpoints — predictable and easy to consume.

📧

Email Verification

Branded verification emails via Resend API with one-time codes, SHA-256 hashed in the database. Resend available.

Clean, consistent, developer-first

Every endpoint follows the same patterns. Predictable responses, clear errors, and thorough validation.

POST /v1/users
// Request
{
  "email": "user@school.edu",
  "password": "securepassword123",
  "name": "New User"
}

// Response: 201 Created
{
  "data": {
    "id": "uuid",
    "email": "user@school.edu",
    "name": "New User",
    "is_active": false,
    "confirmed_at": null
  },
  "meta": {
    "message": "Verification email sent."
  },
  "errors": null
}
          

Build with Barry

Join the modern educational API platform. Start free, no credit card required.