---
title: "Catalogue of available integration providers"
method: GET
path: "/integration_providers"
tags: ["integrations"]
---

# Catalogue of available integration providers

`GET /integration_providers`

## Request

- Base URL: `https://api.planvortex.com/v1.0.0`
- URL: `https://api.planvortex.com/v1.0.0/integration_providers`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (client credentials, token URL `https://api.planvortex.com/v1.0.0/oauth/token`)

What every provider is and what it can do: whether it has an OAuth token behind it, whether it connects with a link (and what that link needs first), whether it contributes files to the library, whether it is polled for content, whether it has a product catalogue, which file formats it accepts and which fields its configuration form takes.

Consume this instead of hardcoding a provider list: a new provider shows up here without any client change.

## Response `200`

Successful operation

- object
  - `providers` IntegrationsIntegrationProvider[], required
    - `provider` 'google_drive' | 'rss' | 'woocommerce', required
    - `requires_oauth` boolean, required: true = there is an OAuth token behind the connection (Google Drive): connect with `connect_link` + `code`, one per organization and provider. false = no token to renew. **Having a link is not being OAuth**: read `connect_link` for that.
    - `connect_link` boolean, required: Can be connected by sending the user to `GET .../integrations/{provider}/connect_link`: Google Drive (its OAuth) and WooCommerce (the store's approval button, which creates the key without anyone copying it). A provider with a link can ALSO have `config_fields`: a WooCommerce store accepts API keys by hand too.
    - `connect_link_fields` IntegrationsIntegrationFormField[], required: What `connect_link` needs in its query before it can build the link: the store `url` on WooCommerce, because the link points at the store's own WordPress. Empty on Google Drive.
      - `name` string, required
      - `type` 'url' | 'text' | 'textarea' | 'boolean' | 'accounts' | 'select' | 'secret', required: `accounts` is a picker of the organization's accounts. `secret` is a credential (WooCommerce's consumer secret): mask it, never prefill it when editing, and mark the input as a new password (`autocomplete="new-password"`), or the browser's password manager fills it with the user's own PlanVortex password and the store answers `2211`.
      - `required` boolean, required
      - `default` unknown
      - `options` string[]
    - `file_import` boolean, required: Contributes files to the library through POST /uploads/import.
    - `content_feed` boolean, required: Polled by the poll-feeds job, which turns new entries into publications.
    - `catalog` boolean, required: Has a product catalogue: `GET .../integrations/{id_integration}/products`, and a source for the `from_catalog` planner template (`source.id_integration_catalog`). WooCommerce.
    - `accepted_formats` string[], required: File formats accepted at the door. **Empty when `file_import` is false** — that is what `rss` returns, and it does not mean "anything goes". heic/heif are accepted and converted to JPEG on ingestion, so what ends up stored is always jpeg.
    - `config_fields` IntegrationsIntegrationFormField[], required: The connection form. Empty when the provider connects through OAuth alone.
      - `name` string, required
      - `type` 'url' | 'text' | 'textarea' | 'boolean' | 'accounts' | 'select' | 'secret', required: `accounts` is a picker of the organization's accounts. `secret` is a credential (WooCommerce's consumer secret): mask it, never prefill it when editing, and mark the input as a new password (`autocomplete="new-password"`), or the browser's password manager fills it with the user's own PlanVortex password and the store answers `2211`.
      - `required` boolean, required
      - `default` unknown
      - `options` string[]

## Other responses

- `400`: Error. Classify by `code` in the body, never by the HTTP status: every domain error travels with HTTP 400.

---

[API](https://skmtc.dev/planvortex/apis/planvortex-api.md) · [All operations](https://skmtc.dev/planvortex/apis/planvortex-api/llms.txt) · [OpenAPI document](https://skmtc.dev/planvortex/apis/planvortex-api/revisions/abedbbc1cd52?raw)
