# List all import jobs for a specific group

**GET** `/api/user/imports/{groupId}/all`

Product: [Email](https://devdocs.1spoc.com/docs/email.md)  
Version: [1.0](https://devdocs.1spoc.com/docs/email/1-0.md)  
Category: **User**  
Lifecycle: **active**

Retrieves a paginated list of all import jobs for a specific group created by the authenticated user. Supports search, sorting, and pagination. Search is performed on the original_name field (case-insensitive).

## Request overview

Full URL: `https://email.1spoc.com/api/user/imports/{groupId}/all`

Method: `GET`

Content type: `No request body`

## Authentication

Send the credential in the request **header** using the field `Authorization: Bearer <TOKEN>`.

> Keep real credentials on the server. The examples below use placeholders and never contain stored secrets.

## Parameters

### Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `groupId` | string | Yes | Unique identifier of the group to list import jobs for. |

### Query parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `page` | integer | No | Page number for pagination (default: 1). |
| `limit` | integer | No | Number of items per page (default: 10). |
| `search` | string | No | Search term to filter import jobs by original file name (case-insensitive). |
| `sortBy` | string | No | Field to sort by (default: created_at). |
| `sortOrder` | string | No | Sort order: 'asc' or 'desc' (default: desc). |

### Request body fields

None.

## Request schema


```json
{
  "type": "object",
  "required": [
    "groupId"
  ],
  "properties": {
    "page": {
      "type": "integer",
      "default": 1,
      "minimum": 1,
      "description": "Page number for pagination (default: 1).",
      "x-parameter-in": "query"
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "minimum": 1,
      "description": "Number of items per page (default: 10).",
      "x-parameter-in": "query"
    },
    "search": {
      "type": "string",
      "description": "Search term to filter import jobs by original file name (case-insensitive).",
      "x-parameter-in": "query"
    },
    "sortBy": {
      "type": "string",
      "default": "created_at",
      "description": "Field to sort by (default: created_at).",
      "x-parameter-in": "query"
    },
    "groupId": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier of the group to list import jobs for.",
      "x-parameter-in": "path"
    },
    "sortOrder": {
      "enum": [
        "asc",
        "desc"
      ],
      "type": "string",
      "default": "desc",
      "description": "Sort order: 'asc' or 'desc' (default: desc).",
      "x-parameter-in": "query"
    }
  }
}
```

## Request example


```json
{}
```

## Response schema


```json
{
  "type": "object",
  "example": {
    "data": [
      {
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "status": "COMPLETED",
        "user_id": "123e4567-e89b-12d3-a456-426614174001",
        "admin_id": "123e4567-e89b-12d3-a456-426614174002",
        "file_key": "imports/123e4567-e89b-12d3-a456-426614174001/abc123.csv",
        "created_at": "2024-01-15T10:30:00Z",
        "updated_at": "2024-01-15T10:35:00Z",
        "original_name": "contacts.csv",
        "failure_reason": null,
        "total_contacts": 100,
        "failed_contacts": 2,
        "processed_contacts": 98
      },
      {
        "id": "123e4567-e89b-12d3-a456-426614174003",
        "status": "PROCESSING",
        "user_id": "123e4567-e89b-12d3-a456-426614174001",
        "admin_id": "123e4567-e89b-12d3-a456-426614174002",
        "file_key": "imports/123e4567-e89b-12d3-a456-426614174001/def456.csv",
        "created_at": "2024-01-16T14:20:00Z",
        "updated_at": "2024-01-16T14:22:00Z",
        "original_name": "new_contacts.csv",
        "failure_reason": null,
        "total_contacts": 50,
        "failed_contacts": 0,
        "processed_contacts": 25
      }
    ],
    "page": 1,
    "limit": 10,
    "total": 2
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier for the import job."
          },
          "status": {
            "enum": [
              "PENDING",
              "QUEUED",
              "PROCESSING",
              "COMPLETED",
              "FAILED"
            ],
            "type": "string",
            "description": "Current status of the import job."
          },
          "user_id": {
            "type": "string",
            "format": "uuid",
            "description": "ID of the user who created the import job."
          },
          "admin_id": {
            "type": "string",
            "format": "uuid",
            "description": "ID of the admin associated with the user."
          },
          "file_key": {
            "type": "string",
            "description": "S3 key where the file is stored."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the import job was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the import job was last updated."
          },
          "original_name": {
            "type": "string",
            "description": "Original name of the imported file."
          },
          "failure_reason": {
            "type": "string",
            "nullable": true,
            "description": "Reason for failure if the import job failed."
          },
          "total_contacts": {
            "type": "integer",
            "default": 0,
            "description": "Total number of contacts in the import file."
          },
          "failed_contacts": {
            "type": "integer",
            "default": 0,
            "description": "Number of contacts that failed to import."
          },
          "processed_contacts": {
            "type": "integer",
            "default": 0,
            "description": "Number of contacts successfully processed."
          }
        }
      }
    },
    "page": {
      "type": "integer",
      "description": "Current page number."
    },
    "limit": {
      "type": "integer",
      "description": "Number of items per page."
    },
    "total": {
      "type": "integer",
      "description": "Total number of import jobs returned in this response."
    }
  }
}
```

## Response examples


```json
{}
```

## Status codes


```json
[
  {
    "code": 200,
    "description": "Successfully retrieved list of import jobs."
  },
  {
    "code": 401,
    "description": "Unauthorized (missing or invalid user access token)"
  },
  {
    "code": 404,
    "description": "User not found"
  },
  {
    "code": 500,
    "description": "Internal server error"
  }
]
```

## Generated integration examples

The following examples are generated from the published **GET /api/user/imports/{groupId}/all** contract and use placeholder credentials.

### cURL


```curl
curl --request GET 'https://email.1spoc.com/api/user/imports/{groupId}/all' \
  --header 'Authorization: Bearer <TOKEN>'
```

### JavaScript


```javascript
const response = await fetch('https://email.1spoc.com/api/user/imports/{groupId}/all', {
  method: 'GET',
  headers: {
    "Authorization": "Bearer <TOKEN>"
  },
});

if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
console.log(data);
```

### NodeJS


```node
const response = await fetch('https://email.1spoc.com/api/user/imports/{groupId}/all', {
  method: 'GET',
  headers: {
    "Authorization": "Bearer <TOKEN>"
  },
});

if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
console.log(data);
```

### Python


```python
import json
import requests

url = 'https://email.1spoc.com/api/user/imports/{groupId}/all'
headers = {
  "Authorization": "Bearer <TOKEN>"
}
response = requests.get(url, headers=headers)

response.raise_for_status()
print(response.json())
```

### Java


```java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder(URI.create("https://email.1spoc.com/api/user/imports/{groupId}/all"))
    .header("Authorization", "Bearer <TOKEN>")
    .method("GET", HttpRequest.BodyPublishers.noBody())
    .build();

var response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
```

### PHP


```php
<?php
$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => 'https://email.1spoc.com/api/user/imports/{groupId}/all',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => ["Authorization: Bearer <TOKEN>"],
]);
$response = curl_exec($curl);
if ($response === false) throw new Exception(curl_error($curl));
curl_close($curl);
echo $response;
```

### C#


```csharp
using System.Net.Http.Headers;
using System.Text;

using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = AuthenticationHeaderValue.Parse("Bearer <TOKEN>");
var response = await client.GetAsync("https://email.1spoc.com/api/user/imports/{groupId}/all");
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
```

### Go


```go
package main

import (
    "fmt"
    "io"
    "net/http"
)

func main() {
    request, err := http.NewRequest("GET", "https://email.1spoc.com/api/user/imports/{groupId}/all", nil)
    if err != nil { panic(err) }
    request.Header.Set("Accept", "application/json")
    request.Header.Set("Authorization", "Bearer <TOKEN>")
    response, err := http.DefaultClient.Do(request)
    if err != nil { panic(err) }
    defer response.Body.Close()
    data, err := io.ReadAll(response.Body)
    if err != nil { panic(err) }
    if response.StatusCode >= 400 { panic(fmt.Sprintf("HTTP %d: %s", response.StatusCode, data)) }
    fmt.Println(string(data))
}
```

## Related resources

- [Interactive documentation page](https://devdocs.1spoc.com/docs/email/1-0/getapiuserimportsgroupidall)
- [Version documentation](https://devdocs.1spoc.com/docs/email/1-0.md)
- [OpenAPI JSON](https://devdocs.1spoc.com/docs/email/1-0/openapi.json)
- [OpenAPI YAML](https://devdocs.1spoc.com/docs/email/1-0/openapi.yaml)
- [Postman collection](https://devdocs.1spoc.com/postman/email/1-0/collection.json)
- [Postman environment](https://devdocs.1spoc.com/postman/email/1-0/environment.json)
- [MCP setup](https://devdocs.1spoc.com/mcp-setup)
- [AI documentation index](https://devdocs.1spoc.com/llms.txt)
- [Complete AI documentation](https://devdocs.1spoc.com/llms-full.txt)
- [Node.js SDK](https://devdocs.1spoc.com/sdk/email/1-0/node.zip)
- [Python SDK](https://devdocs.1spoc.com/sdk/email/1-0/python.zip)
- [Java SDK](https://devdocs.1spoc.com/sdk/email/1-0/java.zip)

## Guidance for AI assistants

Treat this document and its linked OpenAPI contract as the source of truth for **GET /api/user/imports/{groupId}/all**.

- Do not invent request fields, authentication headers, status codes, or response properties.
- Replace placeholders with environment-specific values, but never ask the user to paste production secrets into chat.
- Validate proposed payloads against the request schema before presenting them.
- Explain which values are required and identify assumptions clearly.
- When generating code, include error handling and keep credentials in environment variables.
- Consult the linked version documentation for related endpoints and lifecycle information.
