LogoLogo
Get support
  • Home
  • Make API
  • Make Bridge
  • White Label
  • MCP Server
  • Make App Academy API
  • Version 0 (no authorization)
  • Version 1 (API key)
  • Version 2 (OAuth2)
  • Version 3
    • Getting started
    • API reference
Powered by GitBook

Resources

  • Academy
  • Community
  • Help Center

Useful links

  • Support
  • Privacy Notice
  • Status Page
  • make.com

Follow us

  • LinkedIn
  • X (Twitter)
  • Facebook
  • Instagram

© 2025 make.com

On this page
Export as PDF
  1. Version 3

API reference

PreviousGetting started

Last updated 2 months ago

Record types

List record types

This endpoint returns the available record types, e.g. movie, organization, person, etc.

Response parameters

Name
Description

name

Name of the record type.

label

Label of the record type.

creatable

The record type supports operation create.

updatable

The record type supports operation update.

readable

The record type supports operation read.

searchable

The record type supports operation search.

searchesIn

The list of parameters to search by in the records of the record type.

deletable

The record type suuports operation delete.

triggerable

The record type supports firing webhooks when a new event is logged.

The record type records the date and time of the event.

Retrieve a record type

This endpoint retrieves the JSON file of a record type. This JSON file contains the list of parameters available in the record type.

Response parameters

Name
Description

name

Name of the parameter.

label

Label of teh parameter.

mandatory

The parameter is mandatory.

readable

The parameter is returned in the response body when the record is fetched.

updatable

The parameter can be used to create/update a record.

refersTo

Name of the record type to which the parameter refers. Only available for the parameters of type ID.

type

JSON type of the parameter, e.g. text, number, array.

nestedParameters

The parameters that are nested to the parameter.

Records

Filtering records

The search records endpoint supports chained filters. The filter is sent in body of the request.

{
    "or":[
        {
            "and":[
                {
                    "property": "name",
                    "startsWith": "R"    
                },
                {
                    "property": "name",
                    "contains": "o"
                }
            ]
        },
        {
            "and":[
                {
                    "property": "name",
                    "startsWith": "G"
                },
                {
                    "property": "name",
                    "contains": "w"
                }
            ]
        }
    ]
}

In addition to chained filters, records can be queried with single filters as well.

{
    "and":[
        {
            "property": "name",
            "startsWith": "R"
        }
    ]
}

Supported operators for filtering

  • startsWith

  • endsWith

  • contains

  • equalsTo

Retrieve a record

Create a record

Each user is granted access to 6 default movie records that cannot be updated or deleted.

Each user can create up to 14 movie records, resulting in 20 retrievable movie records.

Update a record

Only the records created by the user can be updated.

Delete a record

Only the records created by the user can be deleted.

Files/Folders

Retrieve files or folders

Download a file

Delete a file

Upload a file

Each user is granted access to 1 default record that can't be deleted.

Each user can upload up to 1 file, resulting in 2 retrievable files.

The maximum size of a file one can upload to an upload session is 4 bytes. A single request within the upload session cannot exceed 1 byte. Example: If a file has 4 bytes, the file has to be split into 4 separate requests containing a block of data (bytes).

Step one: Open a slot for a file uplod

Open a slot for an upload session and save the file's name and the given file path where the file should be uploaded.

Only one slot can be open at a time. The slot can be open for max 1 minute. The session is dropped if the file upload is not finished by that time or if the upload session ends up with an error.

Step two: Upload the first block of data of the file

Upload the first block of data to an uplaod session.

Step three: Upload the other blocks of data of the file

Append more data to an upload session.

Step four: Upload the last block of data of the file and close the session

Finish the upload session by uploading the last block (byte) of the file's data.

Webhooks

Verification of the webhook

The Make Academy API version 3 uses a digital signature which is generated using the secret key entered when creating a webhook and the body of the webhook’s request. This data is contained within the Signature header.

The header contains the SHA algorithm used to generate the signature. To verify that the request originates from the App Academy API, you'll need to compute the HMAC 256 using your secret key and the body and compare it to the signature contained in the header. The successful matching of these values ensures that the webhook's source is the App Academy API.

Example of computing HMAC 256 in JavaScript

import * as crypto from 'crypto';

function generateHMACSHA256(secretKey: string, data: string): string {
    const hmac = crypto.createHmac('sha256', secretKey);
    hmac.update(data);
    return hmac.digest('hex');
}
const secretKey ='yourSecretKey';
const body ='yourBodyContent';

const hmacSHA256 = generateHMACSHA256(secretKey, body);
console.log(`HMAC-SHA256: ${hmacSHA256}`);

Responding to the webhook

You must set up the verification of the webhook.

When a webhook is attached, the verification payload is sent to the webhook. You must respond with the correct HTTP code:

  • 200 for correct signature

  • 400 for incorrect signature

For the 400 code, you must respond with the following response:

Headers

"Content-type": "application/json"

Body

{
    "message": "Invalid signature"
}

Webhook's payload

Payload parameters

Name
Description

eventType

The type of event that fired the webhook. Available types: verification, create, update.

data

{
    "eventType": "verification",
    "data": {...}
}

Attach a webhook

Detach a webhook

The body of the request contains the parameters available in the selected .

The body of the request contains the parameters available in the selected .

The body of the .

record type
record type
record type

Endpoint to retrieve available record types.

get

This endpoint retrieves available record types.

Header parameters
authorizationstringRequired

Access token for authorization.

Responses
200
OK
application/json
get
GET /api/v3/recordTypes HTTP/1.1
Host: app-academy.make.com
authorization: text
Accept: */*
200

OK

{
  "recordTypes": [
    {
      "name": "movie",
      "label": "Movie",
      "creatable": true,
      "updatable": true,
      "readable": true,
      "searchable": true,
      "searchesIn": [
        "text"
      ],
      "deletable": true
    }
  ]
}

Retrieves a record type.

get

This endpoint retrieves JSON file of a record type.

Path parameters
namestringRequired

Name of the record to work with.

Header parameters
authorizationstringRequired

Access token for authorization.

Responses
200
OK
application/json
get
GET /api/v3/recordTypes/{name} HTTP/1.1
Host: app-academy.make.com
authorization: text
Accept: */*
200

OK

{
  "recordParameters": [
    {
      "name": "id",
      "label": "ID",
      "mandatory": true,
      "readable": true,
      "updatable": true,
      "refersTo": "organization",
      "type": "text",
      "nestedParameters": [
        {
          "name": "id",
          "label": "ID",
          "mandatory": true,
          "readable": true,
          "updatable": true,
          "refersTo": "organization",
          "type": "text",
          "nestedParameters": [
            "[Circular Reference]"
          ]
        }
      ]
    }
  ]
}

Retrieves records. E.g. movies.

post

Retrieves records. E.g. movies.

Path parameters
recordTypestringRequired

Type of the record to retrieve, e.g. movie.

Query parameters
offsetnumberOptional

The number of records to skip.

Example: 5
Header parameters
authorizationstringRequired

Access token for authorization.

Body
anyOptional
Responses
200
OK
application/json
post
POST /api/v3/{recordType}/query HTTP/1.1
Host: app-academy.make.com
authorization: text
Content-Type: application/json
Accept: */*
200

OK

{
  "totalRecordsReturned": 5,
  "records": [
    {
      "id": "1dca6a93fcf1",
      "name": "Robert Downey Jr.",
      "createdAt": "2023-04-13T17:04:47+00:00",
      "updatedAt": "2023-04-13T17:04:47+00:00"
    }
  ]
}

Retrieves records. E.g. movies.

post

Retrieves records. E.g. movies.

Path parameters
recordTypestringRequired

Type of the record to retrieve, e.g. movie.

Query parameters
offsetnumberOptional

The number of records to skip.

Example: 5
Header parameters
authorizationstringRequired

Access token for authorization.

Body
anyOptional
Responses
200
OK
application/json
post
POST /api/v3/{recordType}/query HTTP/1.1
Host: app-academy.make.com
authorization: text
Content-Type: application/json
Accept: */*
200

OK

{
  "totalRecordsReturned": 5,
  "records": [
    {
      "id": "1dca6a93fcf1",
      "name": "Robert Downey Jr.",
      "createdAt": "2023-04-13T17:04:47+00:00",
      "updatedAt": "2023-04-13T17:04:47+00:00"
    }
  ]
}

Retrieves the record by its ID.

get

Retrieves the record by its ID.

Path parameters
recordTypestringRequired

Type of the record to retrieve, e.g. movie.

idstringRequired

ID of the record to work with.

Header parameters
authorizationstringRequired

Access token for authorization.

Responses
200
OK
application/json
get
GET /api/v3/{recordType}/{id} HTTP/1.1
Host: app-academy.make.com
authorization: text
Accept: */*
200

OK

No content

Creates a new record. E.g. a movie.

post

Creates a new record. E.g. a movie.

Path parameters
recordTypestringRequired

Type of the record to retrieve, e.g. movie.

Header parameters
authorizationstringRequired

Access token for authorization.

Responses
200
OK
application/json
post
POST /api/v3/{recordType} HTTP/1.1
Host: app-academy.make.com
authorization: text
Accept: */*
200

OK

No content

Updates the record by its ID.

patch

Updates the record by its ID.

Path parameters
recordTypestringRequired

Type of the record to retrieve, e.g. movie.

idstringRequired

ID of the record to work with.

Header parameters
authorizationstringRequired

Access token for authorization.

Responses
200
OK
application/json
patch
PATCH /api/v3/{recordType}/{id} HTTP/1.1
Host: app-academy.make.com
authorization: text
Accept: */*
200

OK

No content

Deletes the record by its ID.

delete

Deletes the record by its ID.

Path parameters
recordTypestringRequired

Type of the record to retrieve, e.g. movie.

idstringRequired

ID of the record to work with.

Header parameters
authorizationstringRequired

Access token for authorization.

Responses
200
OK
application/json
delete
DELETE /api/v3/{recordType}/{id} HTTP/1.1
Host: app-academy.make.com
authorization: text
Accept: */*
200

OK

No content

Retrieves the list of files or folders.

get

Retrieves the list of files or folders.

Query parameters
parentstringOptional

ID of the parent to work with.

pagenumberOptional

Identification of the page to retrieve.

Header parameters
authorizationstringRequired

Access token for authorization.

Responses
200
OK
application/json
get
GET /api/v3/files HTTP/1.1
Host: app-academy.make.com
authorization: text
Accept: */*
200

OK

{
  "totalPages": 2,
  "items": [
    {
      "name": "test.txt",
      "parent": "e4677852dffe",
      "id": "dj789jdj344i",
      "type": "folder"
    }
  ]
}

Retrieves the list of files or folders.

get

Retrieves the list of files or folders.

Query parameters
parentstringOptional

ID of the parent to work with.

pagenumberOptional

Identification of the page to retrieve.

Header parameters
authorizationstringRequired

Access token for authorization.

Responses
200
OK
application/json
get
GET /api/v3/files HTTP/1.1
Host: app-academy.make.com
authorization: text
Accept: */*
200

OK

{
  "totalPages": 2,
  "items": [
    {
      "name": "test.txt",
      "parent": "e4677852dffe",
      "id": "dj789jdj344i",
      "type": "folder"
    }
  ]
}

Downloads a file.

get

Downloads a file.

Path parameters
idstringRequired

ID of the record to work with.

Header parameters
authorizationstringRequired

Access token for authorization.

Responses
200
OK
application/octet-stream
get
GET /api/v3/files/{id} HTTP/1.1
Host: app-academy.make.com
authorization: text
Accept: */*
200

OK

No content

Deletes a file.

delete

Deletes a file.

Path parameters
idstringRequired

ID of the record to work with.

Header parameters
authorizationstringRequired

Access token for authorization.

Responses
200
OK
application/json
delete
DELETE /api/v3/files/{id} HTTP/1.1
Host: app-academy.make.com
authorization: text
Accept: */*
200

OK

No content

Detaches an existing webhook.

delete

Detaches an existing webhook.

Path parameters
idstringRequired

ID of the record to work with.

Header parameters
authorizationstringRequired

Access token for authorization.

Responses
200
OK
application/json
delete
DELETE /api/v3/webhooks/{id} HTTP/1.1
Host: app-academy.make.com
authorization: text
Accept: */*
200

OK

No content

  • Record types
  • List record types
  • GETEndpoint to retrieve available record types.
  • GETRetrieves a record type.
  • Retrieve a record type
  • POSTRetrieves records. E.g. movies.
  • Records
  • POSTRetrieves records. E.g. movies.
  • Retrieve a record
  • GETRetrieves the record by its ID.
  • Create a record
  • POSTCreates a new record. E.g. a movie.
  • Update a record
  • PATCHUpdates the record by its ID.
  • Delete a record
  • DELETEDeletes the record by its ID.
  • GETRetrieves the list of files or folders.
  • Files/Folders
  • Retrieve files or folders
  • GETRetrieves the list of files or folders.
  • Download a file
  • GETDownloads a file.
  • Delete a file
  • DELETEDeletes a file.
  • Upload a file
  • POSTCreates a session ID for a file upload. Stores a file name and the final location of the file (full path to the folder is required).
  • POSTUploads the first block of data of a file.
  • POSTUploads the other blocks of data (bytes) of a file, except the last block of data.
  • POSTUploads the last block of data of a file and closes the session.
  • Webhooks
  • Verification of the webhook
  • Responding to the webhook
  • Webhook's payload
  • Attach a webhook
  • POSTAttaches a new webhook.
  • Detach a webhook
  • DELETEDetaches an existing webhook.

Creates a session ID for a file upload. Stores a file name and the final location of the file (full path to the folder is required).

post

Creates a session ID for a file upload. Stores a file name and the final location of the file (full path to the folder is required).

Header parameters
authorizationstringRequired

Access token for authorization.

Body
pathstringRequiredExample: /8c6e22b7f1a0/e4673b2dff5e/1dca6a93fcf1
fileNamestringRequiredExample: test.txt
Responses
200
OK
application/json
post
POST /api/v3/files/upload/openSlot HTTP/1.1
Host: app-academy.make.com
authorization: text
Content-Type: application/json
Accept: */*
Content-Length: 72

{
  "path": "/8c6e22b7f1a0/e4673b2dff5e/1dca6a93fcf1",
  "fileName": "test.txt"
}
200

OK

{
  "session_id": "e4677852dffe"
}

Uploads the first block of data of a file.

post

Uploads the first block of data of a file.

Header parameters
authorizationstringRequired

Access token for authorization.

session-idstringRequired

Session ID of the file upload.

content-typestringRequired

application/octet-stream

Example: application/octet-stream
Body
string · binaryOptionalExample: raw(binary)
Responses
200
OK
application/json
post
POST /api/v3/files/upload/start HTTP/1.1
Host: app-academy.make.com
authorization: text
session-id: text
content-type: text
Content-Type: application/octet-stream
Accept: */*
Content-Length: 13

"raw(binary)"
200

OK

{
  "session_id": "e4677852dffe"
}

Uploads the other blocks of data (bytes) of a file, except the last block of data.

post

Uploads the other blocks of data (bytes) of a file, except the last block of data.

Header parameters
authorizationstringRequired

Access token for authorization.

session-idstringRequired

Session ID of the file upload.

content-typestringRequired

application/octet-stream

Example: application/octet-stream
offsetnumberRequired

Identification of the byte's order in the file to upload.

Body
string · binaryOptionalExample: raw(binary)
Responses
200
OK
application/json
post
POST /api/v3/files/upload/append HTTP/1.1
Host: app-academy.make.com
authorization: text
session-id: text
content-type: text
offset: 1
Content-Type: application/octet-stream
Accept: */*
Content-Length: 13

"raw(binary)"
200

OK

{
  "session_id": "e4677852dffe"
}

Uploads the last block of data of a file and closes the session.

post

Uploads the last block of data a file and closes the session.

Header parameters
authorizationstringRequired

Access token for authorization.

session-idstringRequired

Session ID of the file upload.

content-typestringRequired

application/octet-stream

Example: application/octet-stream
Body
string · binaryOptionalExample: raw(binary)
Responses
200
OK
application/json
post
POST /api/v3/files/upload/finish HTTP/1.1
Host: app-academy.make.com
authorization: text
session-id: text
content-type: text
Content-Type: application/octet-stream
Accept: */*
Content-Length: 13

"raw(binary)"
200

OK

{
  "file_id": "test.txt"
}

Attaches a new webhook.

post

Attaches a new webhook.

Header parameters
authorizationstringRequired

Access token for authorization.

Body
urlstringRequired
secretKeystringRequired
recordTypestringRequired
Responses
200
OK
application/json
post
POST /api/v3/webhooks HTTP/1.1
Host: app-academy.make.com
authorization: text
Content-Type: application/json
Accept: */*
Content-Length: 53

{
  "url": "text",
  "secretKey": "text",
  "recordType": "text"
}
200

OK

{
  "hookId": "text",
  "secretKey": "text"
}