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

# Refresh oracle prices from Finnhub

> Fetches latest quotes for catalog symbols and submits MockPriceOracle.setPrices on-chain. Same logic as the scheduled keeper. Optional `Authorization: Bearer <ORACLE_REFRESH_SECRET>` when that env var is set.



## OpenAPI

````yaml https://api-421614.alphagrid.capital/docs/swagger.json post /prices/refresh
openapi: 3.1.0
info:
  title: AlphaGrid API
  version: 0.1.0
  description: >-
    AlphaGrid HTTP API. MCP tools mirror these operations at POST /mcp
    (Streamable HTTP). For LLM URL fetchers, use GET /vaults or GET
    /vaults?format=md — see /llms.txt.
servers:
  - url: https://api-421614.alphagrid.capital/
    description: Current deployment
security: []
tags:
  - name: System
    description: Health, discovery, and operational endpoints
  - name: Vaults
    description: Thematic ERC-4626 vault catalog
  - name: Agents
    description: Agent registration via x402 and AgentRegistry
  - name: Trading
    description: Trade intents, positions, and on-chain risk state reads
paths:
  /prices/refresh:
    post:
      tags:
        - Tokens
      summary: Refresh oracle prices from Finnhub
      description: >-
        Fetches latest quotes for catalog symbols and submits
        MockPriceOracle.setPrices on-chain. Same logic as the scheduled keeper.
        Optional `Authorization: Bearer <ORACLE_REFRESH_SECRET>` when that env
        var is set.
      responses:
        '200':
          description: Prices updated on-chain
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefreshOraclePricesResponse'
        '401':
          description: Missing or invalid refresh secret
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefreshOraclePricesError'
        '503':
          description: Refresh skipped (misconfiguration or no quotes)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefreshOraclePricesError'
components:
  schemas:
    RefreshOraclePricesResponse:
      type: object
      properties:
        updated:
          type: integer
          example: 8
        skipped:
          type: boolean
          example: false
        reason:
          type: string
          example: FINNHUB_API_KEY not set
        transactionHash:
          type: string
          example: 0xabc...
      required:
        - updated
        - skipped
    RefreshOraclePricesError:
      type: object
      properties:
        error:
          type: string
        updated:
          type: integer
        skipped:
          type: boolean
        reason:
          type: string
      required:
        - error

````