# List terms

`GET /v2/terms`

Endpoints: `https://{tenant}.fuse.server.test.neobits.ai/v2/terms`, `https://{tenant}.fuse.server.prod.neobits.ai/v2/terms`
OpenAPI document: https://docs.neobits.ai/openapi/fuse.json

Authentication: `bearer` (Bearer token authentication using OAuth 2.0 client credentials flow.)

Lists your terms in ascending ID order, whatever their status. Requires `terms:read`.

## Parameters

| Name | In | Required | Schema | Description |
| --- | --- | --- | --- | --- |
| `size` | query | no | integer; minimum 1; maximum 5000; default `50`; example `50` | Maximum resources to return (1–5,000). Defaults to 50. |
| `before` | query | no | string (uuid) | Exclusive resource ID cursor. Use page.before from a previous response. Cannot be combined with after. |
| `after` | query | no | string (uuid) | Exclusive resource ID cursor. Use page.after from a previous response. Cannot be combined with before. |

Full schemas:

- `size` (query): `{"type":"integer","minimum":1,"maximum":5000,"default":50}`
- `before` (query): `{"type":"string","format":"uuid"}`
- `after` (query): `{"type":"string","format":"uuid"}`

## Example request

```bash
curl --request GET \
  --url 'https://your-tenant.fuse.server.test.neobits.ai/v2/terms?size=50&before=SOME_STRING_VALUE&after=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
```

## Responses

### 200 OK

| Header | Description |
| --- | --- |
| `Content-Type` | The content type of the response. |
| `X-Request-ID` | UUID generated on each request. Provide this id to customer support if an error occurs. |

Content type: `application/json`

Schema (JSON Schema):

```json
{"title":"FuseTermPage","type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"title":"FuseTerm","type":"object","required":["id","terms","startDate","endDate","status","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid","example":"0195fc07-17e7-71e7-b127-70c0a81db35a"},"terms":{"title":"FuseTermsConfig","type":"object","required":["chargeCard","creditCard","otherDebts","repaymentLoan","movables","mortgages","studentLoans"],"properties":{"chargeCard":{"title":"FuseTermItem","type":"object","required":["rate","duration"],"properties":{"rate":{"type":"number","exclusiveMinimum":0,"maximum":1,"description":"Annual interest rate as a fraction, so `0.05` is 5%.","example":0.05},"duration":{"type":"number","exclusiveMinimum":0,"description":"Repayment duration in months.","example":300}}},"creditCard":{"title":"FuseTermItem","type":"object","required":["rate","duration"],"properties":{"rate":{"type":"number","exclusiveMinimum":0,"maximum":1,"description":"Annual interest rate as a fraction, so `0.05` is 5%.","example":0.05},"duration":{"type":"number","exclusiveMinimum":0,"description":"Repayment duration in months.","example":300}}},"otherDebts":{"title":"FuseTermItem","type":"object","required":["rate","duration"],"properties":{"rate":{"type":"number","exclusiveMinimum":0,"maximum":1,"description":"Annual interest rate as a fraction, so `0.05` is 5%.","example":0.05},"duration":{"type":"number","exclusiveMinimum":0,"description":"Repayment duration in months.","example":300}}},"repaymentLoan":{"title":"FuseTermItem","type":"object","required":["rate","duration"],"properties":{"rate":{"type":"number","exclusiveMinimum":0,"maximum":1,"description":"Annual interest rate as a fraction, so `0.05` is 5%.","example":0.05},"duration":{"type":"number","exclusiveMinimum":0,"description":"Repayment duration in months.","example":300}}},"movables":{"title":"FuseTermItem","type":"object","required":["rate","duration"],"properties":{"rate":{"type":"number","exclusiveMinimum":0,"maximum":1,"description":"Annual interest rate as a fraction, so `0.05` is 5%.","example":0.05},"duration":{"type":"number","exclusiveMinimum":0,"description":"Repayment duration in months.","example":300}}},"mortgages":{"title":"FuseTermItem","type":"object","required":["rate","duration"],"properties":{"rate":{"type":"number","exclusiveMinimum":0,"maximum":1,"description":"Annual interest rate as a fraction, so `0.05` is 5%.","example":0.05},"duration":{"type":"number","exclusiveMinimum":0,"description":"Repayment duration in months.","example":300}}},"studentLoans":{"title":"FuseTermItem","type":"object","required":["rate","duration"],"properties":{"rate":{"type":"number","exclusiveMinimum":0,"maximum":1,"description":"Annual interest rate as a fraction, so `0.05` is 5%.","example":0.05},"duration":{"type":"number","exclusiveMinimum":0,"description":"Repayment duration in months.","example":300}}}},"example":{"chargeCard":{"rate":0.18,"duration":60},"creditCard":{"rate":0.18,"duration":60},"otherDebts":{"rate":0.18,"duration":60},"repaymentLoan":{"rate":0.15,"duration":60},"movables":{"rate":0.0629,"duration":96},"mortgages":{"rate":0.05,"duration":300},"studentLoans":{"rate":0.0395,"duration":240}}},"startDate":{"type":"string","format":"date-time","description":"When these terms take effect.","example":"2027-01-01T00:00:00.000Z"},"endDate":{"type":["string","null"],"format":"date-time","description":"When these terms stop applying. Null while nothing replaces them.","example":null},"status":{"type":"string","enum":["ACTIVE","SUPERSEDED","SCHEDULED"],"description":"`ACTIVE` terms apply now, `SCHEDULED` terms start in the future and `SUPERSEDED` terms have ended.","example":"SCHEDULED"},"createdAt":{"type":"string","format":"date-time","example":"2026-11-05T10:00:00.000Z"},"updatedAt":{"type":"string","format":"date-time","example":"2026-11-05T10:00:00.000Z"}}}},"page":{"type":"object","required":["size","total","before","after"],"properties":{"size":{"type":"integer","minimum":0,"description":"Number of terms returned in this response.","example":1},"total":{"type":"integer","minimum":0,"description":"Total terms, independent of the cursor.","example":1},"before":{"type":["string","null"],"format":"uuid","description":"First returned ID. Use as before to request the preceding page. Null for an empty page.","example":"0195fc07-17e7-71e7-b127-70c0a81db35a"},"after":{"type":["string","null"],"format":"uuid","description":"Last returned ID. Use as after to request the following page. Null for an empty page.","example":"0195fc07-17e7-71e7-b127-70c0a81db35a"}}}}}
```

Example:

```json
{
  "data": [
    {
      "id": "0195fc07-17e7-71e7-b127-70c0a81db35a",
      "terms": {
        "chargeCard": {
          "rate": 0.18,
          "duration": 60
        },
        "creditCard": {
          "rate": 0.18,
          "duration": 60
        },
        "otherDebts": {
          "rate": 0.18,
          "duration": 60
        },
        "repaymentLoan": {
          "rate": 0.15,
          "duration": 60
        },
        "movables": {
          "rate": 0.0629,
          "duration": 96
        },
        "mortgages": {
          "rate": 0.05,
          "duration": 300
        },
        "studentLoans": {
          "rate": 0.0395,
          "duration": 240
        }
      },
      "startDate": "2027-01-01T00:00:00.000Z",
      "endDate": null,
      "status": "SCHEDULED",
      "createdAt": "2026-11-05T10:00:00.000Z",
      "updatedAt": "2026-11-05T10:00:00.000Z"
    }
  ],
  "page": {
    "size": 1,
    "total": 1,
    "before": "0195fc07-17e7-71e7-b127-70c0a81db35a",
    "after": "0195fc07-17e7-71e7-b127-70c0a81db35a"
  }
}
```

## Error responses

Error bodies follow the format in the [error reference](https://docs.neobits.ai/api-reference/errors.md), which lists every error code.

| Status | Meaning | Example body |
| --- | --- | --- |
| 400 | Bad Request | `{"timestamp":"2019-09-16T22:14:45.624Z","moreInfo":"https://docs.neobits.ai/","errors":[{"name":"BadRequest","code":"400-001","message":"Field 'ssn' is required"}]}` |
| 401 | Unauthorized | `{"timestamp":"2019-09-16T22:14:45.624Z","moreInfo":"https://docs.neobits.ai/","errors":[{"name":"Unauthorized","code":"401-000","message":"Client is not authenticated"}]}` |
| 403 | Forbidden | `{"timestamp":"2019-09-16T22:14:45.624Z","moreInfo":"https://docs.neobits.ai/","errors":[{"name":"Forbidden","code":"403-000","message":"Client does not have access to this resource"}]}` |
| 429 | Too Many Requests. When the rate limit rejects a request, the response carries `Retry-After` and only the `errors` field: no `timestamp`, `moreInfo` or `X-Request-ID`, as the request never reached the API. | `{"errors":[{"name":"TooManyRequests","code":"429-000","message":"Too many requests. Please try again later."}]}` |
| 500 | Internal Server Error | `{"timestamp":"2019-09-16T22:14:45.624Z","moreInfo":"https://docs.neobits.ai/","errors":[{"name":"InternalServerError","code":"500-000","message":"An unexpected internal error occurred"}]}` |
| 503 | Service Unavailable | `{"timestamp":"2019-09-16T22:14:45.624Z","moreInfo":"https://docs.neobits.ai/","errors":[{"name":"ServiceUnavailable","code":"503-000","message":"An error occurred while interacting with a third party service"}]}` |
| 504 | Gateway Timeout | `{"timestamp":"2019-09-16T22:14:45.624Z","moreInfo":"https://docs.neobits.ai/","errors":[{"name":"GatewayTimeout","code":"504-000","message":"The request timed out"}]}` |