# Portfolio Content API

Read-only, public access to the profile data rendered on https://mahmoudali.tech.
No authentication, no API key, no rate-limit registration. Version 1.0.0.

## Conventions

- All responses are UTF-8 JSON unless noted.
- All endpoints accept `?locale=en` (default) or `?locale=ar`.
- CORS is open (`Access-Control-Allow-Origin: *`); credentials are never accepted.

## Endpoints

| Method | Path | Description |
| ------ | ---- | ----------- |
| GET | `/api/profile` | Full profile: bio, contact, skills, experience, projects |
| GET | `/api/projects` | All projects |
| GET | `/api/projects/{slug}` | One project (ahlan-ai, jadarat, entlaqa-lms, business-directory, lms-upgrade) |
| GET | `/api/experience` | Employment history, newest first |
| GET | `/api/skills` | Skills grouped by discipline |
| GET | `/api/health` | Service status |
| POST | `/api/mcp` | Model Context Protocol endpoint (JSON-RPC 2.0) |

## Machine-readable descriptions

- OpenAPI 3.1: https://mahmoudali.tech/api/openapi.json
- API catalog (RFC 9727): https://mahmoudali.tech/.well-known/api-catalog
- MCP server card: https://mahmoudali.tech/.well-known/mcp/server-card.json
- Access policy: https://mahmoudali.tech/auth.md

## Markdown pages

Any page on this site returns markdown instead of HTML when requested with
`Accept: text/markdown`:

```sh
curl -H 'Accept: text/markdown' https://mahmoudali.tech/en
```

## Usage terms

Content is published for discovery and citation. Attribution is appreciated;
see the `Content-Signal` directives in https://mahmoudali.tech/robots.txt for AI usage
preferences.
