Images
Prices

List work items of one type

Changed on

token-logo-missing requires token-images:read or an allowlisted Toolbox session. It returns in-scope assets (an asset of a vault the app shows, or of a collateral such a vault accepts) on enabled chains without a managed image, excluding applied removals and dismissals, with the worker's latest outcome, provider, attempt time and next retry time when available, and returns 503 until legacy occupancy is verified and source cutover is enabled. Scope inputs may be up to a minute old. With state=reviewed it lists dismissals instead.

token-price-missing requires price-sources:read or an allowlisted Toolbox session. It is computed on each read for every in-scope asset (an asset of a vault the app shows) that is not priced, ordered by priority, then by deposits in USD at the last price. Inputs other than reviews may be up to a minute old; a dismissal or resume shows on the next read. A proposed dismissal leaves the item outstanding until an admin approves it.

asset-newly-exposed requires geo:read or an allowlisted Toolbox session. It lists every asset a vault users can act on reaches, read from the exposure sweep (every 15 minutes): the assets of every EVK, Earn and Securitize vault that is not deprecated, verified or not, explorable or not; the assets of the collaterals the shown vaults accept; and what those are built on. Only ERC-20 tokens are listed: V3 first reads the metadata of an address it has none for, and lists it once it reads as a token (symbol and decimals); an address already listed stays until that read answers. A rule covers an asset when one of its asset selectors picks the asset, or picks a token the asset is built on; a rule limited to one product or vault leaves the item outstanding and is named in rules. Ordered by priority (exposure), then deposits in USD, then the newest exposure. state is, first match wins, covered (a rule applies on the whole chain), reviewed (a standing review), unverified-only (reached only through vaults the app does not show) or new. The default outstanding is new only, and only new items count in the open-items gauge; unverified-only items are listed and reviewable with their own state.

Each asset-newly-exposed item carries coverage, an onboarding checklist of five decisions: logo, price, category (tags), intrinsic APY (yield) and geo. A piece is settled when it has its data, an automatic match, or an applied "none" review; a settled piece is never a need. needs keeps the items with a need in any of the named pieces: not settled, no open proposal, in scope and not paused. Each piece has its write path, with no route of its own: logo: POST /v3/changes/uploads then a token-images fill (or a verified fill with trustedSource, or a PT derive) on POST /v3/changes; "none": POST /v3/work-items/token-logo-missing/{id}/dismiss with no-logo-available. price: a price-sources change on POST /v3/changes (key <source>/<chainId>:<address>); "none": POST /v3/work-items/token-price-missing/{id}/dismiss with onchain-only or no-price-source. tags: a token-tags change on POST /v3/changes (key <tag>:<ruleType>:<value>; the addresses rule type tags one token, value <chainId>:<address>); "none": POST /v3/work-items/token-category-missing/{id}/dismiss with no-category. yield: a yield-sources change (key <source>/<chainId>:<address>) or a yield-pools change (key <chainId>:<address>) on POST /v3/changes; "none": POST /v3/work-items/token-intrinsic-apy-missing/{id}/dismiss with no-intrinsic-apy. geo: the /v3/geo-policies routes or a geo change on POST /v3/changes; "none": POST /v3/work-items/asset-newly-exposed/{id}/dismiss with no-rule-needed. token-category-missing and token-intrinsic-apy-missing have no list of their own: this route returns 400 for them.

For every type, review.proposedBy and review.decidedBy are null for API-key readers. A missing or unknown type returns 400 before any capability check.

get/v3/work-items

Request

  • Base URL
    https://v3.euler.finance
  • URL
    https://v3.euler.finance/v3/work-items
  • Auth
    API key in header X-API-Key

Query parameters

type'token-logo-missing' | 'token-price-missing' | 'asset-newly-exposed' required
state'outstanding' | 'reviewed' | 'all' | 'unpriced' | 'aging' | 'sources-disagree' | 'source-stopped' | 'onchain-only' | 'new' | 'unverified-only' | 'covered'

Outstanding items (default) or reviewed items. token-price-missing also accepts all and one outstanding state: unpriced, aging, sources-disagree, source-stopped or onchain-only. For token-logo-missing, reviewed lists dismissals: in-scope tokens without a logo that carry an applied dismissal, each with its review (WorkItemReview). asset-newly-exposed also accepts all, new, unverified-only and covered; its outstanding is new only, with or without needs.

needsstring
Example:logo,price

asset-newly-exposed only. Comma-separated pieces of logo, price, tags, yield and geo; keeps the items where any of them has need true in coverage, within state.

chainIdinteger

One chain. A served chain without the capability the list reads answers 404 CHAIN_CAPABILITY_DISABLED: prices for token-price-missing, labels for asset-newly-exposed. Without it, asset-newly-exposed lists the chains that run labels.

limitinteger

Page size; a value above 100 is clamped to 100.

offsetinteger

Response

Work items of the requested type

OR
OR

Example response

{
  "data": [
    {
      "id": "1:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
    }
  ]
}

Changes

    • breaking

      removed the enum value baseline from the query request parameter state

    • breaking

      removed the required property /////// from the response with the status

    • warning

      added the new sources-disagree enum value to the ///////// response property for the response status

    • warning

      added the new sources-disagree enum value to the ////// response property for the response status

    • info

      added the new enum value sources-disagree to the query request parameter state

    • info

      removed the baseline enum value from the ////// response property for the response status

    • info

      added the required property /////////// to the response with the status

    • info

      added the required property ////// to the response with the status

    • info

      added the required property ////// to the response with the status

    • info

      added the required property /////////// to the response with the status

    • info

      added the required property /////// to the response with the status

    • info

      added the required property /////////// to the response with the status

    • info

      added the non-success response with the status

    • info

      added the optional property ///////// to the response with the status

    • info

      added the optional property ///////// to the response with the status

    • info

      added the optional property ///// to the response with the status