# Service Configuration

{% hint style="warning" %}
Only users with admin scope can use these endpoints.
{% endhint %}

## Get Services Configuration

<mark style="color:blue;">`GET`</mark> `/service-config`

Get a list of stored configurations.

#### Query Parameters

| Name    | Type   | Description                                                                                                |
| ------- | ------ | ---------------------------------------------------------------------------------------------------------- |
| pattern | string | A term to filter configurations containing pattern on their service id                                     |
| sort    | string | Sorting parameter. Service id can be used to sort results alphabetically by their id. Example: serviceId:1 |
| offset  | number | Index of the first item returned. Default is 0. Useful for paging.                                         |
| limit   | number | Maximum items returned. Default is 100. Useful for paging.                                                 |

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

```
[
	{
		"serviceId": "appmixer:google",
		"clientID": "my-global-client-id",
		"clientSecret": "my-global-client-secret"
	},
	{
		"serviceId": "appmixer:evernote",
		"sandbox": true,
	}
]
```

{% endtab %}
{% endtabs %}

## Get Service Configuration

<mark style="color:blue;">`GET`</mark> `/service-config/:serviceId`

Get the configuration stored for the given service.

#### Path Parameters

| Name | Type   | Description                              |
| ---- | ------ | ---------------------------------------- |
|      | string | The service id. Example: appmixer:google |

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

```
{
	"serviceId": "appmixer:google",
	"clientID": "my-global-client-id",
	"clientSecret": "my-global-client-secret"
}
```

{% endtab %}
{% endtabs %}

## Create Service Configuration

<mark style="color:green;">`POST`</mark> `/service-config`

Creates a new configuration for a service. The only required parameter on the payload is the *serviceId*. The rest of the payload can be any key/value pairs that will be the desired configuration for the service. For example:\
\
`{`\
`"serviceId": "appmixer:google",`\
`"clientID": "my-global-client-id",`\
`"clientSecret": "my-global-client-secret"`\
`}`

#### Request Body

| Name      | Type   | Description                                                                        |
| --------- | ------ | ---------------------------------------------------------------------------------- |
| whatever  | string | Any value for the whatever-key                                                     |
| serviceId | string | The serviceId. It should be in the form `vendor:service`. Example: appmixer:google |

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

```
{
	"serviceId": "appmixer:google",
	"clientID": "my-global-client-id",
	"clientSecret": "my-global-client-secret"
}
```

{% endtab %}
{% endtabs %}

## Update Service Configuration

<mark style="color:orange;">`PUT`</mark> `/service-config/:serviceId`

Updates the stored configuration for the given service. The payload should contain the whole configuration, as the payload content will overwrite the configuration stored under the service.

#### Path Parameters

| Name      | Type   | Description             |
| --------- | ------ | ----------------------- |
| serviceId | string | The service id. Example |

#### Request Body

| Name         | Type   | Description        |
| ------------ | ------ | ------------------ |
| whatever-key | string | Any value you need |

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

```
{
	"serviceId": "appmixer:google",
	"clientID": "my-global-client-id",
	"clientSecret": "my-global-client-secret"
}
```

{% endtab %}
{% endtabs %}

## Delete Service Configuration

<mark style="color:red;">`DELETE`</mark> `/service-config/:serviceId`

Removes the configuration from the given service.

#### Path Parameters

| Name      | Type   | Description                              |
| --------- | ------ | ---------------------------------------- |
| serviceId | string | The service id. Example: appmixer:google |

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

```
{}
```

{% endtab %}
{% endtabs %}
