Docs/Getting Started with SVB Tech Labs APIs

Getting Started

Welcome to the SVB Tech Labs developer documentation. This guide covers the basics — authentication, your first API call, and how to navigate the rest of the docs.

Prerequisites

Before making API calls you'll need:

  • An account on the relevant product (My Pg Hub, EduSMS.ai, or Grupdo)
  • An API key generated from your account settings
  • A REST client (we recommend Postman or curl)

Base URL

All API endpoints follow this pattern:

https://api.svbtechlabs.com/v1/{product}/{endpoint}

Examples:

https://api.svbtechlabs.com/v1/mypghub/rooms
https://api.svbtechlabs.com/v1/edusms/students
https://api.svbtechlabs.com/v1/grupdo/channels

Authentication

All requests require an Authorization header with your API key:

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Generating an API Key

  1. Log in to your product dashboard
  2. Navigate to Settings → API
  3. Click Generate New Key
  4. Copy and store the key securely — it won't be shown again

Important: Keep your API key secret. Never expose it in client-side code or public repositories.

Your First Request

Let's make a simple authenticated request. Replace YOUR_API_KEY with your actual key.

Using curl

curl https://api.svbtechlabs.com/v1/mypghub/rooms \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Expected Response

{
  "success": true,
  "data": {
    "rooms": [
      {
        "id": "room_01abc",
        "number": "101",
        "type": "single",
        "status": "occupied",
        "tenant_id": "tenant_xyz"
      }
    ],
    "total": 1,
    "page": 1
  }
}

Response Format

All API responses follow a consistent format:

Success

{
  "success": true,
  "data": { ... }
}

Error

{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid or expired API key"
  }
}

Common HTTP Status Codes

| Code | Meaning | |------|---------| | 200 | Success | | 201 | Resource created | | 400 | Bad request — check your request body | | 401 | Unauthorized — check your API key | | 403 | Forbidden — insufficient permissions | | 404 | Resource not found | | 429 | Rate limit exceeded | | 500 | Server error — contact support |

Rate Limiting

API requests are rate-limited per key:

| Plan | Requests per minute | |------|-------------------| | Free | 30 | | Pro | 300 | | Enterprise | Unlimited |

When you exceed the rate limit, you'll receive a 429 response with a Retry-After header indicating when to retry.

Pagination

List endpoints support pagination via query parameters:

GET /v1/mypghub/rooms?page=2&limit=20

Responses include pagination metadata:

{
  "data": { ... },
  "pagination": {
    "page": 2,
    "limit": 20,
    "total": 87,
    "pages": 5
  }
}

Next Steps

Need Help?

If you're stuck, reach out: