API Documentation
Complete reference for the Projects API endpoints, parameters, and responses.
Introduction
This API provides read-only access to my portfolio projects data. It is backed by Appwrite, served through a secure gateway, and optimized with edge caching for fast, reliable access across all ishav.space properties.
Endpoints
https://projects.ishav.space/api/projectsReturns a list of all published projects, ordered by priority. Data is cached at the edge and automatically updated via Appwrite webhooks.
Response
{
"success": true,
"projects": [
{
"id": "project-id",
"title": "Project Title",
"description": "Project description",
"image": "https://cloud.appwrite.io/v1/storage/buckets/{bucketId}/files/{fileId}/view?project={projectId}",
"tags": ["nextjs", "reactjs", "tailwind"],
"demoLink": "https://demo.example.com",
"codeLink": "https://github.com/username/repo",
"featured": true
}
]
}
Cross-Origin Resource Sharing
This API supports CORS for the root domain ishav.spaceand all of its subdomains. Requests from unrelated domains are not allowed.
Rate Limiting
Requests are limited per IP to prevent abuse. Excessive requests may receive a429 Too Many Requests response.
Example Usage
interface Project {
id: string;
title: string;
description: string;
image: string; // Appwrite Storage URL
tags: string[];
demoLink: string;
codeLink?: string;
featured?: boolean;
}
interface ApiResponse {
success: boolean;
projects: Project[];
}
fetch("https://projects.ishav.space/api/projects")
.then((res) => res.json())
.then((data: ApiResponse) => {
console.log(data.projects);
});
Need more help?
If you have any questions or need further assistance with the API, feel free to reach out.
Contact Me