# Attio

### Overview

The Stacksync Attio API Proxy provides centralized access to Attio APIs through a single HTTPS endpoint.\
You authenticate with your Stacksync service token. Stacksync manages the underlying Attio OAuth connection.

Use it for on‑demand operational tasks and low‑volume reads/writes.\
For continuous, high‑volume sync, use Stacksync Syncs instead.

Operations:

* [Pass Through](#pass-through)

### Pass Through

Use the Attio Pass Through operation when you need flexible, low‑level access to the Attio API beyond what the higher‑level proxy endpoints provide. It is a good fit for advanced or less common use cases, such as working with newly released endpoints, niche resources, or operations that are not yet modeled as first‑class methods in Stacksync.

Because authentication and routing are handled by Stacksync, your services, scripts, and internal tools can call Attio securely using a single integration pattern, without embedding Attio credentials or managing OAuth flows in each system.

```bash
curl -X [GET | POST | PUT | PATCH | DELETE] 
https://eu.api-proxy.stacksync.com/v1/proxy/INSERT_REQUEST_URL_HERE \
-H "Authorization: Bearer your_api_proxy_service_token" \
-d 'Optional'
```

Example request:

**Get Attio Objects**

{% tabs %}
{% tab title="cURL" %}

```url
curl -X GET https://eu.api-proxy.stacksync.com/v1/proxy/https://api.attio.com/v2/objects \
        -H "Authorization: Bearer your_api_proxy_service_token" \
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

url = "https://eu.api-proxy.stacksync.com/v1/proxy/https://api.attio.com/v2/objects"

headers = {
    "Authorization": "Bearer your_api_proxy_service_token",
}

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

{% endtab %}

{% tab title="Javascript" %}

```javascript
const url =
  "https://eu.api-proxy.stacksync.com/v1/proxy/https://api.attio.com/v2/objects";

fetch(url, {
  method: "GET",
  headers: {
    Authorization: "Bearer your_api_proxy_service_token",
  },
})
  .then((r) => r.json())
  .then((json) => console.log(json))
  .catch((e) => console.error(e));
```

{% endtab %}
{% endtabs %}

Example response:

```json
{
	"data": [
		{
			"api_slug": "subscriptions",
			"created_at": "2024-07-27T16:08:23.773000000Z",
			"id": {
				"object_id": "fdfcc8f8-8c1e-4ad0-b20e-1b4930b8a1cb",
				"workspace_id": "0d9fb69e-fa23-46c7-8816-8fa0d32ee4e2"
			},
			"plural_noun": "Subscriptions",
			"singular_noun": "Subscription"
		},
		{
			"api_slug": "people",
			"created_at": "2024-07-22T17:54:44.560000000Z",
			"id": {
				"object_id": "5bef7430-3f17-40d7-b88c-02bcbcb658ca",
				"workspace_id": "25d9671a-b1f1-48d8-81a2-6a214e8b04bd"
			},
			"plural_noun": "People",
			"singular_noun": "Person"
		}
	]
}
```
