# Export responses for form

GET /forms/{form}/responses/export. Parameters, permissions, request and response schemas.

`GET /forms/{form}/responses/export`

Export responses for form. Requires the REST `read` token ability. The bearer token selects the Team; a supplied team\_id cannot switch tenants. Additional role, entity-policy and plan requirements vary by operation.

## Authentication

Use a team API key as `Authorization: Bearer YOUR_API_KEY`. The token ability and the user’s role must both allow this operation. See [authentication](https://conversionlab.app/docs/developer/authentication).

```json
{
  "ability": "read",
  "team": "Token-bound Team",
  "authorization": "Additional role, entity-policy and plan requirements vary by operation."
}
```

## Parameters

| Name             | Location | Required | Description      |
| ---------------- | -------- | -------- | ---------------- |
| `form`           | path     | Yes      | The form ID      |
| `format`         | query    | Yes      | Format.          |
| `filter[status]` | query    | No       | Filter\[Status]. |

### form

```json
{
  "type": "integer",
  "minimum": 1
}
```

### format

```json
{
  "type": "string",
  "enum": [
    "csv",
    "xlsx"
  ]
}
```

### filter\[status]

```json
{
  "anyOf": [
    {
      "type": "string",
      "enum": [
        "partial",
        "submitted"
      ],
      "title": "FormResponseStatus"
    },
    {
      "type": "null"
    }
  ]
}
```

## Example request

```bash
curl --request GET 'https://api.example.test/api/forms/1/responses/export?format=csv' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Accept: application/json'
```

Examples use fictional data. Replace resource IDs and the API host with your environment’s values.

## Responses

### 200

Successful response.

Response headers:

```json
{
  "Transfer-Encoding": {
    "required": true,
    "schema": {
      "type": "string",
      "enum": [
        "chunked"
      ]
    }
  }
}
```

Content type: `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`.

```json
{
  "type": "string",
  "format": "binary"
}
```

Content type: `text/csv; charset=UTF-8`.

```json
{
  "type": "string",
  "format": "binary"
}
```

### 401

Unauthenticated

Content type: `application/json`.

```json
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "Error overview."
    }
  },
  "required": [
    "message"
  ]
}
```

```json
{
  "message": "The request could not be completed."
}
```

### 403

Authorization error

Content type: `application/json`.

```json
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "Error overview."
    }
  },
  "required": [
    "message"
  ]
}
```

```json
{
  "message": "The request could not be completed."
}
```

### 404

Not found

Content type: `application/json`.

```json
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "Error overview."
    }
  },
  "required": [
    "message"
  ]
}
```

```json
{
  "message": "The request could not be completed."
}
```

### 422

Validation error

Content type: `application/json`.

```json
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "Errors overview."
    },
    "errors": {
      "type": "object",
      "description": "A detailed description of each field that failed validation.",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    }
  },
  "required": [
    "message",
    "errors"
  ]
}
```

```json
{
  "message": "The request could not be completed.",
  "errors": {
    "name": [
      "The name field is required."
    ]
  }
}
```

### 429

Rate limit exceeded. Honor Retry-After before retrying.

Response headers:

```json
{
  "Retry-After": {
    "description": "Seconds before retrying.",
    "schema": {
      "type": "integer"
    }
  }
}
```

Content type: `application/json`.

```json
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "example": "Too Many Attempts."
    }
  },
  "required": [
    "message"
  ]
}
```

```json
{
  "message": "Too Many Attempts."
}
```

See [API conventions](https://conversionlab.app/docs/developer/api-conventions) for error handling, rate limits, pagination, and uploads.
