> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unicornfactorylisboa.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List partners

> The companies Unicorn Factory Lisboa works with, grouped the way the portal's own partners page groups them.

Use `relationship` to group them: `partner` and `hub_partner` are partners; `ecosystem` is everyone else we work with (sponsors, institutions). **Do not label an `ecosystem` company a partner.**



## OpenAPI

````yaml /openapi.json get /partners
openapi: 3.1.0
info:
  title: Unicorn Factory Lisboa Public API
  version: 1.0.0
  description: >-
    Read-only access to our startup portfolio, founder directory, and job board
    — the same data that powers the public pages of the member portal.


    **No API key. No authentication. `GET` only. Open to every origin.**


    ## Quick start


    ```js

    const BASE = 'https://api.unicornfactorylisboa.com/v1';


    const startups = await fetch(`${BASE}/startups`).then((r) => r.json());

    const founders = await fetch(`${BASE}/founders`).then((r) => r.json());

    const jobs     = await fetch(`${BASE}/jobs`).then((r) => r.json());

    ```


    ## Fetching the whole list is the intended usage


    There is no pagination, no filtering and no fetch-one-by-id endpoint, and
    that is deliberate. The lists are small — a few hundred KB gzipped even at
    several times our current size. Fetch a directory once, hold it, and filter
    client-side. A detail page such as `/startups/acme-ai` is then a `slug`
    match against data you already have, costing no extra request.


    ## Caching and freshness


    Responses carry `Cache-Control: max-age=3600`. **An edit made in the portal
    can take up to an hour to appear here.** The `X-Cached-At` response header
    tells you when the data was last read from the database.


    Please call the API from your server or build and let your CDN or framework
    honour the cache header, rather than fetching from every visitor's browser.
    If our database is briefly unavailable we serve the last good copy rather
    than an error — a stale answer is always preferable to a broken page.


    ## Images


    `logo_url`, `avatar_url` and `image_url` point at our storage (an event's
    `image_url` may point at Luma's). You are welcome to hotlink them, but
    copying them into your own CDN at build time will be faster for your
    visitors. Tell us if you do, so we know not to break those URLs.


    ## Stability


    The `/v1` prefix is a promise: we will add fields, but we will not remove or
    rename one without shipping a `/v2`. Treat any field not documented here as
    unsupported and liable to disappear. If you need something that is not here,
    ask — whether we can publish it is usually a policy question rather than a
    technical one.
  contact:
    name: Unicorn Factory Lisboa
    url: https://unicornfactorylisboa.com/
servers:
  - url: https://api.unicornfactorylisboa.com/v1
    description: Production
  - url: https://btmkmdfnpsllqvkuknqj.supabase.co/functions/v1/public-api/v1
    description: Staging — test data only, contents are not real
security: []
tags:
  - name: Directories
    description: The public directories and programs.
paths:
  /partners:
    get:
      tags:
        - Directories
      summary: List partners
      description: >-
        The companies Unicorn Factory Lisboa works with, grouped the way the
        portal's own partners page groups them.


        Use `relationship` to group them: `partner` and `hub_partner` are
        partners; `ecosystem` is everyone else we work with (sponsors,
        institutions). **Do not label an `ecosystem` company a partner.**
      operationId: listPartners
      responses:
        '200':
          description: The partner directory.
          headers:
            X-Cached-At:
              description: When this data was read from the database (ISO 8601).
              schema:
                type: string
                format: date-time
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Partner'
components:
  schemas:
    Partner:
      type: object
      description: >-
        A company Unicorn Factory Lisboa works with. Never carries the
        partnership tier, value or dates.
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        logo_url:
          type:
            - string
            - 'null'
          format: uri
        website_url:
          type:
            - string
            - 'null'
          format: uri
        description:
          type:
            - string
            - 'null'
        relationship:
          type: string
          enum:
            - partner
            - hub_partner
            - ecosystem
          description: >-
            `partner`: a partner of Unicorn Factory Lisboa as a whole.
            `hub_partner`: a partner of one or more Innovation Hubs only (see
            `partner_hubs`). `ecosystem`: we work with them (sponsor,
            institution) but they are not a partner, so do not call them one.
        partner_hubs:
          type: array
          items:
            type: string
          description: Innovation Hubs where this company is a partner.
          examples:
            - - Health Hub
        hubs:
          type: array
          items:
            type: string
          description: >-
            Every Innovation Hub this company works with, partner or not. Use it
            for a hub filter.
      required:
        - id
        - name
        - relationship
        - partner_hubs
        - hubs

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.