Angle Integrators API

The Integrators API from Angle — 6 operation(s) for integrators.

Operations 6

GET /v1/integrators/payload/deposit Get deposit payload
GET /v1/integrators/payload/withdraw Get withdraw payload
GET /v1/integrators/vaults/positions Get vault positions
GET /v1/integrators/vaults/user/positions Get user's vault positions
GET /v1/integrators/vaults/positions/historical Get historical vault positions
GET /v1/integrators/vaults/operations/historical Get historical vault operations

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/angle-integrators-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

angle-integrators-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: Angle Allowances Integrators API
  description: API to track the Angle Protocol state
servers:
- url: https://api.angle.money
tags:
- name: Integrators
paths:
  /v1/integrators/payload/deposit:
    get:
      summary: Get deposit payload
      description: Generate a payload for depositing tokens into Angle protocol strategies.
      tags:
      - Integrators
      parameters:
      - $ref: '#/components/parameters/requiredChainId'
      - name: inputTokenAddress
        in: query
        description: The address of the input token.
        required: true
        schema:
          type: string
          example: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
      - name: inputTokenAmount
        in: query
        description: The amount of the input token to deposit using token decimals. For example, 1 USDC would be 1000000 (6 decimals).
        required: true
        schema:
          type: number
          example: 1000000
      - name: strategyAddress
        in: query
        description: The address of the strategy contract.
        required: true
        schema:
          type: string
          example: '0xC0077E921C30c39cDD8b693E25Af572C10E82a05'
      - name: userAddress
        in: query
        description: The address of the user performing the transaction.
        required: true
        schema:
          type: string
          example: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
      - name: slippage
        in: query
        description: The maximum allowed slippage as a percentage value (i.e. 0.1 means 0.1%).
        required: true
        schema:
          type: number
          example: 0.1
      - name: ipAddress
        in: query
        description: The IP address of the user.
        required: false
        schema:
          type: string
          example: 192.168.1.100
      responses:
        '200':
          description: The deposit payload information.
          content:
            application/json:
              schema:
                type: object
  /v1/integrators/payload/withdraw:
    get:
      summary: Get withdraw payload
      description: Generate a payload for withdrawing tokens from Angle protocol strategies.
      tags:
      - Integrators
      parameters:
      - $ref: '#/components/parameters/requiredChainId'
      - name: outputTokenAddress
        in: query
        description: The address of the output token (the token that the user wants to receive after the withdraw from strategy).
        required: true
        schema:
          type: string
          example: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
      - name: inputTokenAmount
        in: query
        description: The amount of the input token to withdraw. This is the amount of the strategy token that the user wants to withdraw (with 18 decimals). For example, 1 stUSDStrat would be 1000000000000000000 (18 decimals).
        required: true
        schema:
          type: number
          example: 1000000000000000000
      - name: strategyAddress
        in: query
        description: The address of the strategy contract.
        required: true
        schema:
          type: string
          example: '0xC0077E921C30c39cDD8b693E25Af572C10E82a05'
      - name: userAddress
        in: query
        description: The address of the user performing the transaction.
        required: true
        schema:
          type: string
          example: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
      - name: slippage
        in: query
        description: The maximum allowed slippage as a percentage value (i.e. 0.1 means 0.1%).
        required: true
        schema:
          type: number
          example: 0.1
      - name: ipAddress
        in: query
        description: The IP address of the user.
        required: false
        schema:
          type: string
          example: 192.168.1.100
      responses:
        '200':
          description: The withdraw payload information.
          content:
            application/json:
              schema:
                type: object
  /v1/integrators/vaults/positions:
    get:
      summary: Get vault positions
      description: Retrieve positions data for a specific vault strategy. Position are ordered by the most recent first.
      tags:
      - Integrators
      parameters:
      - in: query
        name: chainId
        required: true
        schema:
          type: number
          enum:
          - 42161
        description: The chain ID (only Arbitrum is supported)
      - name: strategyAddress
        in: query
        description: The address of the strategy contract.
        required: true
        schema:
          type: string
          example: '0xC0077E921C30c39cDD8b693E25Af572C10E82a05'
      - in: query
        name: first
        required: false
        schema:
          type: number
          minimum: 1
        description: Number of items to retrieve
      - in: query
        name: skip
        required: false
        schema:
          type: number
          minimum: 0
        description: Number of items to skip
      responses:
        '200':
          description: Successful response with vault positions data
          content:
            application/json:
              schema:
                type: object
  /v1/integrators/vaults/user/positions:
    get:
      summary: Get user's vault positions
      description: Retrieve position data for a specific user in a vault strategy.
      tags:
      - Integrators
      parameters:
      - in: query
        name: chainId
        schema:
          type: integer
          enum:
          - 42161
        description: Chain ID (optional, currently only Arbitrum is supported)
      - in: query
        name: first
        schema:
          type: integer
          minimum: 1
          default: 5
        description: Number of results to return (optional)
      - in: query
        name: includeOperations
        schema:
          type: boolean
          default: false
        description: Whether to include operations (deposits, withdrawals) in the response (optional)
      - in: query
        name: skip
        schema:
          type: integer
          minimum: 0
        description: Number of results to skip (optional)
      - in: query
        name: strategyAddress
        schema:
          type: string
        description: Address of the strategy (optional)
      - in: query
        name: userAddress
        schema:
          type: string
        required: true
        description: Address of the user
      responses:
        '200':
          description: Successful response with user's vault positions data
          content:
            application/json:
              schema:
                type: object
  /v1/integrators/vaults/positions/historical:
    get:
      summary: Get historical vault positions
      description: Retrieve historical position data for a specific vault strategy. Position are ordered by the most recent first.
      tags:
      - Integrators
      parameters:
      - in: query
        name: chainId
        required: true
        schema:
          type: number
          enum:
          - 42161
        description: The chain ID (only Arbitrum is supported)
      - name: strategyAddress
        in: query
        description: The address of the strategy contract.
        required: true
        schema:
          type: string
          example: '0xC0077E921C30c39cDD8b693E25Af572C10E82a05'
      - in: query
        name: first
        required: false
        schema:
          type: number
          minimum: 1
        description: Number of items to retrieve
      - in: query
        name: skip
        required: false
        schema:
          type: number
          minimum: 0
        description: Number of items to skip
      responses:
        '200':
          description: Successful response with historical vault positions data
          content:
            application/json:
              schema:
                type: object
  /v1/integrators/vaults/operations/historical:
    get:
      summary: Get historical vault operations
      description: Retrieve historical operation data for a specific vault strategy.
      tags:
      - Integrators
      parameters:
      - in: query
        name: chainId
        required: true
        schema:
          type: number
          enum:
          - 42161
        description: The chain ID (only Arbitrum is supported)
      - name: strategyAddress
        in: query
        description: The address of the strategy contract.
        required: true
        schema:
          type: string
          example: '0xC0077E921C30c39cDD8b693E25Af572C10E82a05'
      - in: query
        name: userAddresses
        required: false
        schema:
          oneOf:
          - type: string
          - type: array
            items:
              type: string
        description: User address or array of user addresses
      - in: query
        name: firstDeposits
        required: false
        schema:
          type: number
          minimum: 1
        description: Number of deposit items to retrieve
      - in: query
        name: skipDeposits
        required: false
        schema:
          type: number
          minimum: 0
        description: Number of deposit items to skip
      - in: query
        name: firstWithdrawals
        required: false
        schema:
          type: number
          minimum: 1
        description: Number of withdrawal items to retrieve
      - in: query
        name: skipWithdrawals
        required: false
        schema:
          type: number
          minimum: 0
        description: Number of withdrawal items to skip
      responses:
        '200':
          description: Successful response with historical vault operations data
          content:
            application/json:
              schema:
                type: object
components:
  parameters:
    requiredChainId:
      in: query
      name: chainId
      description: Chain requested
      required: true
      schema:
        type: integer
      examples:
        Ethereum:
          value: 1
        Polygon:
          value: 137
        Optimism:
          value: 10
        Arbitrum:
          value: 42161
        Avalanche:
          value: 43114
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic