Skip to main content
GET
/
providers
/
{provider}
Get provider
curl --request GET \
  --url https://api.withampersand.com/v1/providers/{provider}
import requests

url = "https://api.withampersand.com/v1/providers/{provider}"

response = requests.get(url)

print(response.text)
const options = {method: 'GET'};

fetch('https://api.withampersand.com/v1/providers/{provider}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.withampersand.com/v1/providers/{provider}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

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

func main() {

url := "https://api.withampersand.com/v1/providers/{provider}"

req, _ := http.NewRequest("GET", url, nil)

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.withampersand.com/v1/providers/{provider}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.withampersand.com/v1/providers/{provider}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
{
  "name": "<string>",
  "baseURL": "<string>",
  "defaultModule": "<string>",
  "support": {
    "bulkWrite": {
      "insert": true,
      "update": true,
      "upsert": true,
      "delete": true
    },
    "proxy": true,
    "read": true,
    "subscribe": true,
    "write": true,
    "delete": true,
    "search": {
      "operators": {
        "equals": true
      }
    },
    "subscribeSupport": {
      "create": true,
      "update": true,
      "delete": true,
      "passThrough": true
    },
    "batchWrite": {
      "delete": {
        "supported": true,
        "defaultRecordLimit": 123,
        "objectRecordLimits": {}
      },
      "create": {
        "supported": true,
        "defaultRecordLimit": 123,
        "objectRecordLimits": {}
      },
      "update": {
        "supported": true,
        "defaultRecordLimit": 123,
        "objectRecordLimits": {}
      },
      "upsert": {
        "supported": true,
        "defaultRecordLimit": 123,
        "objectRecordLimits": {}
      }
    }
  },
  "oauth2Opts": {
    "tokenURL": "https://login.salesforce.com/services/oauth2/token",
    "explicitScopesRequired": true,
    "explicitWorkspaceRequired": true,
    "tokenMetadataFields": {
      "workspaceRefField": "account-id",
      "consumerRefField": "user-id",
      "scopesField": "scopes",
      "otherFields": [
        {
          "name": "<string>",
          "displayName": "<string>",
          "path": "owner.siteId",
          "capture": "https:\\/\\/(?<result>[^.]+)\\.docusign\\.net"
        }
      ]
    },
    "authURL": "https://login.salesforce.com/services/oauth2/authorize",
    "audience": [
      "https://api.mparticle.com"
    ],
    "scopeMappings": {
      "default": "https://{{.workspace}}.api.com/default"
    },
    "docsURL": "https://docs.example.com/client-credentials",
    "authURLParams": {
      "access_type": "offline",
      "duration": "permanent"
    },
    "accessTokenOpts": {
      "attachmentType": "accessTokenHeaderAttachment",
      "header": {
        "name": "X-Access-Token",
        "valuePrefix": "Bearer "
      },
      "docsURL": "https://docs.example.com/oauth2-access-token-usage"
    }
  },
  "apiKeyOpts": {
    "query": {
      "name": "api_key"
    },
    "header": {
      "name": "X-Api-Key",
      "valuePrefix": "Bearer "
    },
    "docsURL": "https://docs.example.com/api-key"
  },
  "basicOpts": {
    "apiKeyAsBasic": true,
    "apiKeyAsBasicOpts": {
      "fieldUsed": "username",
      "keyFormat": "api:%s"
    },
    "docsURL": "https://docs.example.com/api-key"
  },
  "customOpts": {
    "headers": [
      {
        "name": "X-Custom-Auth",
        "valueTemplate": "Bearer {{ .token }}"
      }
    ],
    "queryParams": [
      {
        "name": "custom_auth",
        "valueTemplate": "{{ .token }}"
      }
    ],
    "inputs": [
      {
        "name": "custom_auth_input",
        "displayName": "Custom Auth Input",
        "prompt": "See Authorization section of provider docs to obtain this value",
        "docsURL": "https://docs.example.com/custom-auth-input"
      }
    ]
  },
  "authHealthCheck": {
    "url": "https://api.example.com/health-check",
    "method": "GET",
    "successStatusCodes": [
      200,
      204
    ]
  },
  "displayName": "Zendesk Chat",
  "postAuthInfoNeeded": true,
  "media": {
    "regular": {
      "iconURL": "https://example.com/icon.png",
      "logoURL": "https://example.com/logo.png"
    },
    "darkMode": {
      "iconURL": "https://example.com/icon.png",
      "logoURL": "https://example.com/logo.png"
    }
  },
  "labels": {},
  "subscribeRequirements": {
    "registration": true,
    "maintenance": true,
    "postProcess": true
  },
  "modules": {},
  "metadata": {
    "input": [
      {
        "name": "<string>",
        "displayName": "<string>",
        "prompt": "<string>",
        "defaultValue": "<string>",
        "docsURL": "https://example.com/how-to-find-subdomain",
        "moduleDependencies": {}
      }
    ],
    "postAuthentication": [
      {
        "name": "<string>",
        "moduleDependencies": {}
      }
    ]
  },
  "providerAppMetadata": {
    "authQueryParams": [
      {
        "name": "<string>",
        "displayName": "<string>",
        "prompt": "<string>",
        "defaultValue": "<string>",
        "docsURL": "https://example.com/how-to-find-subdomain",
        "moduleDependencies": {}
      }
    ],
    "providerParams": [
      {
        "name": "<string>",
        "displayName": "<string>",
        "prompt": "<string>",
        "defaultValue": "<string>",
        "docsURL": "https://example.com/how-to-find-subdomain",
        "moduleDependencies": {}
      }
    ]
  }
}
{
"type": "urn:problem-type:exampleOrganization:exampleProblem",
"href": "https://www.belgif.be/specification/rest/api-guide/#standardized-problem-types",
"title": "Description of the type of problem that occurred",
"status": 400,
"detail": "Description of specific occurrence of the problem",
"instance": "urn:uuid:123e4567-e89b-12d3-a456-426614174000"
}

Path Parameters

provider
string
required

The provider name (e.g. salesforce, hubspot).

Response

The requested provider.

name
string
required
authType
enum<string>
required

The type of authentication required by the provider.

Available options:
oauth2,
apiKey,
basic,
jwt,
custom,
none
baseURL
string
required

The base URL for making API requests.

defaultModule
string
required
support
Support · object
required

The supported features for the provider.

oauth2Opts
OAuth2 Options · object

Configuration for OAuth2.0. Must be provided if authType is oauth2.

apiKeyOpts
API Key Options · object

Configuration for API key. Must be provided if authType is apiKey.

basicOpts
Basic Auth Options · object

Configuration for Basic Auth. Optional.

customOpts
Custom Auth Options · object

Configuration for custom auth. Optional.

authHealthCheck
Auth Health Check · object

A URL to check the health of a provider's credentials. It's used to see if the credentials are valid and if the provider is reachable.

displayName
string

The display name of the provider, if omitted, defaults to provider name.

Example:

"Zendesk Chat"

postAuthInfoNeeded
boolean

If true, we require additional information after auth to start making requests.

Example:

true

media
Media · object
labels
Labels · object
subscribeRequirements
Subscribe Requirements · object

Declares which auxiliary steps a provider requires to support subscriptions, beyond the per-object subscribe call itself.

modules
Modules that this provider supports · object

The registry of provider modules.

metadata
Provider Metadata · object

Provider metadata that needs to be given by the user or fetched by the connector post authentication for the connector to work.

providerAppMetadata
Provider App Metadata · object

Describes the provider-app-level fields that the Ampersand dashboard should collect from the builder when creating a ProviderApp for this provider. These descriptors tell the dashboard which form fields to render; the submitted values are stored in ProviderApp.metadata.