Reference
Use Integrations - Reference
- Frontend SDK
- HTTP API
- Authentication
- Rate limits
- Providers
- Integrations
- Connections
- Scripts
- Syncs
- Actions
- Proxy
- Connect
- Backend SDKs
Build Integrations - Reference
Get integration scripts config
Return the configuration for all integration scripts.
curl --request GET \
--url https://api.nango.dev/scripts/config
{
"providerConfigKey": "<string>",
"syncs": [
{
"id": 123,
"name": "github-issues",
"enabled": true,
"type": "sync",
"json_schema": {},
"models": [
{
"fields": [
{
"array": true,
"dynamic": true,
"model": true,
"name": "<string>",
"optional": true,
"tsType": true,
"union": true,
"value": "<string>"
}
],
"isAnon": true,
"name": "<string>"
}
],
"sync_type": "full",
"runs": "every 30 minutes",
"track_deletes": true,
"auto_start": true,
"last_deployed": "2024-02-01T09:09:03.502Z",
"is_public": true,
"pre_built": true,
"version": "0.0.3",
"attributes": {},
"input": {},
"returns": [
"GithubIssue"
],
"description": "Fetches the Github issues from all a user's repositories.\nDetails: full sync, doesn't track deletes, metadata is not required.\n",
"scopes": [
"public_repo"
],
"endpoints": [
{}
],
"webhookSubscriptions": [
"<string>"
]
}
],
"actions": [
{
"id": 123,
"name": "github-issues",
"type": "action",
"models": [
{
"fields": [
{
"array": true,
"dynamic": true,
"model": true,
"name": "<string>",
"optional": true,
"tsType": true,
"union": true,
"value": "<string>"
}
],
"isAnon": true,
"name": "<string>"
}
],
"last_deployed": "2024-02-28T20:16:38.052Z",
"is_public": false,
"pre_built": false,
"version": "4",
"attributes": {},
"input": {},
"returns": {},
"description": "Fetches the Github issues from all a user's repositories.\nDetails: full sync, doesn't track deletes, metadata is not required.\n",
"scopes": [
"public_repo"
],
"endpoints": [
{}
]
}
],
"on-events": [
"<string>"
],
"provider": "github"
}
The /scripts/config
endpoint returns the configuration for all integration scripts. There are two variants of this endpoint:
/scripts/config?format=nango
- Returns the standard configuration format/scripts/config?format=openai
- Returns the configuration in OpenAI’s function calling format
OpenAI Function Format
The /scripts/config?format=openai
endpoint transforms the script configurations into OpenAI’s function calling format. This format is particularly useful when working with OpenAI’s API to enable function calling capabilities.
Parameter Descriptions
The endpoint automatically parses parameter descriptions from the script’s description field. If a script’s description contains a markdown list of parameters, these descriptions will be used for the corresponding parameters in the OpenAI function format.
For example, in your nango.yaml
file, you can define a script like this:
integrations:
google-calendar:
actions:
move-event:
description: |
Move an event to a different time or calendar with the following parameters:
- eventId: The ID of the event to move
- start: New start time in ISO format (e.g., "2024-03-28T14:00:00")
- end: New end time in ISO format (e.g., "2024-03-28T15:00:00")
- calendar: Optional new calendar ID to move the event to
input: MoveEventInput # References the model defined below
scopes: https://www.googleapis.com/auth/calendar
models:
MoveEventInput:
eventId: string
start: string
end: string
calendar?: string # Optional field
The endpoint will generate a function definition like this:
{
"data": [
{
"name": "move-event",
"description": "Move an event to a different time or calendar with the following parameters:\n- eventId: The ID of the event to move\n- start: New start time in ISO format (e.g., \"2024-03-28T14:00:00\")\n- end: New end time in ISO format (e.g., \"2024-03-28T15:00:00\")\n- calendar: Optional new calendar ID to move the event to",
"parameters": {
"type": "object",
"properties": {
"eventId": {
"type": "string",
"description": "The ID of the event to move"
},
"start": {
"type": "string",
"description": "New start time in ISO format (e.g., \"2024-03-28T14:00:00\")"
},
"end": {
"type": "string",
"description": "New end time in ISO format (e.g., \"2024-03-28T15:00:00\")"
},
"calendar": {
"type": "string",
"description": "Optional new calendar ID to move the event to"
}
},
"required": ["eventId", "start", "end"]
}
}
]
}
Array Fields
The endpoint properly handles array fields in the configuration. For example, if a field is defined as:
integrations:
google-calendar:
actions:
create-event:
description: |
Create a new calendar event with the following parameters:
- summary: The title of the event
- attendees: List of email addresses of event attendees
input: CreateEventInput # References the model defined below
scopes: https://www.googleapis.com/auth/calendar
models:
CreateEventInput:
summary: string
attendees?: string[] # Optional array field
It will be transformed into:
{
"data": [
{
"name": "create-event",
"description": "Create a new calendar event with the following parameters:\n- summary: The title of the event\n- attendees: List of email addresses of event attendees",
"parameters": {
"type": "object",
"properties": {
"summary": {
"type": "string",
"description": "The title of the event"
},
"attendees": {
"type": "array",
"description": "List of email addresses of event attendees",
"items": {
"type": "string"
}
}
},
"required": ["summary"]
}
}
]
}
Query Parameters
The output type of the script configuration
nango
, openai
Response
"github-issues"
"sync"
"full"
"every 30 minutes"
"2024-02-01T09:09:03.502Z"
"0.0.3"
"Fetches the Github issues from all a user's repositories.\nDetails: full sync, doesn't track deletes, metadata is not required.\n"
"github-issues"
"action"
"2024-02-28T20:16:38.052Z"
false
false
"4"
"Fetches the Github issues from all a user's repositories.\nDetails: full sync, doesn't track deletes, metadata is not required.\n"
"github"
curl --request GET \
--url https://api.nango.dev/scripts/config
{
"providerConfigKey": "<string>",
"syncs": [
{
"id": 123,
"name": "github-issues",
"enabled": true,
"type": "sync",
"json_schema": {},
"models": [
{
"fields": [
{
"array": true,
"dynamic": true,
"model": true,
"name": "<string>",
"optional": true,
"tsType": true,
"union": true,
"value": "<string>"
}
],
"isAnon": true,
"name": "<string>"
}
],
"sync_type": "full",
"runs": "every 30 minutes",
"track_deletes": true,
"auto_start": true,
"last_deployed": "2024-02-01T09:09:03.502Z",
"is_public": true,
"pre_built": true,
"version": "0.0.3",
"attributes": {},
"input": {},
"returns": [
"GithubIssue"
],
"description": "Fetches the Github issues from all a user's repositories.\nDetails: full sync, doesn't track deletes, metadata is not required.\n",
"scopes": [
"public_repo"
],
"endpoints": [
{}
],
"webhookSubscriptions": [
"<string>"
]
}
],
"actions": [
{
"id": 123,
"name": "github-issues",
"type": "action",
"models": [
{
"fields": [
{
"array": true,
"dynamic": true,
"model": true,
"name": "<string>",
"optional": true,
"tsType": true,
"union": true,
"value": "<string>"
}
],
"isAnon": true,
"name": "<string>"
}
],
"last_deployed": "2024-02-28T20:16:38.052Z",
"is_public": false,
"pre_built": false,
"version": "4",
"attributes": {},
"input": {},
"returns": {},
"description": "Fetches the Github issues from all a user's repositories.\nDetails: full sync, doesn't track deletes, metadata is not required.\n",
"scopes": [
"public_repo"
],
"endpoints": [
{}
]
}
],
"on-events": [
"<string>"
],
"provider": "github"
}