> ## Documentation Index
> Fetch the complete documentation index at: https://docs.retempo.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /api/v1/services — List All Retempo Services

> GET /api/v1/services — returns all services ordered by creation date descending. Each service includes owner details and associated payment plans.

Use this endpoint to retrieve all services registered in your Retempo account. The response is an array of service objects ordered by `createdAt` descending, so your most recently created service always appears first. Each object includes the full owner details and all associated payment plans — the same fields returned by the [Get Service](/api/services/get) endpoint.

```
GET https://api.retempo.xyz/api/v1/services
```

## Request Parameters

This endpoint accepts no query parameters and no request body. Send the request as a plain `GET` with no payload.

## Response

A successful request returns HTTP `200 OK` with a `services` array. If no services exist, the array is empty.

```json theme={null}
{
  "services": [
    {
      "id": "clz1abc2def3ghi4",
      "name": "DataStream Pro",
      "description": "Real-time data streaming API",
      "status": "ACTIVE",
      "ownerId": "clz1owner123",
      "createdAt": "2025-06-01T10:00:00.000Z",
      "updatedAt": "2025-06-01T10:00:00.000Z",
      "owner": {
        "id": "clz1owner123",
        "email": "dev@example.com",
        "name": "Alice Dev",
        "role": "DEVELOPER"
      },
      "paymentPlans": []
    }
  ]
}
```

<ResponseField name="services" type="array">
  An array of service objects, ordered by `createdAt` descending.

  <Expandable title="service object fields">
    <ResponseField name="id" type="string">
      The unique identifier for the service.
    </ResponseField>

    <ResponseField name="name" type="string">
      The display name of the service.
    </ResponseField>

    <ResponseField name="description" type="string">
      The service description, if one was provided at creation.
    </ResponseField>

    <ResponseField name="status" type="string">
      The current lifecycle status of the service: `DRAFT`, `ACTIVE`, or `DISABLED`.
    </ResponseField>

    <ResponseField name="ownerId" type="string">
      The ID of the user who owns this service.
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      ISO 8601 timestamp recording when the service was created.
    </ResponseField>

    <ResponseField name="updatedAt" type="string">
      ISO 8601 timestamp recording when the service was last modified.
    </ResponseField>

    <ResponseField name="owner" type="object">
      The full owner user object, including `id`, `email`, `name`, and `role`.
    </ResponseField>

    <ResponseField name="paymentPlans" type="array">
      All payment plans attached to this service. Each element contains plan details such as `pricingType`, `amount`, `billingInterval`, and `currency`.
    </ResponseField>
  </Expandable>
</ResponseField>

## Example

```bash theme={null}
curl https://api.retempo.xyz/api/v1/services
```

**Example response:**

```json theme={null}
{
  "services": [
    {
      "id": "clz1abc2def3ghi4",
      "name": "DataStream Pro",
      "description": "Real-time data streaming API",
      "status": "ACTIVE",
      "ownerId": "clz1owner123",
      "createdAt": "2025-06-01T10:00:00.000Z",
      "updatedAt": "2025-06-01T10:00:00.000Z",
      "owner": {
        "id": "clz1owner123",
        "email": "dev@example.com",
        "name": "Alice Dev",
        "role": "DEVELOPER"
      },
      "paymentPlans": []
    }
  ]
}
```
