{
  "info": {
    "name": "Folio Public API",
    "description": "Read-only, key-authenticated, tenant-scoped access to your published portfolio data. Every request must present an API key as a bearer token; the key resolves the tenant, so there is no tenant id in the path. Responses are never cached by shared proxies and are rate limited per key.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_postman_id": "folio-public-api-v1"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://portfolio.wrxstack.com",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "pk_live_replace_me",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Portfolio",
      "description": "The complete published portfolio document in one call.",
      "item": [
        {
          "name": "Get the full published portfolio",
          "request": {
            "method": "GET",
            "description": "Returns the entire published portfolio document for the authenticated tenant in a single response: profile, outcomes, posts, experience, skills, stats, awards, education, testimonials, links, and pages.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/portfolio",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "portfolio"
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Profile",
      "description": "The published profile (hero) details.",
      "item": [
        {
          "name": "Get the public profile",
          "request": {
            "method": "GET",
            "description": "Returns the published profile: name, headline, bio summary, location, and avatar.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/profile",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "profile"
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Outcomes",
      "description": "Published case-study outcomes.",
      "item": [
        {
          "name": "List published outcomes",
          "request": {
            "method": "GET",
            "description": "Returns the published case-study outcomes, paginated and in display order.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/outcomes?limit=20&offset=0",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "outcomes"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "20",
                  "description": "Page size (1 to 100).",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "Zero-based item offset.",
                  "disabled": true
                }
              ]
            }
          }
        },
        {
          "name": "Get one outcome by slug",
          "request": {
            "method": "GET",
            "description": "Returns a single published outcome identified by its slug.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/outcomes/:slug",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "outcomes",
                ":slug"
              ],
              "variable": [
                {
                  "key": "slug",
                  "value": "example-slug",
                  "description": "The slug of the item to fetch."
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Posts",
      "description": "Published blog posts.",
      "item": [
        {
          "name": "List published blog posts",
          "request": {
            "method": "GET",
            "description": "Returns the published blog posts, paginated and in display order.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/posts?limit=20&offset=0",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "posts"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "20",
                  "description": "Page size (1 to 100).",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "Zero-based item offset.",
                  "disabled": true
                }
              ]
            }
          }
        },
        {
          "name": "Get one blog post by slug",
          "request": {
            "method": "GET",
            "description": "Returns a single published blog post identified by its slug.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/posts/:slug",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "posts",
                ":slug"
              ],
              "variable": [
                {
                  "key": "slug",
                  "value": "example-slug",
                  "description": "The slug of the item to fetch."
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Pages",
      "description": "Published custom pages.",
      "item": [
        {
          "name": "List published custom pages",
          "request": {
            "method": "GET",
            "description": "Returns the published custom pages built with the page builder, in display order.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/pages?limit=20&offset=0",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "pages"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "20",
                  "description": "Page size (1 to 100).",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "Zero-based item offset.",
                  "disabled": true
                }
              ]
            }
          }
        },
        {
          "name": "Get one custom page by slug",
          "request": {
            "method": "GET",
            "description": "Returns a single published custom page, including its sanitized, asset-resolved blocks.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/pages/:slug",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "pages",
                ":slug"
              ],
              "variable": [
                {
                  "key": "slug",
                  "value": "example-slug",
                  "description": "The slug of the item to fetch."
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Experience",
      "description": "Work-experience timeline.",
      "item": [
        {
          "name": "List experience entries",
          "request": {
            "method": "GET",
            "description": "Returns the work-experience timeline, paginated and in display order.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/experience?limit=20&offset=0",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "experience"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "20",
                  "description": "Page size (1 to 100).",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "Zero-based item offset.",
                  "disabled": true
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Skills",
      "description": "Published skills.",
      "item": [
        {
          "name": "List skills",
          "request": {
            "method": "GET",
            "description": "Returns the published skills with their tags, paginated and in display order.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/skills?limit=20&offset=0",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "skills"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "20",
                  "description": "Page size (1 to 100).",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "Zero-based item offset.",
                  "disabled": true
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Stats",
      "description": "Headline stats / metrics.",
      "item": [
        {
          "name": "List headline stats",
          "request": {
            "method": "GET",
            "description": "Returns the headline metrics/stats, paginated and in display order.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/stats?limit=20&offset=0",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "stats"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "20",
                  "description": "Page size (1 to 100).",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "Zero-based item offset.",
                  "disabled": true
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Awards",
      "description": "Awards and recognitions.",
      "item": [
        {
          "name": "List awards",
          "request": {
            "method": "GET",
            "description": "Returns the published awards and recognitions, paginated and in display order.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/awards?limit=20&offset=0",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "awards"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "20",
                  "description": "Page size (1 to 100).",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "Zero-based item offset.",
                  "disabled": true
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Education",
      "description": "Education and certification credentials.",
      "item": [
        {
          "name": "List education and certifications",
          "request": {
            "method": "GET",
            "description": "Returns education and certification credentials, paginated and in display order. Each item carries a `kind` of `education` or `certification`.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/education?limit=20&offset=0",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "education"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "20",
                  "description": "Page size (1 to 100).",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "Zero-based item offset.",
                  "disabled": true
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Testimonials",
      "description": "Published testimonials.",
      "item": [
        {
          "name": "List testimonials",
          "request": {
            "method": "GET",
            "description": "Returns the published testimonials, paginated and in display order.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/testimonials?limit=20&offset=0",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "testimonials"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "20",
                  "description": "Page size (1 to 100).",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "Zero-based item offset.",
                  "disabled": true
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Links",
      "description": "Social and contact links.",
      "item": [
        {
          "name": "List social and contact links",
          "request": {
            "method": "GET",
            "description": "Returns the published social/contact links, paginated and in display order.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/links?limit=20&offset=0",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "links"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "20",
                  "description": "Page size (1 to 100).",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "Zero-based item offset.",
                  "disabled": true
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Meta",
      "description": "Machine-readable spec + tooling downloads.",
      "item": [
        {
          "name": "Download the OpenAPI 3.1 document (JSON)",
          "request": {
            "method": "GET",
            "description": "Returns the machine-readable OpenAPI 3.1 specification for this API as JSON. Unauthenticated: the spec itself is public documentation.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/openapi.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "openapi.json"
              ]
            },
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "Download the OpenAPI 3.1 document (YAML)",
          "request": {
            "method": "GET",
            "description": "Returns the machine-readable OpenAPI 3.1 specification for this API as YAML. Unauthenticated: the spec itself is public documentation.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/openapi.yaml",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "openapi.yaml"
              ]
            },
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "Download a Postman v2.1 collection",
          "request": {
            "method": "GET",
            "description": "Returns a ready-to-import Postman v2.1 collection generated from the OpenAPI spec, with a bearer-token variable and a base-URL variable. Unauthenticated.",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/postman.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "postman.json"
              ]
            },
            "auth": {
              "type": "noauth"
            }
          }
        }
      ]
    }
  ]
}
