Create Connector From Model
This page uses Nexus's generated request and response schema. Requests still require the correct account, workspace, and resource permissions.
/manage/admin/connectorcurl --request POST 'https://school.narb.cc/api/manage/admin/connector' \
--header 'Authorization: Bearer YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"name": "example",
"source": "ingestion_api",
"input_type": "load_state",
"connector_specific_config": {},
"access_type": "public"
}'This builds a request example. Fill in required query values, then replace path placeholders and YOUR_TOKEN in your own environment. Use a token for a user with access to this workspace. Responses and permissions depend on your account and deployment. Never paste a private token into documentation.
Download the Nexus OpenAPI schema ↗
Import the schema into your API client. It describes the backend source; enabled routes depend on your workspace.
Authentication and scope#
Send requests to the workspace that owns the resource. Authentication does not by itself grant a school membership, class assignment, or administrator permission. School endpoints apply their role and class checks on the server.
Use a credential issued for that workspace with only the permissions your integration needs. Keep it on your server. Do not place credentials in a public website or a shared skill.
Parameters#
| Name | Location | Required | Type |
|---|---|---|---|
tenant_id | query | No | string or null |
The tenant_id parameter is part of the engine schema. It does not authorize a caller to another school. Use the workspace and permissions assigned to your account.
Request body#
Content type: application/json.
| Field | Type | Required | Details |
|---|---|---|---|
name | string | Yes | See Request schema. |
source | string | Yes | Allowed: "ingestion_api", "slack", "web", "google_drive", "gmail", "github", "gitbook", "gitlab", "guru", "bookstack", "outline", "confluence", "jira", "slab", "productboard", "file", "coda", "canvas", "notion", "zulip", "linear", "hubspot", "document360", "gong", "google_sites", "zendesk", "loopio", "box", "dropbox", "sharepoint", "teams", "salesforce", "discourse", "axero", "clickup", "mediawiki", "wikipedia", "asana", "s3", "r2", "google_cloud_storage", "oci_storage", "xenforo", "not_applicable", "discord", "freshdesk", "fireflies", "egnyte", "airtable", "highspot", "drupal_wiki", "imap", "bitbucket", "testrail", "braintrust", "lumapps", "mock_connector", "user_file", "craft_file". |
input_type | string | Yes | Allowed: "load_state", "poll", "event", "slim_retrieval". |
connector_specific_config | object | Yes | See Request schema. |
refresh_freq | integer or null | No | See Request schema. |
prune_freq | integer or null | No | See Request schema. |
indexing_start | string or null | No | See Request schema. |
access_type | string | Yes | Allowed: "public", "private", "sync". |
groups | array of integer | No | See Request schema. |
Request schema#
The schema includes field limits and required values. Referenced types are included in the downloadable OpenAPI file. Replace example identifiers with IDs from your workspace.
{
"properties": {
"name": {
"type": "string",
"title": "Name"
},
"source": {
"$ref": "#/components/schemas/DocumentSource"
},
"input_type": {
"$ref": "#/components/schemas/InputType"
},
"connector_specific_config": {
"additionalProperties": true,
"type": "object",
"title": "Connector Specific Config"
},
"refresh_freq": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Refresh Freq"
},
"prune_freq": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Prune Freq"
},
"indexing_start": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Indexing Start"
},
"access_type": {
"$ref": "#/components/schemas/AccessType"
},
"groups": {
"items": {
"type": "integer"
},
"type": "array",
"title": "Groups"
}
},
"type": "object",
"required": [
"name",
"source",
"input_type",
"connector_specific_config",
"access_type"
],
"title": "ConnectorUpdateRequest"
}Responses#
200#
Successful Response
{
"properties": {
"id": {
"type": "integer",
"title": "Id"
},
"credential": {
"anyOf": [
{
"$ref": "#/components/schemas/CredentialSnapshot"
},
{
"type": "null"
}
]
}
},
"type": "object",
"required": [
"id"
],
"title": "ObjectCreationIdResponse"
}422#
Validation Error
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}Access and error handling#
A signed-out or expired session needs authentication. A denied request can mean the account lacks permission, class membership, an approved model, or an available allowance. Do not retry a write blindly after a network failure; first check whether it was recorded.
Treat validation errors as a request problem. Use the returned field details to correct the request. Resource identifiers do not confer access.
Schema version#
Generated from Nexus backend source fe1c3a07c793029d3d87191a68f89e481afd6bc8. Check your deployed version before integrating. Schema coverage is not a live acceptance test.