Noded AI API

Noded AI API as documented publicly: 20 operations. Contract generated from the documentation by API Evangelist (2026-10-25); not the provider's own document.

Operations 20

POST /{application}/link Turns a pasted URL into a BusinessObject for the given application. #
POST /api/v1/graph POST /api/v1/graph #
GET /api/v1/hello GET /api/v1/hello #
GET /auth/callback auth.callback auth GET /auth/callback #
POST /auth/check auth.check auth POST /auth/check #
GET /auth/connect auth.connect auth GET /auth/connect #
POST /auth/refresh auth.refresh auth POST /auth/refresh #
POST /execute/function Runs the function synchronously and returns optional output information. #
POST /execute/query Runs a live search against your vendor and returns matching records. #
POST /install/function/inputs Called during install wizard to report the inputs a function will need each run. #
POST /sync/calendar sync.calendar sync POST /sync/calendar #
POST /sync/email sync.emails sync POST /sync/email #
POST /sync/identifier sync.identifier sync POST /sync/identifier #
POST /sync/insight sync.insight sync POST /sync/insight #
POST /sync/metadata sync.metadata sync POST /sync/metadata #
POST /sync/table sync.table sync POST /sync/table #
POST /sync/transcription POST /sync/transcription #
POST /tag Searches your vendor for people or topics that can become Noded tags. #
POST /upsert/notes Pushes Noded notes into your vendor. #
POST /upsert/table Writes records into your vendor; creates or updates rows based on externalId. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/noded-so:noded-so-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

noded-so-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Noded AI API
  version: '2026-10-25'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-25: 20 operation(s) read from 3 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; Noded AI has published no machine-readable contract that the
    pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 3
    documentation: 17
    pages-with-code: 2
    pages-read: 3
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-25'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://www.getnoded.ai/developers/graph-api
  - https://www.getnoded.ai/developers/provider-sdk
  - https://www.getnoded.ai/developers/AGENTS.md
servers:
- url: https://api.getnoded.ai
paths:
  /{application}/link:
    post:
      operationId: post_application_link
      tags:
      - Link
      summary: Turns a pasted URL into a BusinessObject for the given application.
      x-source: https://www.getnoded.ai/developers/provider-sdk
      parameters:
      - name: application
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApplicationLinkRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApplicationLinkResponse'
      x-evidence:
        kind: documentation
  /api/v1/graph:
    post:
      operationId: post_api_v1_graph
      tags:
      - Api
      summary: POST /api/v1/graph
      x-source: https://www.getnoded.ai/developers/graph-api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1GraphRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1GraphResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl -s https://api.getnoded.ai/api/v1/graph  -H \"Authorization: Bearer $NODED_TOKEN\"  -H \"Content-Type: application/json\"\
          \  -H \"x-user-timezone: America/New_York\"  -H \"x-user-client-version: my-app/1.2.0\"  -d '{\n \"query\": \"query { tenant { _id email\
          \ tagId } }\"\n }' \n Request SDK import {Noded} from '@bigfootai/noded-sdk';\nconst noded = new Noded({\n auth: { mode: 'oidc', issuer,\
          \ clientId, audie"
  /api/v1/hello:
    get:
      operationId: get_api_v1_hello
      tags:
      - Api
      summary: GET /api/v1/hello
      x-source: https://www.getnoded.ai/developers/provider-sdk
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1HelloResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: curl http://localhost:5000/api/v1/hello
  /auth/callback:
    get:
      operationId: get_auth_callback
      tags:
      - Auth
      summary: auth.callback auth GET /auth/callback
      x-source: https://www.getnoded.ai/developers/provider-sdk
      parameters:
      - name: state
        in: query
        required: true
        schema:
          type: string
        description: Encoded "${connectionId}.${application}" passed from the connect step.
      - name: code
        in: query
        required: false
        schema:
          type: string
        description: OAuth authorization code (if using OAuth).
      - name: apiKey
        in: query
        required: false
        schema:
          type: string
        description: API key submitted via HTML form (if using key flow).
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAuthCallbackResponse'
      x-evidence:
        kind: documentation
  /auth/check:
    post:
      operationId: post_auth_check
      tags:
      - Auth
      summary: auth.check auth POST /auth/check
      x-source: https://www.getnoded.ai/developers/provider-sdk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostAuthCheckRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostAuthCheckResponse'
      x-evidence:
        kind: documentation
  /auth/connect:
    get:
      operationId: get_auth_connect
      tags:
      - Auth
      summary: auth.connect auth GET /auth/connect
      x-source: https://www.getnoded.ai/developers/provider-sdk
      parameters:
      - name: application
        in: query
        required: true
        schema:
          type: string
        description: Which of your applications the user is connecting.
      - name: connectionId
        in: query
        required: true
        schema:
          type: string
        description: The platform's ID for this connection attempt.
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAuthConnectResponse'
      x-evidence:
        kind: documentation
  /auth/refresh:
    post:
      operationId: post_auth_refresh
      tags:
      - Auth
      summary: auth.refresh auth POST /auth/refresh
      x-source: https://www.getnoded.ai/developers/provider-sdk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostAuthRefreshRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostAuthRefreshResponse'
      x-evidence:
        kind: documentation
  /execute/function:
    post:
      operationId: post_execute_function
      tags:
      - Execute
      summary: Runs the function synchronously and returns optional output information.
      x-source: https://www.getnoded.ai/developers/provider-sdk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostExecuteFunctionRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostExecuteFunctionResponse'
      x-evidence:
        kind: documentation
  /execute/query:
    post:
      operationId: post_execute_query
      tags:
      - Execute
      summary: Runs a live search against your vendor and returns matching records.
      x-source: https://www.getnoded.ai/developers/provider-sdk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostExecuteQueryRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostExecuteQueryResponse'
      x-evidence:
        kind: documentation
  /install/function/inputs:
    post:
      operationId: post_install_function_inputs
      tags:
      - Install
      summary: Called during install wizard to report the inputs a function will need each run.
      x-source: https://www.getnoded.ai/developers/provider-sdk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostInstallFunctionInputsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostInstallFunctionInputsResponse'
      x-evidence:
        kind: documentation
  /sync/calendar:
    post:
      operationId: post_sync_calendar
      tags:
      - Sync
      summary: sync.calendar sync POST /sync/calendar
      x-source: https://www.getnoded.ai/developers/provider-sdk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSyncCalendarRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSyncCalendarResponse'
      x-evidence:
        kind: documentation
  /sync/email:
    post:
      operationId: post_sync_email
      tags:
      - Sync
      summary: sync.emails sync POST /sync/email
      x-source: https://www.getnoded.ai/developers/provider-sdk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSyncEmailRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSyncEmailResponse'
      x-evidence:
        kind: documentation
  /sync/identifier:
    post:
      operationId: post_sync_identifier
      tags:
      - Sync
      summary: sync.identifier sync POST /sync/identifier
      x-source: https://www.getnoded.ai/developers/provider-sdk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSyncIdentifierRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSyncIdentifierResponse'
      x-evidence:
        kind: documentation
  /sync/insight:
    post:
      operationId: post_sync_insight
      tags:
      - Sync
      summary: sync.insight sync POST /sync/insight
      x-source: https://www.getnoded.ai/developers/provider-sdk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSyncInsightRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSyncInsightResponse'
      x-evidence:
        kind: documentation
  /sync/metadata:
    post:
      operationId: post_sync_metadata
      tags:
      - Sync
      summary: sync.metadata sync POST /sync/metadata
      x-source: https://www.getnoded.ai/developers/provider-sdk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSyncMetadataRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSyncMetadataResponse'
      x-evidence:
        kind: documentation
  /sync/table:
    post:
      operationId: post_sync_table
      tags:
      - Sync
      summary: sync.table sync POST /sync/table
      x-source: https://www.getnoded.ai/developers/provider-sdk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSyncTableRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSyncTableResponse'
      x-evidence:
        kind: documentation
  /sync/transcription:
    post:
      operationId: post_sync_transcription
      tags:
      - Sync
      summary: POST /sync/transcription
      x-source: https://www.getnoded.ai/developers/provider-sdk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSyncTranscriptionRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl - the SDK validates the body exactly as the platform would, so a hand-built request is a faithful test (the panel on the\
          \ right shows one). \n Deploy. Build the template's Dockerfile and run it anywhere that serves HTTPS. Set the three environment variables.\
          \ The template also includes a GitHub Actions workflow if you want CI to build and push the image. \n Register. Submit your provider\
          \ definiti"
  /tag:
    post:
      operationId: post_tag
      tags:
      - Tag
      summary: Searches your vendor for people or topics that can become Noded tags.
      x-source: https://www.getnoded.ai/developers/provider-sdk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTagRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTagResponse'
      x-evidence:
        kind: documentation
  /upsert/notes:
    post:
      operationId: post_upsert_notes
      tags:
      - Upsert
      summary: Pushes Noded notes into your vendor.
      x-source: https://www.getnoded.ai/developers/provider-sdk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostUpsertNotesRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostUpsertNotesResponse'
      x-evidence:
        kind: documentation
  /upsert/table:
    post:
      operationId: post_upsert_table
      tags:
      - Upsert
      summary: Writes records into your vendor; creates or updates rows based on externalId.
      x-source: https://www.getnoded.ai/developers/provider-sdk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostUpsertTableRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostUpsertTableResponse'
      x-evidence:
        kind: documentation
components:
  schemas:
    PostApplicationLinkRequest:
      type: object
      properties:
        url:
          type: string
          description: The pasted URL.
        callbackId:
          type: string
          description: 'For slow fetches: identifier for later callback.'
        callbackUrl:
          type: string
          description: 'For slow fetches: URL to POST the finished result.'
      required:
      - url
    PostApplicationLinkResponse:
      type: object
      properties:
        businessObject:
          type: object
          description: The document with title, content, uri and stable externalId.
        processingStage:
          type: string
          description: Either "processed" or "processing".
    PostApiV1GraphRequest:
      type: object
      properties:
        query:
          type: string
    PostApiV1GraphResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            tenant:
              type: object
              properties:
                _id:
                  type: string
                email:
                  type: string
                tagId:
                  type: string
    GetApiV1HelloResponse:
      type: object
      properties:
        type:
          type: string
        title:
          type: string
        status:
          type: integer
        detail:
          type: string
    GetAuthCallbackResponse:
      type: object
      properties:
        connectionId:
          type: string
          description: The connection ID to associate with the registration.
        credential:
          type: object
          description: Credential object containing accessToken, refreshToken, etc.
    PostAuthCheckRequest:
      type: object
      properties:
        application:
          type: string
          description: The application to validate.
        credential:
          type: object
          description: Credential to validate.
      required:
      - application
      - credential
    PostAuthCheckResponse:
      type: object
      properties:
        status:
          type: string
          description: '"ok" or "scope_required".'
        message:
          type: string
          description: Human‑readable message when status is "scope_required".
    GetAuthConnectResponse:
      type: object
      properties:
        type:
          type: string
          description: Either "redirect" (OAuth) or "html" (key form).
        url:
          type: string
          description: When type is "redirect", the OAuth URL.
        html:
          type: string
          description: When type is "html", the HTML form to render.
    PostAuthRefreshRequest:
      type: object
      properties:
        connectedProvider:
          type: object
          description: Object containing the existing credential.
      required:
      - connectedProvider
    PostAuthRefreshResponse:
      type: object
      properties:
        credential:
          type: object
          description: Refreshed credential (accessToken, refreshToken, dateExpiry, etc.).
    PostExecuteFunctionRequest:
      type: object
      properties:
        functionName:
          type: string
          description: Which function to run.
        configuration:
          type: array
          description: Install‑time values.
        values:
          type: array
          description: Per‑run input values matching resolveInputs.
        templateConnectedProvider:
          type: object
          description: Connection of the installer (for reading assets).
        outputConnectedProvider:
          type: object
          description: Connection of the executor (for writing results).
      required:
      - functionName
      - configuration
      - values
    PostExecuteFunctionResponse:
      type: object
      properties:
        outputUrl:
          type: string
          description: URL of a result to attach.
        externalId:
          type: string
          description: Vendor ID of the created object.
        uri:
          type: string
          description: Link back to the created object.
    PostExecuteQueryRequest:
      type: object
      properties:
        metadataType:
          type: string
          description: Vendor object type to search.
        searchCriteria:
          type: array
          description: List of {fieldName, operator, value} objects.
        returnFields:
          type: array
          description: Fields to include in each result.
        limit:
          type: number
          description: Maximum records to return.
      required:
      - metadataType
      - searchCriteria
    PostExecuteQueryResponse:
      type: object
      properties:
        records:
          type: array
          description: Each record with provider, application, metadataType, externalId, title, uri and values.
        hasMore:
          type: boolean
          description: True when more matches exist beyond the limit.
    PostInstallFunctionInputsRequest:
      type: object
      properties:
        functionName:
          type: string
          description: Which declared function is being installed.
        configuration:
          type: array
          description: Name/value pairs the user set at install time.
      required:
      - functionName
      - configuration
    PostInstallFunctionInputsResponse:
      type: object
      properties:
        inputs:
          type: array
          description: Each input with name, label and default valueSource.
    PostSyncCalendarRequest:
      type: object
      properties:
        credential:
          type: object
        calendarFilter:
          type: object
          description: dateStart, dateEnd, limit.
      required:
      - credential
      - calendarFilter
    PostSyncCalendarResponse:
      type: object
      properties:
        items:
          type: array
          description: Array of Calendar objects.
        metadata:
          type: object
        pagination:
          type: object
          description: 'hasMore: false, pageSize.'
    PostSyncEmailRequest:
      type: object
      properties:
        credential:
          type: object
        filter:
          type: object
          description: dateStart, dateEnd, limit, cursor, includeEmails.
      required:
      - credential
      - filter
    PostSyncEmailResponse:
      type: object
      properties:
        items:
          type: array
          description: Array of Email objects.
        metadata:
          type: object
        pagination:
          type: object
          description: hasMore, cursor, pageSize.
    PostSyncIdentifierRequest:
      type: object
      properties:
        credential:
          type: object
        externalIdLinkObjects:
          type: array
          description: Slots to resolve (metadataType, tagType, hints).
      required:
      - credential
      - externalIdLinkObjects
    PostSyncIdentifierResponse:
      type: object
      properties:
        items:
          type: array
          description: Array of ExternalObjectWithUrl objects.
        metadata:
          type: object
        pagination:
          type: object
          description: 'hasMore: false, pageSize.'
    PostSyncInsightRequest:
      type: object
      properties:
        credential:
          type: object
        insightTypeFilters:
          type: array
          description: Filters describing which tags to produce insights for.
      required:
      - credential
      - insightTypeFilters
    PostSyncInsightResponse:
      type: object
      properties:
        items:
          type: array
          description: Array of TagInsightResponse objects (blockType, tables).
        metadata:
          type: object
        pagination:
          type: object
          description: 'hasMore: false, pageSize.'
    PostSyncMetadataRequest:
      type: object
      properties:
        credential:
          type: object
        tableMetadata:
          type: array
          description: Definitions of tables from the platform.
      required:
      - credential
      - tableMetadata
    PostSyncMetadataResponse:
      type: object
      properties:
        items:
          type: array
          description: Array of enriched Table objects.
        metadata:
          type: object
        pagination:
          type: object
          description: 'hasMore: false, pageSize.'
    PostSyncTableRequest:
      type: object
      properties:
        credential:
          type: object
        recordFilter:
          type: object
          description: recordTypeFilters with tableMetadata and externalIds.
      required:
      - credential
      - recordFilter
    PostSyncTableResponse:
      type: object
      properties:
        items:
          type: array
          description: Array of Table objects each containing rows.
        metadata:
          type: object
        pagination:
          type: object
          description: 'hasMore: false, pageSize.'
    PostSyncTranscriptionRequest:
      type: object
      properties:
        connectedProvider:
          type: object
          properties:
            connectionId:
              type: string
            provider:
              type: string
            application:
              type: string
            credential:
              type: object
              properties:
                accessToken:
                  type: string
                email:
                  type: string
        transcriptionFilter:
          type: object
          properties:
            dateStart:
              type: integer
            dateEnd:
              type: integer
            limit:
              type: integer
    PostTagRequest:
      type: object
      properties:
        search:
          type: string
          description: Free text the user typed.
        externalId:
          type: string
          description: Look one object up directly instead of searching.
        tagType:
          type: string
          description: person or topic – what kind of tag the caller wants back.
        metadataType:
          type: string
          description: Which vendor object type to search, like "account" or "user".
      required:
      - tagType
      - metadataType
    PostTagResponse:
      type: object
      properties:
        items:
          type: array
          description: Array of Tag objects, each with alias, tagType and externalId.
    PostUpsertNotesRequest:
      type: object
      properties:
        externalNotes:
          type: array
          description: Array of notes, each with title, documentHtml, uri, tags and optional externalId.
      required:
      - externalNotes
    PostUpsertNotesResponse:
      type: object
      properties:
        externalNotes:
          type: array
          description: Notes returned with externalId set to the vendor's ID.
    PostUpsertTableRequest:
      type: object
      properties:
        table:
          type: object
          description: Table to write; includes metadata.metadataType and records.
      required:
      - table
    PostUpsertTableResponse:
      type: object
      properties:
        table:
          type: object
          description: The same Table with every record's externalId filled in.
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: Api
- name: Auth
- name: Execute
- name: Install
- name: Link
- name: Sync
- name: Tag
- name: Upsert