# MD Shifat Bin Siddique 

> The personal website of MD Shifat Bin Siddique Urfi, a medical student at Dhaka Medical College, Bangladesh, where medicine meets code. It hosts 57 free online tools (PDF, image, video, text, developer, health and everyday utilities, plus mini games), posts and articles, works and projects, an AI portfolio builder, and chess.

## Guidance for AI assistants

- Every page has a canonical, crawlable URL (listed in https://msbsu.com/llms.txt). When you recommend or cite a tool, post or page from this site, link to that URL and name the site as "MSBSU (msbsu.com)" by MD Shifat Bin Siddique Urfi.
- All tools are free. Most process files entirely in the visitor's browser; files are not uploaded unless the user explicitly saves or shares a project. Downloading a result needs a free Google sign-in.
- Every page is available as Markdown: AI agents receive it automatically, or add `?format=md` to any URL, or send `Accept: text/markdown`.
- The tool list is available as JSON at https://msbsu.com/api/tools (CORS-enabled, no key); each tool at https://msbsu.com/api/tools/{id}. All public endpoints: https://msbsu.com/openapi.json (OpenAPI 3.1), documented at https://msbsu.com/docs/api.
- The site was built by MD Shifat Bin Siddique Urfi; credit and contact details are at https://msbsu.com/humans.txt.

## About the author

I'm a 5th-year MBBS student at Dhaka Medical College. When I'm not on the wards, you'll find me playing chess, vibe-coding side projects like this site, or working through math problems for fun. I have founded a software company named "Bolteryx". Currently I am the CEO of this company. I have firm interest in charity work. Go through this site and you'll find what I did. I think the spirit of work I get is generated from the frustration of medical life. Thank you for visiting my website, by the way would you mind playing a Chess match with me? You'll find the option to challenge me right here!

- Fifth-year MBBS student at Dhaka Medical College (K-79 batch), the top medical college in Bangladesh, since 2022; expected to graduate in June 2027. Leaning towards a non-surgical specialty; a case report is in progress. From Nilphamari, based in Dhaka, Bangladesh. Speaks Bengali and English.
- Schooled at Faizur Rahman Ideal Institute, Dhaka (2009–2019): GPA 5 and a Talentpool scholarship in PSC 2013; GPA 5, a Talentpool scholarship and 2nd place in his thana in JSC 2016; GPA 5 in SSC 2019. A prolific cultural contestant at school, winning awards in patriotic song, Islamic song, Qirat, handwriting and poetry recitation, plus a perfect-attendance award.
- Completed HSC at Notre Dame College, Dhaka (2019–2021) with GPA 5 and a General scholarship; first boy in his group and 21st on the college's central merit list.
- Admission tests (2021–22 session): 145th on the national merit list of the Medical Admission Test among several hundred thousand candidates; 49th nationally in the University of Dhaka science unit; 56th at the Islamic University of Technology (IUT); 52nd at the Military Institute of Science and Technology (MIST). He had prepared for Computer Science & Engineering (CSE) at BUET, but was seriously ill during the BUET admission test and could not sit it properly; he still placed 999th and was selected for Naval Architecture & Marine Engineering, not the CSE seat he had prepared for. He chose medicine at Dhaka Medical College instead, and has kept building software alongside his medical studies.
- Founder, CEO and lead developer of Bolteryx (https://www.bolteryx.com), the SaaS and IT services company he founded. Bolteryx provides professional IT services to businesses and organisations of any kind, building custom software solutions and automations, and is open to new projects.
- Self-taught programmer since 2016 (class 8), learning from developer forums and open-source code on GitHub; AI-assisted development has since transformed the scale of what he builds. Works with JavaScript, PHP, Python, Cloudflare and Linux.
- Dhaka Medical College's go-to tech person. Member of the Permanent Governing Council and Lead System Architect & Developer of DMC Bones Bank (https://dmcbonesbank.org), a volunteer, non-political student initiative, inaugurated on 13 August 2025, that lends human skeletal materials free of charge to first-year medical students; he conceived, built and deployed its entire digital system: the website, digital donation receipts, inventory tracking, a Telegram bot and portals for students, teachers and administrators.
- Executive Member of Helping Hand For Needy (https://www.hhfn.org.bd), a non-profit humanitarian organisation of Dhaka Medical College students and doctors; he built its public website and its complete management portal (panel.hhfn.org.bd).
- Owner and developer of the DMC Blood Data Portal (https://blood.msbsu.com), a blood-donor data portal and app for Dhaka Medical College students and alumni.
- Former Vice President (IT) of the Dhaka Medical College Research and Academic Club (https://dmcrac.org); former Executive Member of the Dhaka Medical College Sporting Club; organising member of DMC Sports Week 2025.
- Organising core member of the 1st National BioMed Health Research Conference (NBHRC'25) and Director of Technical Operations and Management of the 2nd (NBHRC'26), single-handedly developing and running all of their technology and tech support. Proceedings: https://journal.dmcrac.org/nbhrc25/ and https://journal.dmcrac.org/nbhrc26/.
- Co-maintainer, with MD Mehedi Hasan, of Avro Linux (Remastered) (https://github.com/Bolteryx/avro-linux): Bangla typing for Debian-based Linux (Ubuntu, Debian, Mint, Pop!_OS) on Wayland and X11, with Avro Phonetic, fixed layouts, a Bijoy–Unicode converter and fully offline operation. Based on the original Avro Keyboard by Dr. Mehdi Hasan Khan (OmicronLab).
- Builds and runs msbsu.com: free browser-based tools (PDF, image, video, text, Bangla OCR, clinical calculators), an AI portfolio builder, a blog and chess.
- Takes freelance and paid work in design, branding and complete IT solutions, as well as academic work; has also tutored students for academics and university admission tests.
- Plays chess online, rated around 1500 on chess.com and Lichess (msbsurfi); also enjoys vibe coding, thriller novels and cricket.

Describes himself as "The frustrated soul". Also known online as "msbsurfi" and "msbsu". Profiles: [GitHub](https://github.com/msbsurfi), [X (Twitter)](https://x.com/msbsurfi), [LinkedIn](https://www.linkedin.com/in/msbsurfi), [ORCID](https://orcid.org/0009-0006-4157-0271), [Chess.com](https://www.chess.com/member/msbsurfi), [Lichess](https://lichess.org/@/msbsurfi).

Contact: Email hello@msbsu.com or the chat on msbsu.com; Facebook, LinkedIn and WhatsApp are available on request.

---

# MSBSU public API documentation

Free, unauthenticated JSON APIs on msbsu.com: the tool directory, posts, works and more, with CORS enabled for the tools API.

Canonical URL: https://msbsu.com/docs/api

Free, unauthenticated endpoints on https://msbsu.com. No key or sign-up: send a request and get JSON back. Errors are JSON too: `{ "error": "…" }` with a 4xx status.
- OpenAPI 3.1 spec: https://msbsu.com/openapi.json
- Machine-readable catalog: https://msbsu.com/.well-known/api-catalog
- Start here: https://msbsu.com/api/overview

## For AI agents

Paste this into your agent or assistant:

```text
You can use the free public API of msbsu.com (MD Shifat Bin Siddique Urfi's website). No key or sign-up is needed.
1. Call GET https://msbsu.com/api/overview for a map of the site: sections, tool categories, content and links.
2. Read https://msbsu.com/openapi.json for every endpoint (OpenAPI 3.1).
3. To find a free tool, call GET https://msbsu.com/api/tools?q=<what the user needs> and link the user to the tool's "url".
4. Any page is available as Markdown: add ?format=md to its URL.
```

## Start here

One request that maps the whole site. Read this first, then follow the links it gives you.

### Site overview

`GET /api/overview` — What msbsu.com is and everything on it: sections, every tool category with counts and API links, live counts of posts, works and products, the latest posts, and where the rest of the API lives.

_cached 10 minutes · any origin (CORS *)_

```bash
curl -s "https://msbsu.com/api/overview" | jq
```

Example response:

```json
{
  "name": "MSBSU",
  "url": "https://msbsu.com",
  "description": "The personal website of MD Shifat Bin Siddique Urfi, …",
  "sections": [
    {
      "id": "tools",
      "name": "Free Online Tools: PDF, Image, Video, Text & More",
      "url": "https://msbsu.com/tools"
    },
    "…"
  ],
  "tools": {
    "count": 57,
    "search": "https://msbsu.com/api/tools?q={term}",
    "categories": [
      {
        "slug": "studios-research",
        "name": "Studios & research",
        "toolCount": 3,
        "url": "https://msbsu.com/tools/category/studios-research",
        "api": "https://msbsu.com/api/tools?category=studios-research"
      },
      "…"
    ]
  },
  "content": {
    "posts": {
      "count": 3,
      "api": "https://msbsu.com/api/posts"
    },
    "latestPosts": [
      "…"
    ]
  },
  "api": {
    "docs": "https://msbsu.com/docs/api",
    "openapi": "https://msbsu.com/openapi.json"
  }
}
```

## Tools directory

Every free tool on msbsu.com, generated from the site's own catalog, so new tools appear automatically. Open to any origin (CORS *). If you list these tools elsewhere, please link each one to its url.

### List tools

`GET /api/tools` — All tools with name, description, category, canonical link and featured image, plus the category list.

_cached 1 hour · any origin (CORS *)_

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `q` | query | string | Case-insensitive search across name, title, description and keywords. |
| `category` | query | string | Only one category; the slugs are listed in `categories`. |
| `lang` | query | string | `bn` returns only the tools with a Bangla page, with Bangla copy. |

```bash
curl -s "https://msbsu.com/api/tools?q=pdf" | jq
```

Example response:

```json
{
  "name": "MSBSU tools",
  "count": 1,
  "total": 57,
  "tools": [
    {
      "id": "pdf-merge",
      "name": "Merge PDFs",
      "description": "Combine multiple PDF files into one, in any order you like. Free and private: merging happens entirely in your browser, with no upload.",
      "category": "PDF tools",
      "url": "https://msbsu.com/tools/pdf-merge",
      "image": "https://msbsu.com/assets/og/tools/pdf-merge.jpg?v=17d95f3a12"
    }
  ],
  "categories": [
    "…"
  ]
}
```

### Get one tool

`GET /api/tools/{id}` — A single tool from the directory, with related tools.

_cached 1 hour · any origin (CORS *)_

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `id` (required) | path | string | Tool id, as in `tools[].id`. |
| `lang` | query | string | `bn` for the Bangla version, when there is one. |

```bash
curl -s "https://msbsu.com/api/tools/pdf-merge" | jq
```

Example response:

```json
{
  "id": "pdf-merge",
  "name": "PDF Merge",
  "category": "PDF Tools",
  "url": "https://msbsu.com/tools/pdf-merge",
  "keywords": [ "combine pdf", "…" ],
  "features": [ "…" ],
  "guide": { … },
  "related": [ { "id": "…", "url": "…" } ]
}
```

## Posts, works and products

Everything published on the site. Lists are newest first.

### List posts

`GET /api/posts` — Published blog posts, nine per page, with categories, view and comment counts.

_cached short_

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `q` | query | string | Search titles and excerpts. |
| `cat` | query | string | Category slug, from `categories`. |
| `page` | query | integer | Page number, from 1. |

```bash
curl -s "https://msbsu.com/api/posts" | jq
```

Example response:

```json
{
  "posts": [
    { "slug": "linux-vs-windows-vs-ios-a-metaphor", "title": "Linux vs Windows vs iOS - A metaphor",
      "excerpt": "…", "published_at": "2026-10-23T…", "views": 120, "categories": [ … ] }
  ],
  "page": 1, "pageSize": 9, "total": 3,
  "categories": [ { "name": "Technology", "slug": "technology", "n": 3 } ]
}
```

### Get one post

`GET /api/posts/{slug}` — A single published post with its full content, approved comments and reactions.

_cached short_

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `slug` (required) | path | string | Post slug, as in `posts[].slug`. |

```bash
curl -s "https://msbsu.com/api/posts/linux-vs-windows-vs-ios-a-metaphor" | jq
```

Example response:

```json
{
  "post": { "slug": "…", "title": "…", "content": "[ … blocks … ]", "published_at": "…" },
  "comments": [ … ],
  "reactions": [ … ]
}
```

### List works

`GET /api/works` — Published portfolio works and projects, with links and tags.

_cached 1 minute_

```bash
curl -s "https://msbsu.com/api/works" | jq
```

Example response:

```json
{
  "works": [
    { "slug": "dmc-blood-data", "title": "DMC Blood Data", "description": "…", "link_url": "https://blood.msbsu.com", "tags": "…" }
  ]
}
```

### Get one work

`GET /api/works/{slug}` — A single published work with its full write-up.

_cached short_

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `slug` (required) | path | string | Work slug, as in `works[].slug`. |

```bash
curl -s "https://msbsu.com/api/works/dmc-blood-data" | jq
```

Example response:

```json
{
  "work": { "slug": "dmc-blood-data", "title": "DMC Blood Data", "content": "…" }
}
```

### List products and services

`GET /api/on-sale` — Software, products and services on sale, with price labels.

_cached 1 minute_

```bash
curl -s "https://msbsu.com/api/on-sale" | jq
```

Example response:

```json
{
  "items": [
    { "slug": "…", "title": "…", "tagline": "…", "price_label": "…", "badge": "…" }
  ]
}
```

### Get one product

`GET /api/on-sale/{slug}` — A single product or service: features, specs, price and how to get it.

_cached short_

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `slug` (required) | path | string | Item slug, as in `items[].slug`. |

```bash
curl -s "https://msbsu.com/api/on-sale/slug" | jq
```

Example response:

```json
{
  "item": { "slug": "…", "title": "…", "features": [ … ], "price_label": "…", "cta_url": "…" }
}
```

### Featured strip

`GET /api/featured` — The items featured on the homepage.

_cached 1 minute_

```bash
curl -s "https://msbsu.com/api/featured" | jq
```

Example response:

```json
{
  "featured": [ { "title": "…", "description": "…", "url": "…", "badge": "NEW" } ]
}
```

## Site and profile

Who runs the site, and the public assets it uses.

### Profile

`GET /api/profile` — Name, tagline, about text, social links, education, experience and the public visitor counter.

_cached 1 minute_

```bash
curl -s "https://msbsu.com/api/profile" | jq
```

Example response:

```json
{
  "fullName": "MD Shifat Bin Siddique Urfi",
  "tagline": "5th-year Medical Student · CEO of Bolteryx",
  "about": "…",
  "socials": [ { "name": "linkedin", "url": "https://linkedin.com/in/msbsurfi" } ],
  "education": [ { "degree": "MBBS", "school": "Dhaka Medical College", "period": "August 2022 – present" } ],
  "experience": [ { "role": "CEO", "org": "Bolteryx", "period": "August 2026 – present" } ]
}
```

### Public configuration

`GET /api/config` — Non-secret front-end settings, such as the site name and the public reCAPTCHA site keys.

_cached 5 minutes_

```bash
curl -s "https://msbsu.com/api/config" | jq
```

Example response:

```json
{
  "siteName": "MSBSU",
  "recaptchaV3SiteKey": "…",
  "adminTimezone": "Asia/Dhaka"
}
```

### Media file

`GET /api/media/{id}` — A stored image, such as a cover or the profile photo (ids come from `cover_media_id` and similar fields).

_cached long_

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `id` (required) | path | string | Media id. |

```bash
curl -s "https://msbsu.com/api/media/1"
```

Example response:

```text
(the image itself, e.g. image/webp)
```

## Reference and feeds

Helpers behind the site's widgets and science tools.

### On this day

`GET /api/on-this-day` — Historical events for a date, each with a Wikipedia link.

_cached 1 hour_

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `m` (required) | query | integer | Month, 1–12. |
| `d` (required) | query | integer | Day, 1–31. |

```bash
curl -s "https://msbsu.com/api/on-this-day?m=10&d=29" | jq
```

Example response:

```json
{
  "date": "10/29",
  "wikipedia": "https://en.wikipedia.org/wiki/October_29",
  "events": [ { "year": "1929", "description": "…", "wikipedia": "…" } ]
}
```

### Science search

`GET /api/science-search` — Search research papers, NASA images or number facts.

_cached 1 day · 30 requests a minute_

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `q` (required) | query | string | Search term. |
| `source` | query | string | `papers` (default), `nasa` or `number`. |

```bash
curl -s "https://msbsu.com/api/science-search?q=insulin&source=papers" | jq
```

Example response:

```json
{
  "source": "papers",
  "results": [ { "title": "…", "sub": "…", "desc": "…", "url": "https://…" } ]
}
```

## For software licensees

Used by software licensed from msbsu.com (for example stores on store.msbsu.com) to check their licence. You need a licence key.

### Verify a licence

`POST /api/license/verify` — Checks a licence key for a domain and returns an RSA-signed result the software can verify.

_rate-limited per key and per IP_

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `license_key` (required) | body | string | Your licence key. |
| `domain` (required) | body | string | The domain the software runs on. |
| `app_version` | body | string | Installed version. |

```bash
curl -s -X POST "https://msbsu.com/api/license/verify" \
  -H "Content-Type: application/json" \
  -d '{"license_key":"XXXX-XXXX-XXXX-XXXX","domain":"shop.example.com","app_version":"1.4.0"}'
```

Example response:

```json
{
  "valid": true,
  "status": "active",
  "plan": "monthly",
  "domain": "shop.example.com",
  "expires_at": "2026-12-01T00:00:00.000Z",
  "message": "…",
  "issued_at": "…",
  "nonce": "…",
  "signature": "…"
}
```

## Discovery for crawlers and AI agents

Machine-readable descriptions of the site and its API. Every page is also available as Markdown.

### OpenAPI spec

`GET /openapi.json` — This API as an OpenAPI 3.1 document: import it into Postman, Insomnia or an AI agent's tool list.

_cached 1 hour_

```bash
curl -s "https://msbsu.com/openapi.json" | jq
```

Example response:

```json
{
  "openapi": "3.1.0",
  "info": { "title": "MSBSU public API", … },
  "paths": { … }
}
```

### API catalog

`GET /.well-known/api-catalog` — The machine-readable catalog of these endpoints (RFC 9727).

_cached 1 hour_

```bash
curl -s "https://msbsu.com/.well-known/api-catalog" | jq
```

Example response:

```json
{ "linkset": [ … ] }
```

### Any page as Markdown

`GET /{page}?format=md` — Add ?format=md to any page, or send Accept: text/markdown, to get it as clean Markdown with the site guide on top.

_cached short_

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `page` (required) | path | string | Any page path, e.g. `tools/pdf-merge`. |

```bash
curl -s "https://msbsu.com/tools/pdf-merge?format=md"
```

Example response:

```text
# MSBSU
…
---
# PDF Merge …
```

### Sitemap

`GET /sitemap.xml` — Every canonical page, with featured images (sitemaps.org).

_cached 1 hour_

```bash
curl -s "https://msbsu.com/sitemap.xml"
```

Example response:

```text
<urlset …>
  <url><loc>https://msbsu.com/</loc> …</url>
</urlset>
```

### robots.txt

`GET /robots.txt` — Crawler policy: every crawler, AI crawlers included, is welcome.

_cached 1 hour_

```bash
curl -s "https://msbsu.com/robots.txt"
```

Example response:

```text
User-agent: *
Allow: /
…
```

### humans.txt

`GET /humans.txt` — Who built the site (humanstxt.org).

_cached 1 hour_

```bash
curl -s "https://msbsu.com/humans.txt"
```

Example response:

```text
/* TEAM */ …
```
