API Docs / Make.com Integration

Make.com Integration

Step-by-step guide to using the Tuberalytics API with Make.com's HTTP module. No coding required — build automated YouTube research workflows entirely in Make.

Prerequisites

  • A Tuberalytics account with an API key (generate one at API Keys)
  • A Make.com account (free tier works for testing)

Setting Up Authentication

Every Tuberalytics API call requires a Bearer token. Configure it once and reuse it across all HTTP modules in your scenario.

  1. Add an HTTP > Make a request module to your scenario
  2. Click Add a header under the Headers section
  3. Set the header:
    • Name: Authorization
    • Value: Bearer sk_live_your_api_key
  4. Also add a second header:
    • Name: Content-Type
    • Value: application/json

Tip: Store your API key in a Make.com data store or connection variable so you don't hard-code it in every module.


Example 1: Search for Channels

Search for YouTube channels in a niche and parse the results.

Step 1: Configure the HTTP Module

  1. Add an HTTP > Make a request module
  2. Configure it:
    • URL: https://tuberalytics.com/api/v1/channels/search?q=ai+automation
    • Method: GET
    • Headers: Authorization and Content-Type (as above)
  3. Click OK and Run once to test

Step 2: Parse the Response

The module returns a JSON response. Access the data using Make's dot notation:

  • data[] — array of channel objects
  • data[].id — channel ID (use this for follow-up API calls)
  • data[].title — channel name
  • data[].subscriber_count — subscriber count
  • meta.total_count — total matching channels
  • meta.total_pages — number of pages available

Example Response

{
  "data": [
    {
      "id": 170,
      "title": "Nick Saraev",
      "youtube_id": "UCxxxx",
      "subscriber_count": 250000,
      "video_count": 180
    }
  ],
  "meta": {
    "current_page": 1,
    "per_page": 25,
    "total_pages": 3,
    "total_count": 62
  }
}

Example 2: Trigger a Channel Analysis

Analyze a channel using Tuberalytics AI. This is an async operation — the API returns 202 Accepted immediately and processes the analysis in the background.

This example assumes you already have a channel ID — either from a search result (Example 1), or from adding a channel to tracking via POST /api/v1/me/channels.

Step 1: Send the Analysis Request

  1. Add an HTTP > Make a request module
  2. Configure it:
    • URL: https://tuberalytics.com/api/v1/channels/{{channel_id}}/analyze — replace {{channel_id}} with the channel's ID from a previous module (e.g., map data[].id from a search result)
    • Method: POST
    • Headers: Authorization and Content-Type
    • Body: (leave empty — no body required)
  3. Run the module

Response

{
  "data": {
    "status": "pending",
    "analysis_id": 456,
    "message": "Channel analysis queued."
  }
}

Step 2: Wait for Completion

You have two options:

Option A: Webhook trigger. Set up a Webhook endpoint and use Make's Webhooks > Custom webhook module as the scenario trigger. Tuberalytics sends a channel.analysis.completed event when the analysis finishes.

Option B: Polling. Add a Sleep module (wait 30–60 seconds), then use an HTTP module to fetch the channel profile at GET /api/v1/channels/170/profile. If the profile exists, the analysis is complete.

Recommended: Use webhooks for real-time notifications. Polling works but wastes scenario operations.


Example 3: Multi-Step Scenario

Build a complete workflow: search channels in a niche, get details for each one, and log the results to Google Sheets.

Scenario Flow

  1. HTTP > Make a request — Search channels: GET /api/v1/channels/search?q=productivity&per_page=10
  2. Iterator — Loop over data[] array from the search results
  3. HTTP > Make a request — Get channel details: GET /api/v1/channels/{{item.id}}
  4. HTTP > Make a request — Get channel profile: GET /api/v1/channels/{{item.id}}/profile
  5. Google Sheets > Add a row — Write channel data to a spreadsheet

Configuration Details

Iterator module:

  • Set the Array field to data from the search response

Channel details module:

  • Set the URL to https://tuberalytics.com/api/v1/channels/{{2.id}} (where 2 is the Iterator's bundle number)

Google Sheets module:

  • Map fields: channel title, subscriber count, content style, title formulas, etc.

Working with Pagination

To process all pages of results, use a loop pattern.

Pattern: Pagination Loop

  1. Set variablepage = 1
  2. HTTP > Make a requestGET /api/v1/channels/search?q=ai+automation&page={{page}}&per_page=100
  3. Iterator — Loop over data[]
  4. Your processing module(s) — Do something with each channel
  5. Set variablepage = {{page + 1}}
  6. Router — Check if page <= meta.total_pages. If yes, loop back to step 2. If no, end.

Tip: Set per_page=100 (the maximum) to minimize the number of API calls. This helps stay within rate limits.


Error Handling

Rate Limit Errors (429)

If you exceed the rate limit, the API returns HTTP 429. Handle this gracefully:

  1. Right-click the HTTP module and select Add error handler
  2. Add a Sleep module in the error handler path
  3. Set the sleep duration to 60 seconds (rate limits reset per minute)
  4. Add a Resume directive after the sleep to retry the request

Other Errors

Status Meaning Action
401 Invalid API key Check your Authorization header
404 Resource not found Verify the channel/niche ID exists
422 Validation error Check the error field in the response
429 Rate limit exceeded Wait and retry (see above)
500 Server error Retry after a short delay

Tips and Best Practices

  • Schedule scenarios wisely. Running every 15 minutes is usually sufficient for monitoring. Avoid running every minute — it burns through API quota quickly.
  • Use data stores to cache channel IDs and avoid redundant lookups. Store the channel ID after the first search, then reference it directly in subsequent runs.
  • Batch operations. When processing multiple channels, use per_page=100 and process all results before fetching the next page.
  • Use webhooks as triggers. Instead of polling, create a webhook endpoint and use Make's Custom webhook trigger. This is more efficient and gives you real-time notifications.
  • Map only what you need. When connecting to Google Sheets or other destinations, only map the fields you actually need. This makes scenarios easier to maintain.
  • Test with Run Once first. Always test individual modules with "Run once" before enabling the full scenario schedule.