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

# List Contact Properties

> List all contact properties defined in your account using the AutoSend API.

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url https://api.autosend.com/v1/contact-properties \
    --header 'Authorization: Bearer <token>'
  ```

  ```python Python theme={null}
  import requests

  url = "https://api.autosend.com/v1/contact-properties"

  headers = {
      "Authorization": "Bearer <token>"
  }

  response = requests.get(url, headers=headers)
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.autosend.com/v1/contact-properties", {
    method: "GET",
    headers: {
      Authorization: "Bearer <token>",
    },
  });

  const data = await response.json();
  console.log(data);
  ```

  ```php PHP theme={null}
  <?php
  $curl = curl_init();

  curl_setopt_array($curl, [
    CURLOPT_URL => "https://api.autosend.com/v1/contact-properties",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
      "Authorization: Bearer <token>",
    ],
  ]);

  $response = curl_exec($curl);
  curl_close($curl);

  echo $response;
  ```

  ```go Go theme={null}
  package main

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

  func main() {
    req, _ := http.NewRequest("GET", "https://api.autosend.com/v1/contact-properties", nil)
    req.Header.Set("Authorization", "Bearer <token>")

    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()

    body, _ := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
  }
  ```

  ```java Java theme={null}
  import java.net.URI;
  import java.net.http.HttpClient;
  import java.net.http.HttpRequest;
  import java.net.http.HttpResponse;

  public class Main {
    public static void main(String[] args) throws Exception {
      HttpClient client = HttpClient.newHttpClient();

      HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.autosend.com/v1/contact-properties"))
        .header("Authorization", "Bearer <token>")
        .GET()
        .build();

      HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
      System.out.println(response.body());
    }
  }
  ```

  ```ruby Ruby theme={null}
  require "net/http"
  require "uri"

  uri = URI.parse("https://api.autosend.com/v1/contact-properties")
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true

  request = Net::HTTP::Get.new(uri)
  request["Authorization"] = "Bearer <token>"

  response = http.request(request)
  puts response.body
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "message": "Contact properties retrieved successfully",
    "data": {
      "contactProperties": [
        {
          "id": "69c258bae3e715c0521153fb",
          "name": "isVerified",
          "type": "boolean",
          "fieldName": "isVerified",
          "fieldType": "boolean",
          "createdAt": "2026-03-24T09:26:18.826Z",
          "updatedAt": "2026-03-24T09:26:18.826Z"
        },
        {
          "id": "6960953e729f65f154369408",
          "name": "company",
          "type": "string",
          "fieldName": "company",
          "fieldType": "string",
          "createdAt": "2026-01-09T05:42:22.171Z",
          "updatedAt": "2026-01-09T05:42:22.171Z"
        }
      ]
    }
  }
  ```
</ResponseExample>

### Authorizations

<ParamField path="Authorizations" type="string | header" required>
  Bearer authentication header of the form Bearer `<token>`, where `<token>` is your auth token.
</ParamField>

### Query Parameters

<ParamField query="includeReservedFields" type="boolean">
  Whether to include built-in reserved fields (email, firstName, lastName, createdAt, userId) in the response. Defaults to `true`.
</ParamField>

### Response

<span className="text-sm">Contact properties retrieved successfully</span>

<ResponseField name="success" type="boolean">
  Indicates whether the request was successful.
</ResponseField>

<ResponseField name="message" type="string">
  Confirmation message.

  Example: `"Contact properties retrieved successfully"`
</ResponseField>

<ResponseField name="data" type="object">
  <Expandable title="data">
    <ResponseField name="data.contactProperties" type="array">
      Array of contact property objects.

      <Expandable title="contactProperty">
        <ResponseField name="id" type="string">
          Unique identifier of the contact property.
        </ResponseField>

        <ResponseField name="name" type="string">
          The programmatic name of the contact property.
        </ResponseField>

        <ResponseField name="type" type="string">
          The data type: `string`, `number`, `boolean`, or `date`.
        </ResponseField>

        <ResponseField name="fieldName" type="string">
          Legacy alias of `name`, returned for backward compatibility.
        </ResponseField>

        <ResponseField name="fieldType" type="string">
          Legacy alias of `type`, returned for backward compatibility.
        </ResponseField>

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

        <ResponseField name="updatedAt" type="string">
          ISO 8601 timestamp when the property was last updated.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>


## OpenAPI

````yaml GET /contact-properties
openapi: 3.1.0
info:
  title: Contact Properties API
  description: >-
    API for managing contact properties in an Autosend project. Contact
    properties let you define dynamic attributes that are attached to every
    contact in your project. Reserved built-in property names cannot be used
    when creating contact properties. Contact properties were previously called
    custom fields; the `/custom-fields` endpoints remain available as a
    deprecated alias.
  version: 1.0.0
servers:
  - url: https://api.autosend.com/v1
security:
  - bearerAuth: []
paths:
  /contact-properties:
    get:
      summary: List Contact Properties
      description: >-
        Returns all contact properties defined for the authenticated project.
        Pass `includeReservedFields=false` to omit the built-in fields (email,
        firstName, lastName, createdAt, userId) from the response.
components: {}

````