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

# List connection types

> List every connection type Markifact supports and how each one can be authenticated.

Returns every connection type Markifact supports, with how each one can be authenticated and, for types that accept credentials, the fields they expect.

Read `auth_methods` to decide which endpoint to call:

| `auth_methods` contains | How to connect |
| - | - |
| `oauth` | [Create an auth link](/api-reference/connections/create-auth-link) and send your user through it. |
| `manual` | [Create the connection directly](/api-reference/connections/create-connection) by posting the `credential_fields`. |

Where each credential actually comes from is explained on the page at `docs_url`. It is served as plain markdown, so an agent can fetch and read it as is.

A type listing both can be connected either way. Using your own platform app on those channels is a [white-label connection](/core-concepts/white-label-connections), so your clients never see Markifact in their account.

## Endpoint

```http theme={"dark"}
GET /v1/connections/types
```

## Example Request

```bash theme={"dark"}
curl https://api.markifact.com/v1/connections/types \
  -H "Authorization: Bearer YOUR_API_KEY"
```

## Response

```json theme={"dark"}
[
  {
    "type": "gads",
    "name": "Google Ads",
    "auth_methods": ["oauth", "manual"],
    "credential_fields": ["client_id", "client_secret", "refresh_token"],
    "docs_url": "https://docs.markifact.com/nodes/gads/gads_custom_app.md"
  },
  {
    "type": "meta_ads",
    "name": "Meta Ads",
    "auth_methods": ["oauth", "manual"],
    "credential_fields": ["access_token"],
    "docs_url": "https://docs.markifact.com/nodes/meta_ads/meta_ads_custom_app.md"
  },
  {
    "type": "shopify",
    "name": "Shopify",
    "auth_methods": ["manual"],
    "credential_fields": ["store_id", "client_id", "client_secret"],
    "docs_url": null
  },
  {
    "type": "hubspot",
    "name": "HubSpot",
    "auth_methods": ["oauth"],
    "credential_fields": null,
    "docs_url": null
  }
]
```

## Fields

| Field | Type | Description |
| - | - | - |
| `type` | string | The value to use as `connection_type` when creating a connection or an auth link. |
| `name` | string | Human-readable connection type name. |
| `auth_methods` | array | Any of `oauth` and `manual`. An empty array means the type is connected through its own flow and neither endpoint applies. |
| `credential_fields` | array, null | The exact keys to send under `credentials`, in the order the Markifact app asks for them. Null for types that take no credentials. |
| `docs_url` | string, null | A plain-markdown page explaining where each credential comes from. Fetch it directly; it needs no scraping. Null for types that have no page yet. |


## OpenAPI

````yaml GET /v1/connections/types
openapi: 3.1.0
info:
  title: Markifact API
  version: 1.0.0
  description: API for managing Markifact workspace connections.
servers:
  - url: https://api.markifact.com
security:
  - bearerAuth: []
paths:
  /v1/connections/types:
    get:
      tags:
        - Connections
      summary: List connection types
      description: >-
        List every connection type Markifact supports, with how each one can be
        authenticated and, for manual types, the credential fields it expects.
      operationId: listConnectionTypes
      responses:
        '200':
          description: Connection types returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConnectionType'
components:
  schemas:
    ConnectionType:
      type: object
      properties:
        type:
          type: string
        name:
          type: string
        auth_methods:
          type: array
          items:
            type: string
            enum:
              - oauth
              - manual
          description: >-
            How this type can be authenticated. An "oauth" type accepts a shared
            auth link; a "manual" type is created by posting credentials to POST
            /v1/connections. A type listing both can be connected either way,
            and using your own app there is a white-label connection.
        credential_fields:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Credential field names a manual connection of this type expects.
            Null for types that take no credentials: OAuth-only types, and the
            ones connected only in the Markifact app.
        docs_url:
          type:
            - string
            - 'null'
          format: uri
          description: >-
            Plain-markdown page explaining where each credential comes from,
            suitable for an agent to read directly. Null for types that have no
            page yet.
          example: https://docs.markifact.com/nodes/meta_ads/meta_ads_custom_app.md
      required:
        - type
        - name
        - auth_methods
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.