Detect what is behind a URL - Spacefast Docs

Detect what is behind a URL

Runs every plugin’s detector against a pasted URL and returns the candidates it recognized, most confident first. The URL to register may not be the URL that was pasted.

POST /v1/connectors/detect

Authorization

Authorization Bearer token · header required

Authorization: Bearer <token> with an API key (sfa_ prefix), an OAuth access token, a session token, or a Space machine credential (sfm_ prefix).

or

Authorization OAuth2 access token · header required

OAuth 2.0 with Spacefast scopes. People use the authorization code flow; machines use client credentials.

Scopes: connectors:write

Query parameters

team string

min length 1 · max length 255

Request body

required application/json

url string required

Any URL a service published. Every plugin's detector gets a look at it.

Responses

200 Response for status 200

$schema string

Canonical JSON Schema URL for this response body. The server also sends it in the Link: rel="describedby" response header.

data object[] required

Array of object

Source kind this candidate would register as.

Allowed: openapi, graphql, mcp

How sure the detector is. Ranked highest first.

Allowed: high, medium, low

The URL to register, which may not be the URL that was pasted.

Name the source calls itself.

Suggested slug, already checked against the team's connectors.

Catalog row this resolved to, when the paste matched a known service.

Error Structure

Any of:

$schema string

Canonical JSON Schema URL for this response body. The server also sends it in the Link: rel="describedby" response header.

URL of the documentation page for this error. Derived from code.

Human-readable name of the error type. Derived from code.

HTTP status of the response, repeated in the body.

min -9007199254740991 · max 9007199254740991

What went wrong in this request.

Stable snake_case error code. Match on this, not on detail.

RFC 6901 JSON Pointer to the request field or batch entry that failed, for example /files/37/path. Present on validation failures.

Machine-readable context keyed by the error code.

Recovery steps safe to show to a person.

Commands or API requests to run next, usable as written.

ID of this request, from the X-Request-Id header or generated. Quote it when contacting support.

Try it

Server

Base URL https://api.spacefast.com

Custom base URL Overrides the selected server when set.

Authorization

Bearer token Remember on this device

Include my values in samples

Parameters

Body

application/json

url string * Any URL a service published. Every plugin's detector gets a look at it.

Send

Request Examples

cURL

curl -X POST "https://api.spacefast.com/v1/connectors/detect" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "http://example.com"
}'

JavaScript

const response = await fetch("https://api.spacefast.com/v1/connectors/detect", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json"
  },
  body: "{\n  \"url\": \"http://example.com\"\n}"
});

Python

import requests

response = requests.post(
    "https://api.spacefast.com/v1/connectors/detect",
    headers={
        "Authorization": "Bearer YOUR_TOKEN",
        "Content-Type": "application/json"
    },
    data="{\n  \"url\": \"http://example.com\"\n}",
)

Response

200 default

{
  "$schema": "http://example.com",
  "data": [
    {
      "kind": "openapi",
      "confidence": "high",
      "endpoint": "http://example.com",
      "title": "string",
      "slug": "string",
      "presetId": "string"
    }
  ]
}

Error Response Example

{
  "$schema": "http://example.com",
  "type": "string",
  "title": "string",
  "status": -9007199254740991,
  "detail": "string",
  "code": "string",
  "pointer": "string",
  "details": {
    "property1": null,
    "property2": null
  },
  "suggestions": [
    "string"
  ],
  "next": [
    "string"
  ],
  "requestId": "string"
}