---
updatedAt: 2026-05-27T22:29:41.000Z
agentTools:
  projectIndex: https://docs.spinwheel.io/llms.txt
---

# Poll Request Status

Polling API to get status of refresh transactions based on the extRequestId

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "paths": {
    "/v1/users/{userId}/liabilities/refresh/{extRequestId}": {
      "get": {
        "operationId": "Get Refresh Status",
        "summary": "Poll Request Status",
        "description": "Polling API to get status of refresh transactions based on the extRequestId",
        "parameters": [
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "extRequestId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefreshLiabilitiesResponse"
                },
                "examples": {
                  "Response with a current status of refreshing liabilities": {
                    "description": "Response with a current status of refreshing liabilities",
                    "value": {
                      "status": {
                        "code": 200,
                        "desc": "success"
                      },
                      "data": [
                        {
                          "refreshTransactionStatus": "IN_PROGRESS",
                          "refreshTransactionId": "43ec068e-3ae0-4e40-826e-eaa007e1426f",
                          "creditCardId": "fb444634-40a8-4a62-849d-4e2db7b8a9ad",
                          "nextEligibleRefreshOn": 1597753517524,
                          "capability": "REALTIME_BALANCE"
                        },
                        {
                          "refreshTransactionStatus": "COMPLETED",
                          "refreshTransactionId": "4dcc6ef1-816d-4da1-a7fb-45478f5e341b",
                          "creditCardId": "5b747c1e-66a2-4b3e-939d-3a85091218ec",
                          "nextEligibleRefreshOn": 1597753517524,
                          "capability": "REALTIME_BALANCE"
                        },
                        {
                          "refreshTransactionStatus": "IN_PROGRESS",
                          "refreshTransactionId": "0f47706a-0954-424d-b71f-41dccf0cfab7",
                          "liabilityGroupId": "38ff202f-4c43-4dc5-8ad7-1e1fc5aae30b",
                          "studentLoanIds": [
                            "50ba9f11-ebf6-44dd-864d-7e9e6fe9d0a7",
                            "c38b0a06-6464-4073-b5f6-3942af894c09"
                          ],
                          "nextEligibleRefreshOn": 1597753517524,
                          "capability": "LIABILITY_GROUP_PAYOFF_QUOTE"
                        },
                        {
                          "refreshTransactionStatus": "IN_PROGRESS",
                          "refreshTransactionId": "b790770b-33c7-49d4-b086-e6e18864ba34",
                          "creditCardId": "007035e0-7865-49f3-be50-c922b1c63dc6",
                          "nextEligibleRefreshOn": 1748577600000,
                          "capability": "ANNUAL_PERCENTAGE_RATE"
                        }
                      ]
                    }
                  },
                  "Response with a current status of student loan liability group payoff quote": {
                    "description": "Response with a current status of student loan liability group payoff quote",
                    "value": {
                      "status": {
                        "code": 200,
                        "desc": "success"
                      },
                      "data": [
                        {
                          "refreshTransactionStatus": "IN_PROGRESS",
                          "refreshTransactionId": "0f47706a-0954-424d-b71f-41dccf0cfab7",
                          "liabilityGroupId": "38ff202f-4c43-4dc5-8ad7-1e1fc5aae30b",
                          "studentLoanIds": [
                            "50ba9f11-ebf6-44dd-864d-7e9e6fe9d0a7",
                            "c38b0a06-6464-4073-b5f6-3942af894c09"
                          ],
                          "nextEligibleRefreshOn": 1597753517524,
                          "capability": "LIABILITY_GROUP_PAYOFF_QUOTE"
                        }
                      ]
                    }
                  },
                  "Response for credit card statement summary": {
                    "description": "Response for credit card statement summary",
                    "value": {
                      "status": {
                        "code": 200,
                        "desc": "success"
                      },
                      "data": [
                        {
                          "refreshTransactionStatus": "IN_PROGRESS",
                          "refreshTransactionId": "5b6e950e-c43a-4cb8-b082-e191bfa148b9",
                          "creditCardId": "ba54ebb8-3414-43e5-b080-5c804977651a",
                          "nextEligibleRefreshOn": 1748577600000,
                          "capability": "STATEMENT_SUMMARY"
                        }
                      ]
                    }
                  },
                  "Response for credit card annual percentage rate (APR) refresh": {
                    "description": "Response for credit card annual percentage rate (APR) refresh",
                    "value": {
                      "status": {
                        "code": 200,
                        "desc": "success"
                      },
                      "data": [
                        {
                          "refreshTransactionStatus": "IN_PROGRESS",
                          "refreshTransactionId": "b790770b-33c7-49d4-b086-e6e18864ba34",
                          "creditCardId": "007035e0-7865-49f3-be50-c922b1c63dc6",
                          "nextEligibleRefreshOn": 1748577600000,
                          "capability": "ANNUAL_PERCENTAGE_RATE"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnauthorizedResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not found response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundResponse"
                },
                "examples": {
                  "Refresh Transaction Not Found": {
                    "description": "No refresh transaction exists for the extRequestId",
                    "value": {
                      "status": {
                        "code": 404,
                        "desc": "No refresh transaction with [extRequestId=ccf68f5f-f094-4a39-a933-64cc2647fec5]",
                        "messages": []
                      }
                    }
                  },
                  "User Not Found": {
                    "value": {
                      "status": {
                        "code": 404,
                        "desc": "User not found",
                        "messages": []
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal server error response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerErrorResponse"
                }
              }
            }
          }
        },
        "tags": [
          "Real-Time Data"
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "bearerAuth": []
          }
        ]
      }
    }
  },
  "info": {
    "title": "Optimize",
    "description": "Welcome to Spinwheel's documentation! ",
    "version": "1.0",
    "contact": {}
  },
  "tags": [
    {
      "name": "Real-Time Data"
    }
  ],
  "servers": [
    {
      "url": "https://sandbox-api.spinwheel.io"
    },
    {
      "url": "https://api.spinwheel.io"
    },
    {
      "url": "https://secure-api.spinwheel.io"
    },
    {
      "url": "https://secure-sandbox-api.spinwheel.io"
    }
  ],
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "Once you've created a Spinwheel account and received credentials, you can access all of Spinwheel's APIs using a server-to-server call (in order to protect your credentials). When calling an API simply include your secretKey as a bearer token in an auth header like so: \n\n `Authorization: Bearer 8ae8d6fa-df8d-4c5d-9f9b-c4e4c10968b0`"
      }
    },
    "schemas": {
      "BadRequest": {
        "type": "object",
        "properties": {
          "code": {
            "type": "number",
            "example": 400
          },
          "desc": {
            "type": "string",
            "example": "Bad request"
          }
        },
        "required": [
          "code",
          "desc"
        ]
      },
      "BadRequestResponse": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/BadRequest"
          }
        },
        "required": [
          "status"
        ]
      },
      "Unauthorized": {
        "type": "object",
        "properties": {
          "code": {
            "type": "number",
            "example": 401
          },
          "desc": {
            "type": "string",
            "example": "Invalid private key"
          }
        },
        "required": [
          "code",
          "desc"
        ]
      },
      "UnauthorizedResponse": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/Unauthorized"
          }
        },
        "required": [
          "status"
        ]
      },
      "NotFound": {
        "type": "object",
        "properties": {
          "code": {
            "type": "number",
            "example": 404
          },
          "desc": {
            "type": "string",
            "example": "Resource not found"
          }
        },
        "required": [
          "code",
          "desc"
        ]
      },
      "NotFoundResponse": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/NotFound"
          }
        },
        "required": [
          "status"
        ]
      },
      "InternalServerError": {
        "type": "object",
        "properties": {
          "code": {
            "type": "number",
            "example": 500
          },
          "desc": {
            "type": "string",
            "example": "Internal server error"
          }
        },
        "required": [
          "code",
          "desc"
        ]
      },
      "InternalServerErrorResponse": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/InternalServerError"
          }
        },
        "required": [
          "status"
        ]
      },
      "Message": {
        "type": "object",
        "properties": {
          "desc": {
            "type": "string",
            "example": "Example status description"
          },
          "type": {
            "enum": [
              "ERROR",
              "WARN",
              "INFO"
            ],
            "type": "string",
            "example": "ERROR"
          }
        },
        "required": [
          "desc"
        ]
      },
      "ResponseStatus": {
        "type": "object",
        "properties": {
          "code": {
            "type": "number",
            "example": 200
          },
          "desc": {
            "type": "string",
            "example": "success"
          },
          "messages": {
            "example": [
              {
                "desc": "Example description"
              }
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Message"
            }
          }
        }
      },
      "RefreshLiabilitiesTransaction": {
        "type": "object",
        "properties": {
          "refreshTransactionStatus": {
            "enum": [
              "IN_PROGRESS",
              "COMPLETED",
              "FAILED"
            ],
            "type": "string",
            "description": "Status of the transaction",
            "example": "IN_PROGRESS"
          },
          "refreshTransactionId": {
            "type": "string",
            "description": "Refresh transaction ID",
            "example": "43ec068e-3ae0-4e40-826e-eaa007e1426f"
          },
          "creditCardId": {
            "type": "string",
            "description": "ID of the credit card being refreshed",
            "example": "fb444634-40a8-4a62-849d-4e2db7b8a9ad"
          },
          "capability": {
            "enum": [
              "LIABILITY_GROUP_PAYOFF_QUOTE",
              "PAYOFF_SUMMARY",
              "REALTIME_BALANCE",
              "STATEMENT_SUMMARY",
              "ANNUAL_PERCENTAGE_RATE"
            ],
            "type": "string",
            "description": "Capability for which refresh was requested",
            "example": "LIABILITY_GROUP_PAYOFF_QUOTE"
          },
          "liabilityGroupId": {
            "type": "string",
            "description": "ID of the liability group being refreshed",
            "example": "af82d047-98eb-46fd-b5d6-1ad02d6a4bee"
          },
          "studentLoanIds": {
            "description": "IDs of the student loans being refreshed",
            "example": [
              "50ba9f11-ebf6-44dd-864d-7e9e6fe9d0a7",
              "c38b0a06-6464-4073-b5f6-3942af894c09"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "nextEligibleRefreshOn": {
            "type": "number",
            "description": "Next refresh will be enabled at provided timestamp",
            "example": 1597753517524
          }
        },
        "required": [
          "refreshTransactionStatus",
          "refreshTransactionId"
        ]
      },
      "RefreshLiabilitiesResponse": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/ResponseStatus"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RefreshLiabilitiesTransaction"
            }
          }
        },
        "required": [
          "status",
          "data"
        ]
      }
    }
  }
}
```