# List savings plans

Returns a paginated list of savings plans for the authenticated client.
Savings plans can be of type `INSTRUMENT` (recurring buy of a single instrument) or `PORTFOLIO` (recurring investment distributed across the account's portfolio allocation).

Endpoint: GET /savings_plans
Version: 1.137.0
Security: oauth-client-credentials

## Query parameters:

  - `account_id` (string)
    Filters savings plans by account ID

  - `user_id` (string)
    Filters savings plans by user ID

  - `instrument_id` (any)
    Filters savings plans by instrument ID (ISIN)

  - `sort` (string)
    Sort the result by `id`.

  - `order` (string)
    Sort order of the result list if the `sort` parameter is specified. By default, only ASC for ascending sort.

  - `offset` (integer)
    Use the `offset` argument to specify where in the list of results to start when returning items for a particular query.

  - `limit` (integer)
    Use the `limit` argument to specify the maximum number of items returned.

## Header parameters:

  - `upvest-client-id` (string, required)
    Your client ID, issued by Upvest. Identifies the client making the request. Universally Unique Identifier (UUID).

  - `Authorization` (string, required)
    Bearer (access) token from the OAuth flow with correct scopes.
https://datatracker.ietf.org/doc/html/rfc6750

  - `signature` (string, required)
    https://tools.ietf.org/id/draft-ietf-httpbis-message-signatures-01.html#name-the-signature-http-header

  - `signature-input` (string, required)
    https://tools.ietf.org/id/draft-ietf-httpbis-message-signatures-01.html#name-the-signature-input-http-he

  - `upvest-api-version` (string)
    Upvest API version (Note: Do not include quotation marks)

## Response 200 fields (application/json):

  - `meta` (object, required)

  - `meta.offset` (integer, required)
    Amount of resource to offset in the response.

  - `meta.limit` (integer, required)
    Total limit of the response.

  - `meta.count` (integer, required)
    Count of the resources returned in the response.

  - `meta.total_count` (integer, required)
    Total count of all the resources.

  - `meta.sort` (string)
    The field that the list is sorted by.

  - `meta.order` (string)
    The ordering of the response.
* ASC - Ascending order
* DESC - Descending order
    Enum: "ASC", "DESC"

  - `data` (array, required)

  - `data.id` (string, required)
    Universally Unique Identifier (UUID) of a savings plan.

  - `data.created_at` (string, required)
    Date and time when the resource was created. [RFC 3339-5](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), [ISO8601 UTC](https://www.iso.org/iso-8601-date-and-time-format.html)

  - `data.updated_at` (string, required)
    Date and time when the resource was last updated. [RFC 3339-5](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6), [ISO8601 UTC](https://www.iso.org/iso-8601-date-and-time-format.html)

  - `data.user_id` (string, required)
    Unique identifier of the user, as a UUID.

  - `data.account_id` (string, required)
    Account unique identifier.

  - `data.name` (string)
    Savings plan name

  - `data.type` (string, required)
    Type of the Savings plan.
* PORTFOLIO -
* INSTRUMENT -
    Enum: "PORTFOLIO", "INSTRUMENT"

  - `data.instrument_id` (any)
    Instrument unique identifier.

  - `data.instrument_id_type` (string)
    The type of the ID used in the request.
* ISIN - International Securities Identification Number
* WKN - German securities identification code
    Enum: "ISIN", "WKN"

  - `data.cash_amount` (string, required)

  - `data.start_date` (string, required)
    First date of the savings plan execution in YYYY-MM-DD format.

  - `data.currency` (string, required)
    Alphabetic three-letter [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) currency code.
* EUR - Euro
* GBP - Pound Sterling
    Enum: "EUR", "GBP"

  - `data.period` (string, required)
    Unit of time.
* WEEK -
* MONTH -
* YEAR -
    Enum: "WEEK", "MONTH", "YEAR"

  - `data.interval` (integer, required)
    Number of periods between executions

  - `data.status` (string)
    Status of a Savings Plan.
* ACTIVE -
* CANCELLED -
    Enum: "ACTIVE", "CANCELLED"

  - `data.fee_configuration` (array)
    Fee configuration for instrument-type savings plan executions. Specifies the transaction fee model to apply to each buy order placed on execution.

  - `data.fee_configuration.type` (string, required)
    Fee type
* TRANSACTION_FEE_BUY -
    Enum: "TRANSACTION_FEE_BUY"

  - `data.fee_configuration.transaction_fee_model_id` (string, required)
    Fee model unique identifier.

  - `data.cancellation_reason` (string)
    Explains the reason why the savings plan was cancelled .
* CANCELLED_BY_CLIENT: The savings plan was cancelled by the client.
* CANCELLED_BY_UPVEST: The savings plan was cancelled by Upvest.
    Enum: "CANCELLED_BY_CLIENT", "CANCELLED_BY_UPVEST"

  - `data.cancellation_details` (string)
    Additional details about the cancellation

## Response 400 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, required)
    Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

  - `title` (string)
    A short, human-readable title for the general error type; the title should not change for given types.

  - `detail` (string)
    A human-readable description of the specific error.

  - `instance` (string)
    This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

  - `request_id` (string)
    Correlation ID for the original request.

## Response 401 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, required)
    Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

  - `title` (string)
    A short, human-readable title for the general error type; the title should not change for given types.

  - `detail` (string)
    A human-readable description of the specific error.

  - `instance` (string)
    This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

  - `request_id` (string)
    Correlation ID for the original request.

## Response 403 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, required)
    Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

  - `title` (string)
    A short, human-readable title for the general error type; the title should not change for given types.

  - `detail` (string)
    A human-readable description of the specific error.

  - `instance` (string)
    This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

  - `request_id` (string)
    Correlation ID for the original request.

## Response 404 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, required)
    Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

  - `title` (string)
    A short, human-readable title for the general error type; the title should not change for given types.

  - `detail` (string)
    A human-readable description of the specific error.

  - `instance` (string)
    This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

  - `request_id` (string)
    Correlation ID for the original request.

## Response 405 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, required)
    Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

  - `title` (string)
    A short, human-readable title for the general error type; the title should not change for given types.

  - `detail` (string)
    A human-readable description of the specific error.

  - `instance` (string)
    This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

  - `request_id` (string)
    Correlation ID for the original request.

## Response 406 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, required)
    Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

  - `title` (string)
    A short, human-readable title for the general error type; the title should not change for given types.

  - `detail` (string)
    A human-readable description of the specific error.

  - `instance` (string)
    This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

  - `request_id` (string)
    Correlation ID for the original request.

## Response 429 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, required)
    Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

  - `title` (string)
    A short, human-readable title for the general error type; the title should not change for given types.

  - `detail` (string)
    A human-readable description of the specific error.

  - `instance` (string)
    This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

  - `request_id` (string)
    Correlation ID for the original request.

## Response 500 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, required)
    Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

  - `title` (string)
    A short, human-readable title for the general error type; the title should not change for given types.

  - `detail` (string)
    A human-readable description of the specific error.

  - `instance` (string)
    This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

  - `request_id` (string)
    Correlation ID for the original request.

## Response 503 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, required)
    Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

  - `title` (string)
    A short, human-readable title for the general error type; the title should not change for given types.

  - `detail` (string)
    A human-readable description of the specific error.

  - `instance` (string)
    This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

  - `request_id` (string)
    Correlation ID for the original request.

## Response 504 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, required)
    Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

  - `title` (string)
    A short, human-readable title for the general error type; the title should not change for given types.

  - `detail` (string)
    A human-readable description of the specific error.

  - `instance` (string)
    This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

  - `request_id` (string)
    Correlation ID for the original request.

