Angle Integrators API

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

OpenAPI Specification

angle-integrators-api-openapi.yml Raw ↑
openapi: 3.0.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