Skip to main content

Overview

The API Request step lets you call any external API or web service. Configure the method, URL, headers, authentication, and body to integrate with third-party services or internal APIs.

Configuration

FieldOptions
MethodGET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
URLTarget endpoint (supports template variables)
HeadersKey-value header pairs
Query ParamsKey-value query parameters
AuthNone, Basic Auth, Bearer Token, API Key, OAuth2, Royaltyport API
BodyNone, Text (JSON / XML / Raw), or Form (with multipart toggle)
PaginationOptional — automatically page through multi-page API responses

Authentication

Select an auth type to attach credentials from your secrets to the request:
Auth TypeDescription
NoneNo authentication
Basic AuthHTTP basic authentication (username + password)
Bearer TokenBearer token in the Authorization header
API KeyCustom API key header
OAuth2OAuth2 client credentials flow
Royaltyport APIBuilt-in authentication for the Royaltyport REST API

Royaltyport API

The Royaltyport API auth type lets you call the Royaltyport REST API directly from your automations without managing tokens or secrets. Authentication is handled automatically using your project’s internal credentials — no setup required. Select Royaltyport API from the auth dropdown and point the URL at any https://api.royaltyport.com/v1/ endpoint. The step injects the correct authorization headers at runtime. To get started quickly, use one of the built-in Royaltyport presets:
PresetEndpoint
Royaltyport — List ProjectsGET /v1/projects
Royaltyport — Get ProjectGET /v1/projects/:id
Royaltyport — Search ProjectGET /v1/projects/:id/search
Royaltyport — List ContractsGET /v1/contracts
Royaltyport — Get ContractGET /v1/contracts/:id
Royaltyport — List EntitiesGET /v1/entities
Royaltyport — Get EntityGET /v1/entities/:id
Royaltyport — List ArtistsGET /v1/artists
Royaltyport — Get ArtistGET /v1/artists/:id
Royaltyport — List WritersGET /v1/writers
Royaltyport — Get WriterGET /v1/writers/:id
Presets fill in the URL, headers, and auth automatically. Combine them with trigger data like {{trigger.contract_id}} to make them dynamic.
See the full API Reference for all available endpoints and response schemas.

Pagination

Enable Paginate Results to have the step automatically loop through all pages of a paginated API and collect the full result set before passing data downstream.
When pagination is enabled, do not add offset, page, or limit parameters manually in the Params tab — they are injected automatically by the step.
FieldDescription
TypeOffset — increments a numeric offset each page. Page Number — increments a page number starting from 1.
Offset / Page FieldQuery parameter name the API expects for the offset or page number (e.g. offset, page)
Limit FieldQuery parameter name the API expects for the page size (e.g. limit, per_page)
Results PathDot-path to the array of items inside the response body (e.g. data.items). Leave blank if the response body is the array directly.
Page SizeNumber of items to request per page (default: 10)
Max ResultsCap on total items collected across all pages. Leave blank for no limit.
Pagination works inside Loop steps — each iteration of the loop can run an independent paginated request.

Body Types

TypeDescription
NoneNo request body (typically for GET requests)
TextRaw text body with format selector (JSON, XML, or Raw)
FormForm data with key-value pairs and optional multipart toggle for file uploads

Output

FieldTypeDescription
requestobjectDetails of the outgoing request (see below)
request.methodstringHTTP method used (e.g. GET, POST)
request.urlstringFinal resolved URL including any template variables
request.headersobjectRequest headers sent. The Authorization header is partially masked for security
request.bodyanyRequest body sent, or null for bodyless requests
statusnumberHTTP status code
headersobjectResponse headers
bodyanyResponse body
errorbooleanWhether an error occurred
error_messagestringError description if failed
The Authorization header in request.headers is partially masked (only the first 10 characters are shown). Use {{steps.my_step.request.url}} or {{steps.my_step.request.body}} in downstream steps to reference what was actually sent.