Skip to content
On this page

Services

Use services to integrate with an external provider, such as Mailchimp. We currently support only a limited number but can add more. Simply get in touch.

They are used by hooks so if you would like to create a hook that uses an external provider, you will need to add that provider here first.

You can manage your services by making the following requests:

GET /services

Example request

shell
curl \
-H "Authorization: Bearer YOUR-API-KEY" \
"https://api.vidbeo.com/v2/services"

Example response

json
{
  "success": true,
  "result": [
    {
      "id": "abcde12345abcde12345a",
      "name": "YouTube",
      "provider": "youtube",
      "authentication": "oauth2",
      "permissions": [],
      "api_email": "",
      "api_key": "",
      "oauth2_grant_type": "authorization_code",
      "oauth2_authorized": false,
      "created_by": "abcde12345abcde12345a",
      "created_time": "2022-01-01T00:00:00.000Z",
      "updated_by": "abcde12345abcde12345a",
      "updated_time": "2022-01-01T00:00:00.000Z"
    }
  ],
  "links": {},
  "errors": []
}

Optional parameters (query string)

NameTypeDefaultInformation
limitString25Maximum number to return
cursorString""Used to get the next page of results: if applicable we return this as part of the links.next URL

GET /services/:id

Example request

shell
curl \
-H "Authorization: Bearer YOUR-API-KEY" \
"https://api.vidbeo.com/v2/services/abcde12345abcde12345a"

Example response

json
{
  "success": true,
  "result": {
    "id": "abcde12345abcde12345a",
    "name": "YouTube",
    "provider": "youtube",
    "authentication": "oauth2",
    "permissions": [],
    "api_email": "",
    "api_key": "",
    "oauth2_grant_type": "authorization_code",
    "oauth2_authorized": false,
    "created_by": "abcde12345abcde12345a",
    "created_time": "2022-01-01T00:00:00.000Z",
    "updated_by": "abcde12345abcde12345a",
    "updated_time": "2022-01-01T00:00:00.000Z"
  },
  "links": null,
  "errors": []
}

Response format

KeyTypeDescription
idStringThe unique identifier given to this service
nameStringThe name of this service (a short label for it)
providerStringThe company providing the service. We support:
"mailchimp"
"campaign_monitor"
"youtube"
authenticationStringHow requests should be authenticated. All providers currently use "oauth2"
permissionsArrayIf applicable to the service provider, the permissions we asked for (as an array of strings)
api_emailStringCurrently N/A
api_keyStringCurrently N/A
oauth2_grant_typeStringWe currently only support the "authoriztion_code" OAuth2 flow and so will set this
oauth2_authorizedBooleanWe set this as true once the connection to your provider's account is approved
created_byStringThe ID of the user who created it (if known)
created_timeStringThe date and time it was created
updated_byStringThe ID of the user who last modified it (if known)
updated_timeStringThe date and time it was last modified

PATCH /services/:id

The body of the request should contain one, or more, attributes that you would like to update for the service.

Example request

shell
curl \
-g \
-H "Authorization: Bearer YOUR-API-KEY" \
-H "Content-Type: application/json" \
-X PATCH \
-d '{"name":"New name"}' \
"https://api.vidbeo.com/v2/services/abcde12345abcde12345a"

Example response

json
{
  "success": true,
  "result": {
    "id": "abcde12345abcde12345a",
    "name": "New name",
    "provider": "youtube",
    "authentication": "oauth2",
    "permissions": ["https://www.googleapis.com/auth/youtube.upload"],
    "api_email": "",
    "api_key": "",
    "oauth2_grant_type": "authorization_code",
    "oauth2_authorized": false,
    "created_by": "abcde12345abcde12345a",
    "created_time": "2022-01-01T00:00:00.000Z",
    "updated_by": "abcde12345abcde12345a",
    "updated_time": "2022-01-01T00:00:00.000Z"
  },
  "links": null,
  "errors": []
}

DELETE /services/:id

Example request

shell
curl \
-H "Authorization: Bearer YOUR-API-KEY" \
-X DELETE \
"https://api.vidbeo.com/v2/services/abcde12345abcde12345a"

Example response

json
{
  "success": true,
  "result": {},
  "links": null,
  "errors": []
}

POST /services

Required parameters

You must give it a short name and choose the provider to integrate:

KeyTypeDescription
nameStringThe name of the service (1-40 characters)
providerStringWe currently support
"mailchimp"
"campaign_monitor"
"youtube"

We set the other values internally. For example we know the permissions our hooks need and which type of authentication each provider uses. All providers we integrate with currently use oauth2 for authentication.

Example request

shell
curl \
-g \
-H "Authorization: Bearer YOUR-API-KEY" \
-H "Content-Type: application/json" \
-X POST \
-d '{"name":"YouTube","provider":"youtube"}' \
"https://api.vidbeo.com/v2/services"

Example response

json
{
  "success": true,
  "result": {
    "id": "abcde12345abcde12345a",
    "name": "YouTube",
    "provider": "youtube",
    "authentication": "oauth2",
    "permissions": ["https://www.googleapis.com/auth/youtube.upload"],
    "api_email": "",
    "api_key": "",
    "oauth2_grant_type": "authorization_code",
    "oauth2_authorized": false,
    "created_by": "abcde12345abcde12345a",
    "created_time": "2022-01-01T00:00:00.000Z",
    "updated_by": "abcde12345abcde12345a",
    "updated_time": "2022-01-01T00:00:00.000Z"
  },
  "links": null,
  "errors": []
}