{
  "schemaVersion": "1.0",
  "item": {
    "slug": "finam",
    "name": "Finam",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Alexander-Panov/finam",
    "canonicalUrl": "https://clawhub.ai/Alexander-Panov/finam",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/finam",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=finam",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "assets/top_us_equities.json",
      "assets/equities.json",
      "assets/openapi.json",
      "assets/top_ru_equities.json",
      "assets/exchanges.json"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/finam"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/finam",
    "agentPageUrl": "https://openagent3.xyz/skills/finam/agent",
    "manifestUrl": "https://openagent3.xyz/skills/finam/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/finam/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Setup",
        "body": "Prerequisites: $FINAM_API_KEY and $FINAM_ACCOUNT_ID must be set in your environment.\n\nIf not configured by environment, follow these steps:\n\nRegister and obtain your API Key from tokens page\nObtain your Account ID from your Finam account dashboard\nSet environment variables:\n\nexport FINAM_API_KEY=\"your_api_key_here\"\nexport FINAM_ACCOUNT_ID=\"your_account_id_here\"\n\nObtain JWT token before using the API:\n\nexport FINAM_JWT_TOKEN=$(curl -sL \"https://api.finam.ru/v1/sessions\" \\\n--header \"Content-Type: application/json\" \\\n--data '{\"secret\": \"'\"$FINAM_API_KEY\"'\"}' | jq -r '.token')\n\nNote: Token expires after 15 minutes. Re-run this command if you receive authentication errors."
      },
      {
        "title": "List Available Exchanges and Equities",
        "body": "Symbol Format: All symbols must be in ticker@mic format (e.g., SBER@MISX)\nBase MIC Codes:\n\nMISX - Moscow Exchange\nRUSX - RTS\nXNGS - NASDAQ/NGS\nXNMS - NASDAQ/NNS\nXNYS - New York Stock Exchange\n\nView all supported exchanges with their MIC codes:\n\njq -r '.exchanges[] | \"\\(.mic) - \\(.name)\"' assets/exchanges.json\n\nList stocks available on a specific exchange:\n\nMIC=\"MISX\"\nLIMIT=20\njq -r \".$MIC[:$LIMIT] | .[] | \\\"\\(.symbol) - \\(.name)\\\"\" assets/equities.json"
      },
      {
        "title": "Search Assets by Name",
        "body": "Find a stock by name (case-insensitive) across all exchanges:\n\nQUERY=\"apple\"\njq -r --arg q \"$QUERY\" 'to_entries[] | .value[] | select(.name | ascii_downcase | contains($q)) | \"\\(.symbol) - \\(.name)\"' assets/equities.json"
      },
      {
        "title": "Get Top N Stocks by Volume",
        "body": "Pre-ranked lists of the 100 most liquid equities for each market, ordered by trading volume descending:\n\nN=10\njq -r \".[:$N] | .[] | \\\"\\(.ticker) - \\(.name)\\\"\" assets/top_ru_equities.json\n\nN=10\njq -r \".[:$N] | .[] | \\\"\\(.ticker) - \\(.name)\\\"\" assets/top_us_equities.json"
      },
      {
        "title": "Get Account Portfolio",
        "body": "Retrieve portfolio information including positions, balances, and P&L:\n\ncurl -sL \"https://api.finam.ru/v1/accounts/$FINAM_ACCOUNT_ID\" \\\n  --header \"Authorization: $FINAM_JWT_TOKEN\" | jq"
      },
      {
        "title": "Get Latest Quote",
        "body": "Retrieve current bid/ask prices and last trade:\n\nSYMBOL=\"SBER@MISX\"\ncurl -sL \"https://api.finam.ru/v1/instruments/$SYMBOL/quotes/latest\" \\\n  --header \"Authorization: $FINAM_JWT_TOKEN\" | jq"
      },
      {
        "title": "Get Order Book (Depth)",
        "body": "View current market depth with bid/ask levels:\n\nSYMBOL=\"SBER@MISX\"\ncurl -sL \"https://api.finam.ru/v1/instruments/$SYMBOL/orderbook\" \\\n  --header \"Authorization: $FINAM_JWT_TOKEN\" | jq"
      },
      {
        "title": "Get Recent Trades",
        "body": "List the most recent executed trades:\n\nSYMBOL=\"SBER@MISX\"\ncurl -sL \"https://api.finam.ru/v1/instruments/$SYMBOL/trades/latest\" \\\n  --header \"Authorization: $FINAM_JWT_TOKEN\" | jq"
      },
      {
        "title": "Get Historical Candles (OHLCV)",
        "body": "Retrieve historical price data with specified timeframe:\n\nSYMBOL=\"SBER@MISX\"\nTIMEFRAME=\"TIME_FRAME_D\"\nSTART_TIME=\"2024-01-01T00:00:00Z\"\nEND_TIME=\"2024-04-01T00:00:00Z\"\ncurl -sL \"https://api.finam.ru/v1/instruments/$SYMBOL/bars?timeframe=$TIMEFRAME&interval.startTime=$START_TIME&interval.endTime=$END_TIME\" \\\n  --header \"Authorization: $FINAM_JWT_TOKEN\" | jq\n\nAvailable Timeframes:\n\nTIME_FRAME_M1, M5, M15, M30 - Minutes (1, 5, 15, 30)\nTIME_FRAME_H1, H2, H4, H8 - Hours (1, 2, 4, 8)\nTIME_FRAME_D - Daily\nTIME_FRAME_W - Weekly\nTIME_FRAME_MN - Monthly\nTIME_FRAME_QR - Quarterly\n\nDate Format (RFC 3339):\n\nFormat: YYYY-MM-DDTHH:MM:SSZ or YYYY-MM-DDTHH:MM:SS+HH:MM\nstartTime - Inclusive (interval start, included in results)\nendTime - Exclusive (interval end, NOT included in results)\nExamples:\n\n2024-01-15T10:30:00Z (UTC)\n2024-01-15T10:30:00+03:00 (Moscow time, UTC+3)"
      },
      {
        "title": "Get Latest Market News",
        "body": "Fetch and display the latest news headlines. No JWT token required.\n\nRussian market news\n\ncurl -sL \"https://www.finam.ru/analysis/conews/rsspoint/\" | python3 -c \"\nimport sys, xml.etree.ElementTree as ET\nroot = ET.parse(sys.stdin).getroot()\nfor item in reversed(root.findall('.//item')):\n    print(f'* {item.findtext('title','')}. {item.findtext('description','').split('...')[0]}')\n\"\n\nUS market news\n\ncurl -sL \"https://www.finam.ru/international/advanced/rsspoint/\" | python3 -c \"\nimport sys, xml.etree.ElementTree as ET\nroot = ET.parse(sys.stdin).getroot()\nfor item in reversed(root.findall('.//item')):\n    print(f'* {item.findtext('title','')}. {item.findtext('description','').split('...')[0]}')\n\"\n\nParameters:\n\nChange [:10] to any number to control how many headlines to display"
      },
      {
        "title": "Order Management",
        "body": "IMPORTANT: Before placing or cancelling any order, you MUST explicitly confirm the details with the user and receive their approval. State the full order parameters (symbol, side, quantity, type, price) and wait for confirmation before executing."
      },
      {
        "title": "Place Order",
        "body": "Order Types:\n\nORDER_TYPE_MARKET - Market order (executes immediately, no limitPrice required)\nORDER_TYPE_LIMIT - Limit order (requires limitPrice)\n\ncurl -sL \"https://api.finam.ru/v1/accounts/$FINAM_ACCOUNT_ID/orders\" \\\n  --header \"Authorization: $FINAM_JWT_TOKEN\" \\\n  --header \"Content-Type: application/json\" \\\n  --data \"$(jq -n \\\n    --arg symbol   \"SBER@MISX\" \\\n    --arg quantity \"10\" \\\n    --arg side     \"SIDE_BUY\" \\\n    --arg type     \"ORDER_TYPE_LIMIT\" \\\n    --arg price    \"310.50\" \\\n    '{symbol: $symbol, quantity: {value: $quantity}, side: $side, type: $type, limitPrice: {value: $price}}')\" \\\n  | jq\n\nParameters:\n\nsymbol - Instrument (e.g., SBER@MISX)\nquantity.value - Number of shares/contracts\nside - SIDE_BUY or SIDE_SELL\ntype - ORDER_TYPE_MARKET or ORDER_TYPE_LIMIT\nlimitPrice - Only for ORDER_TYPE_LIMIT (omit for market orders)"
      },
      {
        "title": "Get Order Status",
        "body": "Check the status of a specific order:\n\nORDER_ID=\"12345678\"\ncurl -sL \"https://api.finam.ru/v1/accounts/$FINAM_ACCOUNT_ID/orders/$ORDER_ID\" \\\n  --header \"Authorization: $FINAM_JWT_TOKEN\" | jq"
      },
      {
        "title": "Cancel Order",
        "body": "Cancel a pending order:\n\nORDER_ID=\"12345678\"\ncurl -sL --request DELETE \"https://api.finam.ru/v1/accounts/$FINAM_ACCOUNT_ID/orders/$ORDER_ID\" \\\n  --header \"Authorization: $FINAM_JWT_TOKEN\" | jq"
      },
      {
        "title": "Volatility Scanner",
        "body": "Scans the top-100 stocks for a given market and prints the most volatile ones based on annualized historical volatility (close-to-close, last 60 days).\n\nUsage:\n\npython3 scripts/volatility.py [ru|us] [N]\n\nArguments:\n\nru / us — market to scan (default: ru)\nN — number of top results to display (default: 10)\n\nExamples:\n\n# Top 10 most volatile Russian stocks\npython3 scripts/volatility.py ru 10\n\n# Top 5 most volatile US stocks\npython3 scripts/volatility.py us 5\n\nSee API Reference for full Finam Trade API details."
      }
    ],
    "body": "Finam Trade API Skill\nSetup\n\nPrerequisites: $FINAM_API_KEY and $FINAM_ACCOUNT_ID must be set in your environment.\n\nIf not configured by environment, follow these steps:\n\nRegister and obtain your API Key from tokens page\nObtain your Account ID from your Finam account dashboard\nSet environment variables:\nexport FINAM_API_KEY=\"your_api_key_here\"\nexport FINAM_ACCOUNT_ID=\"your_account_id_here\"\n\n\nObtain JWT token before using the API:\n\nexport FINAM_JWT_TOKEN=$(curl -sL \"https://api.finam.ru/v1/sessions\" \\\n--header \"Content-Type: application/json\" \\\n--data '{\"secret\": \"'\"$FINAM_API_KEY\"'\"}' | jq -r '.token')\n\n\nNote: Token expires after 15 minutes. Re-run this command if you receive authentication errors.\n\nMarket assets\nList Available Exchanges and Equities\n\nSymbol Format: All symbols must be in ticker@mic format (e.g., SBER@MISX) Base MIC Codes:\n\nMISX - Moscow Exchange\nRUSX - RTS\nXNGS - NASDAQ/NGS\nXNMS - NASDAQ/NNS\nXNYS - New York Stock Exchange\n\nView all supported exchanges with their MIC codes:\n\njq -r '.exchanges[] | \"\\(.mic) - \\(.name)\"' assets/exchanges.json\n\n\nList stocks available on a specific exchange:\n\nMIC=\"MISX\"\nLIMIT=20\njq -r \".$MIC[:$LIMIT] | .[] | \\\"\\(.symbol) - \\(.name)\\\"\" assets/equities.json\n\nSearch Assets by Name\n\nFind a stock by name (case-insensitive) across all exchanges:\n\nQUERY=\"apple\"\njq -r --arg q \"$QUERY\" 'to_entries[] | .value[] | select(.name | ascii_downcase | contains($q)) | \"\\(.symbol) - \\(.name)\"' assets/equities.json\n\nGet Top N Stocks by Volume\n\nPre-ranked lists of the 100 most liquid equities for each market, ordered by trading volume descending:\n\nN=10\njq -r \".[:$N] | .[] | \\\"\\(.ticker) - \\(.name)\\\"\" assets/top_ru_equities.json\n\nN=10\njq -r \".[:$N] | .[] | \\\"\\(.ticker) - \\(.name)\\\"\" assets/top_us_equities.json\n\nAccount Management\nGet Account Portfolio\n\nRetrieve portfolio information including positions, balances, and P&L:\n\ncurl -sL \"https://api.finam.ru/v1/accounts/$FINAM_ACCOUNT_ID\" \\\n  --header \"Authorization: $FINAM_JWT_TOKEN\" | jq\n\nMarket Data\nGet Latest Quote\n\nRetrieve current bid/ask prices and last trade:\n\nSYMBOL=\"SBER@MISX\"\ncurl -sL \"https://api.finam.ru/v1/instruments/$SYMBOL/quotes/latest\" \\\n  --header \"Authorization: $FINAM_JWT_TOKEN\" | jq\n\nGet Order Book (Depth)\n\nView current market depth with bid/ask levels:\n\nSYMBOL=\"SBER@MISX\"\ncurl -sL \"https://api.finam.ru/v1/instruments/$SYMBOL/orderbook\" \\\n  --header \"Authorization: $FINAM_JWT_TOKEN\" | jq\n\nGet Recent Trades\n\nList the most recent executed trades:\n\nSYMBOL=\"SBER@MISX\"\ncurl -sL \"https://api.finam.ru/v1/instruments/$SYMBOL/trades/latest\" \\\n  --header \"Authorization: $FINAM_JWT_TOKEN\" | jq\n\nGet Historical Candles (OHLCV)\n\nRetrieve historical price data with specified timeframe:\n\nSYMBOL=\"SBER@MISX\"\nTIMEFRAME=\"TIME_FRAME_D\"\nSTART_TIME=\"2024-01-01T00:00:00Z\"\nEND_TIME=\"2024-04-01T00:00:00Z\"\ncurl -sL \"https://api.finam.ru/v1/instruments/$SYMBOL/bars?timeframe=$TIMEFRAME&interval.startTime=$START_TIME&interval.endTime=$END_TIME\" \\\n  --header \"Authorization: $FINAM_JWT_TOKEN\" | jq\n\n\nAvailable Timeframes:\n\nTIME_FRAME_M1, M5, M15, M30 - Minutes (1, 5, 15, 30)\nTIME_FRAME_H1, H2, H4, H8 - Hours (1, 2, 4, 8)\nTIME_FRAME_D - Daily\nTIME_FRAME_W - Weekly\nTIME_FRAME_MN - Monthly\nTIME_FRAME_QR - Quarterly\n\nDate Format (RFC 3339):\n\nFormat: YYYY-MM-DDTHH:MM:SSZ or YYYY-MM-DDTHH:MM:SS+HH:MM\nstartTime - Inclusive (interval start, included in results)\nendTime - Exclusive (interval end, NOT included in results)\nExamples:\n2024-01-15T10:30:00Z (UTC)\n2024-01-15T10:30:00+03:00 (Moscow time, UTC+3)\nNews\nGet Latest Market News\n\nFetch and display the latest news headlines. No JWT token required.\n\nRussian market news\n\ncurl -sL \"https://www.finam.ru/analysis/conews/rsspoint/\" | python3 -c \"\nimport sys, xml.etree.ElementTree as ET\nroot = ET.parse(sys.stdin).getroot()\nfor item in reversed(root.findall('.//item')):\n    print(f'* {item.findtext('title','')}. {item.findtext('description','').split('...')[0]}')\n\"\n\n\nUS market news\n\ncurl -sL \"https://www.finam.ru/international/advanced/rsspoint/\" | python3 -c \"\nimport sys, xml.etree.ElementTree as ET\nroot = ET.parse(sys.stdin).getroot()\nfor item in reversed(root.findall('.//item')):\n    print(f'* {item.findtext('title','')}. {item.findtext('description','').split('...')[0]}')\n\"\n\n\nParameters:\n\nChange [:10] to any number to control how many headlines to display\nOrder Management\n\nIMPORTANT: Before placing or cancelling any order, you MUST explicitly confirm the details with the user and receive their approval. State the full order parameters (symbol, side, quantity, type, price) and wait for confirmation before executing.\n\nPlace Order\n\nOrder Types:\n\nORDER_TYPE_MARKET - Market order (executes immediately, no limitPrice required)\nORDER_TYPE_LIMIT - Limit order (requires limitPrice)\ncurl -sL \"https://api.finam.ru/v1/accounts/$FINAM_ACCOUNT_ID/orders\" \\\n  --header \"Authorization: $FINAM_JWT_TOKEN\" \\\n  --header \"Content-Type: application/json\" \\\n  --data \"$(jq -n \\\n    --arg symbol   \"SBER@MISX\" \\\n    --arg quantity \"10\" \\\n    --arg side     \"SIDE_BUY\" \\\n    --arg type     \"ORDER_TYPE_LIMIT\" \\\n    --arg price    \"310.50\" \\\n    '{symbol: $symbol, quantity: {value: $quantity}, side: $side, type: $type, limitPrice: {value: $price}}')\" \\\n  | jq\n\n\nParameters:\n\nsymbol - Instrument (e.g., SBER@MISX)\nquantity.value - Number of shares/contracts\nside - SIDE_BUY or SIDE_SELL\ntype - ORDER_TYPE_MARKET or ORDER_TYPE_LIMIT\nlimitPrice - Only for ORDER_TYPE_LIMIT (omit for market orders)\nGet Order Status\n\nCheck the status of a specific order:\n\nORDER_ID=\"12345678\"\ncurl -sL \"https://api.finam.ru/v1/accounts/$FINAM_ACCOUNT_ID/orders/$ORDER_ID\" \\\n  --header \"Authorization: $FINAM_JWT_TOKEN\" | jq\n\nCancel Order\n\nCancel a pending order:\n\nORDER_ID=\"12345678\"\ncurl -sL --request DELETE \"https://api.finam.ru/v1/accounts/$FINAM_ACCOUNT_ID/orders/$ORDER_ID\" \\\n  --header \"Authorization: $FINAM_JWT_TOKEN\" | jq\n\nScripts\nVolatility Scanner\n\nScans the top-100 stocks for a given market and prints the most volatile ones based on annualized historical volatility (close-to-close, last 60 days).\n\nUsage:\n\npython3 scripts/volatility.py [ru|us] [N]\n\n\nArguments:\n\nru / us — market to scan (default: ru)\nN — number of top results to display (default: 10)\n\nExamples:\n\n# Top 10 most volatile Russian stocks\npython3 scripts/volatility.py ru 10\n\n# Top 5 most volatile US stocks\npython3 scripts/volatility.py us 5\n\n\nSee API Reference for full Finam Trade API details."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Alexander-Panov/finam",
    "publisherUrl": "https://clawhub.ai/Alexander-Panov/finam",
    "owner": "Alexander-Panov",
    "version": "0.0.10",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/finam",
    "downloadUrl": "https://openagent3.xyz/downloads/finam",
    "agentUrl": "https://openagent3.xyz/skills/finam/agent",
    "manifestUrl": "https://openagent3.xyz/skills/finam/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/finam/agent.md"
  }
}