Skip to main content
GET
/
api
/
portfolios
/
{profileSlug}
/
projects
/
{projectSlug}
Get Project Detail
curl --request GET \
  --url https://api.example.com/api/portfolios/{profileSlug}/projects/{projectSlug}
{
  "success": true,
  "message": "<string>",
  "timestamp": "<string>",
  "data": {
    "id": 123,
    "title": "<string>",
    "slug": "<string>",
    "summary": "<string>",
    "description": "<string>",
    "repoUrl": "<string>",
    "liveUrl": "<string>",
    "coverImage": "<string>",
    "startDate": "<string>",
    "endDate": "<string>",
    "featured": true,
    "sortOrder": 123,
    "skills": [
      {
        "id": 123,
        "name": "<string>",
        "globalSkillId": 123,
        "level": 123,
        "icon": "<string>"
      }
    ]
  }
}
This endpoint returns complete details for a specific project within a portfolio. No authentication is required. Use this to display individual project pages with full descriptions and technical details.

Path Parameters

profileSlug
string
required
The portfolio owner’s unique slug (e.g., “john-doe”)
projectSlug
string
required
The project’s unique URL-friendly identifier (e.g., “ecommerce-platform”)

Response

success
boolean
required
Indicates if the request was successful
message
string
required
A descriptive message about the response
timestamp
string
required
ISO 8601 timestamp of when the response was generated
data
object
required
Complete project information
id
integer
required
Unique project identifier
title
string
required
Project title
slug
string
required
URL-friendly project identifier
summary
string
required
Brief project summary (short description)
description
string
Full detailed project description (may contain markdown or HTML)
repoUrl
string
URL to source code repository (e.g., GitHub, GitLab)
liveUrl
string
URL to live/deployed version of the project
coverImage
string
URL to project cover or hero image
startDate
string
Project start date in ISO 8601 format (YYYY-MM-DD)
endDate
string
Project end date in ISO 8601 format, or null if ongoing
Whether this project is marked as featured
sortOrder
integer
required
Display order for sorting projects
skills
array
required
Technologies and skills used in this project
id
integer
Skill identifier
name
string
Technology or skill name (e.g., “React”, “PostgreSQL”, “Docker”)
globalSkillId
integer
Reference to global skill database
level
integer
Proficiency level with this technology (1-5)
icon
string
Icon identifier or URL for the skill

Example Request

curl https://api.portfoliohub.com/api/portfolios/john-doe/projects/ecommerce-platform

Example Response

{
  "success": true,
  "message": "Detalle del proyecto obtenido",
  "timestamp": "2026-03-09T10:30:00Z",
  "data": {
    "id": 42,
    "title": "E-Commerce Platform",
    "slug": "ecommerce-platform",
    "summary": "A full-featured online shopping platform with payment integration and inventory management",
    "description": "## Overview\n\nBuilt a comprehensive e-commerce solution from scratch using modern web technologies. The platform handles thousands of products and processes hundreds of transactions daily.\n\n## Key Features\n\n- User authentication and authorization\n- Product catalog with advanced search and filtering\n- Shopping cart and checkout flow\n- Stripe payment integration\n- Order tracking and history\n- Admin dashboard for inventory management\n- Responsive design for mobile and desktop\n\n## Technical Highlights\n\n- Implemented microservices architecture for scalability\n- Used Redis for caching and session management\n- Integrated Elasticsearch for fast product search\n- Deployed on AWS with auto-scaling capabilities\n- Achieved 99.9% uptime over 12 months",
    "repoUrl": "https://github.com/johndoe/ecommerce-platform",
    "liveUrl": "https://demo-ecommerce.example.com",
    "coverImage": "https://storage.example.com/projects/ecommerce-cover.jpg",
    "startDate": "2024-01-15",
    "endDate": "2024-08-30",
    "featured": true,
    "sortOrder": 1,
    "skills": [
      {
        "id": 1,
        "name": "React",
        "globalSkillId": 101,
        "level": 5,
        "icon": "react-icon"
      },
      {
        "id": 2,
        "name": "Spring Boot",
        "globalSkillId": 105,
        "level": 5,
        "icon": "spring-icon"
      },
      {
        "id": 3,
        "name": "PostgreSQL",
        "globalSkillId": 110,
        "level": 4,
        "icon": "postgresql-icon"
      },
      {
        "id": 4,
        "name": "Redis",
        "globalSkillId": 112,
        "level": 4,
        "icon": "redis-icon"
      },
      {
        "id": 5,
        "name": "Docker",
        "globalSkillId": 120,
        "level": 4,
        "icon": "docker-icon"
      },
      {
        "id": 6,
        "name": "AWS",
        "globalSkillId": 125,
        "level": 4,
        "icon": "aws-icon"
      }
    ]
  }
}

Error Responses

Portfolio Not Found

{
  "success": false,
  "message": "Profile not found with slug: invalid-slug",
  "timestamp": "2026-03-09T10:30:00Z",
  "data": null
}

Project Not Found

{
  "success": false,
  "message": "Project not found",
  "timestamp": "2026-03-09T10:30:00Z",
  "data": null
}

Use Cases

  • Display detailed project pages with full descriptions
  • Show project galleries with technical details
  • Build project showcase websites
  • Create portfolio comparison tools
  • Generate project reports or exports
  • Display technology stacks used in projects

Notes

  • No authentication required
  • Only returns projects from public portfolios
  • The description field may contain markdown or HTML formatting
  • endDate will be null for ongoing projects
  • Skills array shows all technologies used in the project with proficiency levels
  • Both profileSlug and projectSlug must be valid for the request to succeed
  • The featured flag can be used to highlight important projects
  • Projects are sorted using the sortOrder field when displaying multiple projects

Build docs developers (and LLMs) love