{
  "openapi": "3.1.0",
  "info": {
    "title": "Labs API",
    "version": "1.0.0",
    "summary": "Research labs with type, parent organization, founding year, headquarters, leaders, a known-for line, 3 to 5 landmark contributions with links, flagship models (models.fru.dev), papers (papers.fru.dev), funding and compute deals, blog, website, GitHub, Hugging Face and X, every fact with its source URL",
    "description": "Research labs with type, parent organization, founding year, headquarters, leaders, a known-for line, 3 to 5 landmark contributions with links, flagship models (models.fru.dev), papers (papers.fru.dev), funding and compute deals, blog, website, GitHub, Hugging Face and X, every fact with its source URL. Synced every Monday at 11:30 UTC from Leaders, Models, Papers, Blogs and Funding on fru.dev; website and landmark links re-checked on the first Monday of each month. Free to read; please cite \"Labs (labs.fru.dev)\" with a link. Responses are cached at the edge; keep to about 60 requests a minute. Guide: https://labs.fru.dev/agents",
    "contact": {
      "name": "fru.dev",
      "url": "https://fru.dev",
      "email": "fru.dev3@gmail.com"
    }
  },
  "externalDocs": {
    "description": "For AI agents",
    "url": "https://labs.fru.dev/agents"
  },
  "servers": [
    {
      "url": "https://labs.fru.dev"
    }
  ],
  "paths": {
    "/api/labs": {
      "get": {
        "operationId": "list_labs",
        "summary": "Research labs, A to Z, with type, founding year, place, known-for line, flagship model and papers count",
        "description": "Research labs, A to Z, with type, founding year, place, known-for line, flagship model and papers count. Returns labs with slug, name, type, focus, founded, place, parent, knownFor, flagship model, papers count on papers.fru.dev, website, GitHub, Hugging Face and X handles, and the companies.fru.dev slug.",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "required": false,
            "description": "Only this type of lab",
            "schema": {
              "type": "string",
              "enum": [
                "company",
                "startup",
                "nonprofit",
                "academic",
                "government"
              ]
            },
            "example": "startup"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "Only labs based in this country (ISO 3166 alpha-2)",
            "schema": {
              "type": "string"
            },
            "example": "FR"
          },
          {
            "name": "focus",
            "in": "query",
            "required": false,
            "description": "Only this focus",
            "schema": {
              "type": "string",
              "enum": [
                "ai",
                "data",
                "safety"
              ]
            },
            "example": "data"
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Words in the name, known-for line or parent",
            "schema": {
              "type": "string"
            },
            "example": "open models"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Items per page, 1 to 200",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 200
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Items to skip, for the next page",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "labs with slug, name, type, focus, founded, place, parent, knownFor, flagship model, papers count on papers.fru.dev, website, GitHub, Hugging Face and X handles, and the companies.fru.dev slug",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "labs": [
                    {
                      "slug": "01-ai",
                      "name": "01.AI",
                      "type": "startup",
                      "focus": "ai",
                      "domain": "01.ai",
                      "founded": 2023,
                      "place": "Beijing, China",
                      "country": "CN",
                      "parent": "",
                      "knownFor": "Kai-Fu Lee's lab behind the open Yi models, now focused on enterprise AI products.",
                      "flagship": {
                        "name": "Yi-34B",
                        "url": "https://huggingface.co/01-ai/Yi-34B"
                      },
                      "papers": null,
                      "unverified": false,
                      "url": "https://labs.fru.dev/labs/01-ai"
                    },
                    {
                      "slug": "ai21-labs",
                      "name": "AI21 Labs",
                      "type": "startup",
                      "focus": "ai",
                      "domain": "ai21.com",
                      "founded": 2017,
                      "place": "Tel Aviv, Israel",
                      "country": "IL",
                      "parent": "",
                      "knownFor": "Jamba, the first production-scale hybrid of Transformer and Mamba layers.",
                      "flagship": null,
                      "papers": null,
                      "unverified": false,
                      "url": "https://labs.fru.dev/labs/ai21-labs"
                    }
                  ],
                  "total": 22,
                  "limit": 2,
                  "offset": 0,
                  "next": "/api/labs?type=startup&limit=2&offset=2",
                  "note": "Every fact carries its source URL. Leaders, models and papers are synced weekly from leaders.fru.dev, models.fru.dev and papers.fru.dev."
                }
              }
            }
          }
        }
      }
    },
    "/api/labs/{slug}": {
      "get": {
        "operationId": "get_lab",
        "summary": "One lab with every fact and its sources",
        "description": "One lab with every fact and its sources. Returns the lab with leaders (and their sources), landmarks, models, papers, funding, compute deals, renames, sibling-site links and source URLs.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "Lab slug, as in /labs/<slug>",
            "schema": {
              "type": "string"
            },
            "example": "anthropic"
          }
        ],
        "responses": {
          "200": {
            "description": "the lab with leaders (and their sources), landmarks, models, papers, funding, compute deals, renames, sibling-site links and source URLs",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "lab": {
                    "slug": "anthropic",
                    "name": "Anthropic",
                    "type": "startup",
                    "focus": "ai",
                    "parent": null,
                    "company": "anthropic",
                    "companyName": "Anthropic",
                    "companyDomain": "anthropic.com",
                    "registry": true,
                    "domain": "anthropic.com",
                    "founded": 2021,
                    "hq": "San Francisco",
                    "country": "US",
                    "sites": []
                  },
                  "url": "https://labs.fru.dev/labs/anthropic",
                  "note": "Every fact carries its source URL. Leaders, models and papers are synced weekly from leaders.fru.dev, models.fru.dev and papers.fru.dev."
                }
              }
            }
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/api/leaders": {
      "get": {
        "operationId": "list_leaders",
        "summary": "Who leads each lab",
        "description": "Who leads each lab. Returns people with name, role, lab, the source URL for the role, and a leaders.fru.dev profile when there is one.",
        "parameters": [
          {
            "name": "lab",
            "in": "query",
            "required": false,
            "description": "Only this lab slug",
            "schema": {
              "type": "string"
            },
            "example": "mistral-ai"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Items per page, 1 to 200",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 200
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Items to skip, for the next page",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "people with name, role, lab, the source URL for the role, and a leaders.fru.dev profile when there is one",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "leaders": [
                    {
                      "lab": "mistral-ai",
                      "labName": "Mistral AI",
                      "domain": "mistral.ai",
                      "type": "startup",
                      "name": "Arthur Mensch",
                      "role": "Chief Executive Officer and co-founder",
                      "src": "https://en.wikipedia.org/wiki/Mistral_AI",
                      "profile": "https://leaders.fru.dev/people/arthur-mensch",
                      "since": "2023-04"
                    },
                    {
                      "lab": "mistral-ai",
                      "labName": "Mistral AI",
                      "domain": "mistral.ai",
                      "type": "startup",
                      "name": "Timothée Lacroix",
                      "role": "CTO",
                      "src": "https://en.wikipedia.org/wiki/Mistral_AI",
                      "profile": "https://leaders.fru.dev/people/timothee-lacroix",
                      "since": ""
                    }
                  ],
                  "total": 2,
                  "limit": 200,
                  "offset": 0,
                  "next": null
                }
              }
            }
          }
        }
      }
    },
    "/api/models": {
      "get": {
        "operationId": "list_models",
        "summary": "Models by lab: best ranked on models.fru.dev, plus notable models from the labs' own pages",
        "description": "Models by lab: best ranked on models.fru.dev, plus notable models from the labs' own pages. Returns models with name, lab, link (models.fru.dev or the lab page), rank on models.fru.dev when ranked, and year when known.",
        "parameters": [
          {
            "name": "lab",
            "in": "query",
            "required": false,
            "description": "Only this lab slug",
            "schema": {
              "type": "string"
            },
            "example": "openai"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Items per page, 1 to 200",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 200
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Items to skip, for the next page",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "models with name, lab, link (models.fru.dev or the lab page), rank on models.fru.dev when ranked, and year when known",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "models": [
                    {
                      "lab": "openai",
                      "labName": "OpenAI",
                      "domain": "openai.com",
                      "name": "GPT-6 Astra",
                      "url": "https://models.fru.dev/models/gpt-6-astra",
                      "year": null,
                      "rank": 2,
                      "ranked": true
                    },
                    {
                      "lab": "openai",
                      "labName": "OpenAI",
                      "domain": "openai.com",
                      "name": "GPT-5.6 Sol",
                      "url": "https://models.fru.dev/models/gpt-5-6-sol",
                      "year": null,
                      "rank": 6,
                      "ranked": true
                    }
                  ],
                  "total": 5,
                  "limit": 3,
                  "offset": 0,
                  "next": "/api/models?lab=openai&limit=3&offset=3"
                }
              }
            }
          }
        }
      }
    },
    "/api/changes": {
      "get": {
        "operationId": "list_changes",
        "summary": "The append-only history: labs added, leaders, flagship models, papers counts and facts that changed, newest first",
        "description": "The append-only history: labs added, leaders, flagship models, papers counts and facts that changed, newest first. Returns changes with time, lab slug, field, old and new value (trimmed), source URL and who made it (seed, sync, admin).",
        "parameters": [
          {
            "name": "since",
            "in": "query",
            "required": false,
            "description": "Only changes at or after this date (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            },
            "example": "2026-09-01"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Items per page, 1 to 200",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 200
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Items to skip, for the next page",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "changes with time, lab slug, field, old and new value (trimmed), source URL and who made it (seed, sync, admin)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "changes": [
                    {
                      "at": "2026-09-24 23:12:16",
                      "lab": "laion",
                      "field": "added",
                      "old": "",
                      "new": "LAION",
                      "source": "https://laion.ai/about/",
                      "by": "seed"
                    },
                    {
                      "at": "2026-09-24 23:12:16",
                      "lab": "kyutai",
                      "field": "added",
                      "old": "",
                      "new": "Kyutai",
                      "source": "https://kyutai.org/",
                      "by": "seed"
                    }
                  ],
                  "total": 64,
                  "limit": 3,
                  "offset": 0,
                  "next": "/api/changes?since=2026-09-01&limit=3&offset=3",
                  "note": "Newest 500 changes; the history is append-only."
                }
              }
            }
          }
        }
      }
    },
    "/api/companies": {
      "get": {
        "operationId": "list_companies",
        "summary": "Every organization behind a lab, with its labs here and dated items (for the companies.fru.dev registry)",
        "description": "Every organization behind a lab, with its labs here and dated items (for the companies.fru.dev registry). Returns companies with slug (companies.fru.dev slug), name, domain, in_registry, the page link here, its labs, and items (funding, compute deals, renames and synced changes) each with type, date, title, URL and source.",
        "parameters": [
          {
            "name": "since",
            "in": "query",
            "required": false,
            "description": "Only organizations with an item dated or changed at or after this date (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            },
            "example": "2026-06-01"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Items per page, 1 to 200",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 200
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Items to skip, for the next page",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "companies with slug (companies.fru.dev slug), name, domain, in_registry, the page link here, its labs, and items (funding, compute deals, renames and synced changes) each with type, date, title, URL and source",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "companies": [
                    {
                      "slug": "01-ai",
                      "name": "01.AI",
                      "domain": "01.ai",
                      "in_registry": false,
                      "url": "https://labs.fru.dev/labs/01-ai",
                      "labs": [
                        {
                          "slug": "01-ai",
                          "name": "01.AI",
                          "type": "startup",
                          "url": "https://labs.fru.dev/labs/01-ai"
                        }
                      ],
                      "items": [],
                      "updated": "2026-09-24"
                    },
                    {
                      "slug": "ai2",
                      "name": "Ai2",
                      "domain": "allenai.org",
                      "in_registry": true,
                      "url": "https://labs.fru.dev/labs/ai2",
                      "labs": [
                        {
                          "slug": "ai2",
                          "name": "Ai2 (Allen Institute for AI)",
                          "type": "nonprofit",
                          "url": "https://labs.fru.dev/labs/ai2"
                        }
                      ],
                      "items": [],
                      "updated": "2026-09-24"
                    }
                  ],
                  "total": 60,
                  "limit": 2,
                  "offset": 0,
                  "next": "/api/companies?since=2026-06-01&limit=2&offset=2"
                }
              }
            }
          }
        }
      }
    },
    "/api/search": {
      "get": {
        "operationId": "search",
        "summary": "Search labs, leaders, landmark papers and pages",
        "description": "Search labs, leaders, landmark papers and pages. Returns up to 20 ranked results with title, link and one line.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "description": "Lab, person, model or paper",
            "schema": {
              "type": "string"
            },
            "example": "transformer"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Results, 1 to 20",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "up to 20 ranked results with title, link and one line",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "q": "transformer",
                  "results": [
                    {
                      "id": "lm:cmu-ml:https://arxiv.org/abs/1901.02860",
                      "group": "items",
                      "title": "Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context",
                      "subtitle": "CMU Machine Learning Department, 2019",
                      "href": "/labs/cmu-ml",
                      "icon": "layers",
                      "score": 766
                    },
                    {
                      "id": "lm:ai21-labs:https://arxiv.org/abs/2403.19887",
                      "group": "items",
                      "title": "Jamba: A Hybrid Transformer-Mamba Language Model",
                      "subtitle": "AI21 Labs, 2024",
                      "href": "/labs/ai21-labs",
                      "icon": "layers",
                      "score": 625
                    }
                  ]
                }
              }
            }
          }
        }
      }
    }
  }
}