{
  "openapi": "3.1.0",
  "info": {
    "title": "Tashkif public data API",
    "version": "1.0.0",
    "description": "Read-only data on Israeli long-term savings products (pension, gemel, keren hishtalmut, investment gemel, savings policies, child savings) from תשקיף (https://www.tashkif.co.il). Source: Israel Capital Market, Insurance and Savings Authority - open datasets gemelnet, pensia-net and insurance-net on data.gov.il. Updated monthly.\n\nThe API describes data; it never recommends funds, tracks or actions. Sorting is a neutral display order by the stated metric. Management-fee averages are intentionally not exposed (they do not reflect what an individual saver pays).\n\nInformational data only - not investment, pension or personal advice and not a recommendation. Past returns do not guarantee future returns. Consult a suitably qualified professional (\"איש מקצוע מתאים\") before deciding.\n\nהמידע מוצג למטרות מידע כללי בלבד ואינו מהווה ייעוץ השקעות, ייעוץ פנסיוני, שיווק או המלצה אישית. תשואות עבר אינן מבטיחות תשואות בעתיד. לפני קבלת החלטה יש להתייעץ עם איש מקצוע מתאים.\n\nWhen citing, link to the `url` field of each item. An MCP server is available at https://www.tashkif.co.il/api/mcp (tools include get_actuarial_history, the same data as /api/v1/actuarial, get_holdings / who_holds / get_hidden_costs, the same data as the holdings endpoints, and get_investment_policy, the same data as /api/v1/policy).",
    "contact": {
      "name": "Z.A. Digital Marketing & Sales Ltd",
      "url": "https://www.tashkif.co.il/contact"
    },
    "termsOfService": "https://www.tashkif.co.il/terms"
  },
  "servers": [
    {
      "url": "https://www.tashkif.co.il"
    }
  ],
  "paths": {
    "/api/v1/funds": {
      "get": {
        "operationId": "listFunds",
        "summary": "List funds in a product / track, or search funds by name",
        "parameters": [
          {
            "name": "product",
            "in": "query",
            "description": "Product type (enum or URL slug, e.g. \"pensia\", \"gemel-lehashkaa\").",
            "schema": {
              "type": "string",
              "enum": [
                "hishtalmut",
                "gemel",
                "pension",
                "gemel_lehashkaa",
                "insurance_policy",
                "child_savings"
              ]
            }
          },
          {
            "name": "track",
            "in": "query",
            "description": "Track slug (e.g. \"sp500\", \"menayot\", \"klali\") or category key. Requires product.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pension_subtype",
            "in": "query",
            "description": "Pension only.",
            "schema": {
              "type": "string",
              "enum": [
                "makifa",
                "klalit"
              ]
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Free-text search on fund / company name (Hebrew or English).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Return metric to order by (descending). Default yield_3yr.",
            "schema": {
              "type": "string",
              "enum": [
                "monthly_yield",
                "ytd_yield",
                "yield_12m_rolling",
                "yield_3yr",
                "yield_5yr"
              ]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "include_closed",
            "in": "query",
            "description": "Also return closed tracks (stopped reporting; is_closed=true), after the open ones. Default off.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Funds",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Fund"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/funds/{id}": {
      "get": {
        "operationId": "getFund",
        "summary": "Fund detail with the last 12 monthly returns",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Internal UUID or official fund id (מספר קופה).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Fund",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Fund"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "recent_returns": {
                              "type": "array",
                              "items": {
                                "$ref": "#/components/schemas/HistoryPoint"
                              }
                            }
                          }
                        }
                      ]
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown fund",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/funds/{id}/history": {
      "get": {
        "operationId": "getFundHistory",
        "summary": "Monthly return history (oldest → newest)",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "months",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 600,
              "default": 60
            }
          }
        ],
        "responses": {
          "200": {
            "description": "History",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/HistoryPoint"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown fund",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tracks": {
      "get": {
        "operationId": "listTracks",
        "summary": "Investment track categories per product, with fund counts",
        "parameters": [
          {
            "name": "product",
            "in": "query",
            "description": "Optional - omit for all products.",
            "schema": {
              "type": "string",
              "enum": [
                "hishtalmut",
                "gemel",
                "pension",
                "gemel_lehashkaa",
                "insurance_policy",
                "child_savings"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Tracks",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Track"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/actuarial": {
      "get": {
        "operationId": "getActuarialHistory",
        "summary": "Actuarial balance of pension funds (איזון אקטוארי), per fund and year",
        "description": "The % each pension fund added to or took from every member balance through its actuarial balance: yearly in December through 2013, quarterly since 2014. One entry per fund (managing company x makifa/klalit); the figure is the same for all of its investment tracks. Includes the last full year, the running year so far, 5- and 10-year sums and the 10-year sum on a ILS 200,000 balance. Same data as the MCP tool get_actuarial_history and the page /pensia/izun-aktuari. Past balances do not predict future ones.",
        "parameters": [
          {
            "name": "fund",
            "in": "query",
            "description": "Comma-separated fund keys (e.g. \"migdal-makifa,harel-makifa\"), or the official fund number / UUID of any track of the fund. Omit for all funds.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pension_subtype",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "makifa",
                "klalit"
              ]
            }
          },
          {
            "name": "years",
            "in": "query",
            "description": "Include the year-by-year history (default: only when `fund` is given).",
            "schema": {
              "type": "string",
              "enum": [
                "1",
                "0"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Actuarial balance per fund",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ActuarialFund"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Unknown fund",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/funds/{id}/holdings": {
      "get": {
        "operationId": "getFundHoldings",
        "summary": "What one track holds (asset-level, latest quarter)",
        "description": "From the managing company's quarterly asset list (רשימת נכסים ברמת הנכס הבודד): ILS out of every 100 by asset group, the 15 largest holdings (share of the track and ILS per 100,000), unlisted share and oldest valuation, real estate, uncalled commitments, cash flagged as futures collateral in index trackers, and the annual direct expenses. Direct holdings only (ETFs not looked through). Same data as the MCP tool get_holdings.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Fund UUID or official fund number (מספר קופה).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Holdings",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown fund, or no holdings loaded for it",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/issuers": {
      "get": {
        "operationId": "listIssuers",
        "summary": "Issuers with a who-holds page (largest first), or search by name",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "Name in Hebrew or English, e.g. \"טבע\" or \"Nvidia\".",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Issuers",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/issuers/{slug}": {
      "get": {
        "operationId": "whoHolds",
        "summary": "Who holds one issuer: total ILS across all savers, by managing company, and the holding tracks",
        "description": "Direct holdings only. Same data as the MCP tool who_holds and the page /machzikim/{slug}.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "Slug from /machzikim/{slug}, or a name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Holding tracks to return (largest first).",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 2000,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Who holds the issuer",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "No page for this issuer",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/direct-expenses": {
      "get": {
        "operationId": "getDirectExpenses",
        "summary": "Annual direct expenses on top of the management fee (per company, or one track)",
        "description": "Brokerage, custody, external managers, ETFs and private funds as a share of assets. Same data as the MCP tool get_hidden_costs and the page /hotzaot-yeshirot.",
        "parameters": [
          {
            "name": "fund",
            "in": "query",
            "description": "Optional fund UUID or official fund number.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Direct expenses",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown fund, or no figure for it",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/policy": {
      "get": {
        "operationId": "getInvestmentPolicy",
        "summary": "Declared expected investment policy for the year (one track, or all declared tracks)",
        "description": "The yearly declaration each managing company publishes per track (הצהרה מראש על מדיניות השקעה): declared % per asset class, the allowed band, the actual at the end of the previous year, and today’s figure from the monthly report where comparable (measured differently: direction only). Lines that do not hold together in the company’s file are left out. Same data as the MCP tool get_investment_policy and the page /mediniyut-hashkaa.",
        "parameters": [
          {
            "name": "fund",
            "in": "query",
            "description": "Optional fund UUID or official fund number. Omit for all declared tracks.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "product",
            "in": "query",
            "description": "Optional product_type, when one fund number exists in two products.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Declared policy",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Unknown fund, or no declaration loaded for it",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/companies": {
      "get": {
        "operationId": "listCompanies",
        "summary": "Managing companies (investment houses and insurers)",
        "responses": {
          "200": {
            "description": "Companies",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Company"
                      }
                    },
                    "meta": {
                      "$ref": "#/components/schemas/Meta"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Meta": {
        "type": "object",
        "required": [
          "source",
          "data_period",
          "disclaimer",
          "docs"
        ],
        "properties": {
          "source": {
            "type": "string",
            "description": "Data source (Hebrew)."
          },
          "data_period": {
            "type": [
              "string",
              "null"
            ],
            "description": "Latest reporting month, YYYY-MM."
          },
          "disclaimer": {
            "type": "string",
            "description": "Hebrew disclaimer - must be shown with the data."
          },
          "docs": {
            "type": "string",
            "example": "/openapi.json"
          }
        },
        "additionalProperties": true
      },
      "Error": {
        "type": "object",
        "properties": {
          "data": {
            "type": "null"
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            }
          },
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        }
      },
      "Fund": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "fund_id": {
            "type": "string",
            "description": "Official fund id (מספר קופה)."
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "product_type": {
            "type": "string",
            "enum": [
              "hishtalmut",
              "gemel",
              "pension",
              "gemel_lehashkaa",
              "insurance_policy",
              "child_savings"
            ]
          },
          "product_name": {
            "type": "string"
          },
          "pension_subtype": {
            "type": [
              "string",
              "null"
            ]
          },
          "insurance_subtype": {
            "type": [
              "string",
              "null"
            ]
          },
          "track": {
            "type": "object",
            "properties": {
              "category": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "url": {
                "type": "string"
              }
            }
          },
          "company": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "slug": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "url": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "report_period": {
            "type": [
              "string",
              "null"
            ],
            "description": "YYYY-MM"
          },
          "total_assets_millions_ils": {
            "type": [
              "number",
              "null"
            ]
          },
          "returns_pct": {
            "type": "object",
            "description": "Nominal returns in percent as reported to the regulator.",
            "properties": {
              "monthly": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "year_to_date": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "last_12_months": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "cumulative_36_months": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "cumulative_60_months": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "annualized_36_months": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "annualized_60_months": {
                "type": [
                  "number",
                  "null"
                ]
              }
            }
          },
          "risk": {
            "type": "object",
            "properties": {
              "sharpe_ratio": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "std_deviation": {
                "type": [
                  "number",
                  "null"
                ]
              }
            }
          },
          "exposure_pct": {
            "type": "object",
            "properties": {
              "stocks": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "foreign": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "foreign_currency": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "liquid_assets": {
                "type": [
                  "number",
                  "null"
                ]
              }
            }
          },
          "inception_date": {
            "type": [
              "string",
              "null"
            ]
          },
          "months_of_history": {
            "type": [
              "integer",
              "null"
            ]
          },
          "is_closed": {
            "type": "boolean",
            "description": "The track stopped reporting to the regulator (or reports no money). Kept for its history; left out of rankings, comparisons and default lists."
          },
          "closed_since": {
            "type": [
              "string",
              "null"
            ],
            "description": "YYYY-MM of the last month with real data, for a closed track."
          },
          "is_personal": {
            "type": "boolean",
            "description": "Personally managed track (IRA / בניהול אישי): each member picks their own investments, so the reported return is not meaningful (usually 0). Left out of rankings, averages and comparisons."
          },
          "url": {
            "type": "string",
            "description": "Canonical page - use for citation."
          },
          "markdown_url": {
            "type": "string"
          }
        }
      },
      "HistoryPoint": {
        "type": "object",
        "properties": {
          "period": {
            "type": [
              "string",
              "null"
            ],
            "description": "YYYY-MM"
          },
          "monthly_return_pct": {
            "type": [
              "number",
              "null"
            ]
          },
          "cumulative_return_pct": {
            "type": [
              "number",
              "null"
            ]
          },
          "total_assets_millions_ils": {
            "type": [
              "number",
              "null"
            ]
          }
        }
      },
      "Track": {
        "type": "object",
        "properties": {
          "product_type": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "pension_subtype": {
            "type": [
              "string",
              "null"
            ]
          },
          "track_category": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "risk_level_1_to_5": {
            "type": "integer"
          },
          "funds_count": {
            "type": "integer"
          },
          "url": {
            "type": "string"
          },
          "markdown_url": {
            "type": "string"
          },
          "api_url": {
            "type": "string"
          }
        }
      },
      "ActuarialFund": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "example": "migdal-makifa"
          },
          "name": {
            "type": "string"
          },
          "company_slug": {
            "type": "string"
          },
          "pension_subtype": {
            "type": "string",
            "enum": [
              "makifa",
              "klalit"
            ]
          },
          "url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Page of the default (age-based) track of the fund."
          },
          "last_full_year": {
            "type": "object",
            "properties": {
              "year": {
                "type": "integer"
              },
              "total_pct": {
                "type": [
                  "number",
                  "null"
                ]
              }
            }
          },
          "current_year": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "year": {
                "type": "integer"
              },
              "through_month": {
                "type": "integer"
              },
              "total_pct": {
                "type": [
                  "number",
                  "null"
                ]
              }
            }
          },
          "sum_5_years_pct": {
            "type": [
              "number",
              "null"
            ]
          },
          "sum_10_years_pct": {
            "type": [
              "number",
              "null"
            ]
          },
          "sum_10_years_on_200k_ils": {
            "type": [
              "number",
              "null"
            ]
          },
          "data_since_year": {
            "type": [
              "integer",
              "null"
            ]
          },
          "years": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "year": {
                  "type": "integer"
                },
                "total_pct": {
                  "type": "number"
                },
                "quarters": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "month": {
                        "type": "integer"
                      },
                      "pct": {
                        "type": "number"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "Company": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "legal_name": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "investment_house",
              "insurance"
            ]
          },
          "website": {
            "type": [
              "string",
              "null"
            ]
          },
          "funds_count": {
            "type": "integer"
          },
          "total_assets_millions_ils": {
            "type": [
              "number",
              "null"
            ]
          },
          "product_types": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "url": {
            "type": "string"
          },
          "markdown_url": {
            "type": "string"
          }
        }
      }
    }
  }
}