Developer documentationAPI v1

Reference

API endpoint reference

Explore every resource, endpoint, parameter and request/response schema from the API’s OpenAPI 3.1 contract.

Generated from the implementation

The reference is generated from Squario’s public API resource and association catalogs. Select a resource to see its operations and schemas. Technical contract descriptions remain in English; paths, fields and error codes are language-independent. For current workspace-specific custom fields, call /resources/{resource} with your key.

Base URL and version

In these guides, SQUARIO_API_BASE is the URL copied from Settings → API, including /v1. In OpenAPI, the server URL stops at /functions/v1/public-api because its paths already include /v1. Supply your actual server URL when importing the downloadable release snapshot into a client. Public GET /v1 and GET /v1/openapi.json need no key; all data endpoints use bearer authentication.

Discovery endpoints

5 documented operations

Contract descriptions and schemas are kept in English, exactly as generated by the API.

GET/v1

API root

Operation api_root

Authentication · Public endpoint

Parameters

This operation has no parameters.

Responses

200 The API's name, version and OpenAPI document URL.

application/json

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "version": {
      "type": "string"
    },
    "openapi_url": {
      "type": "string",
      "format": "uri"
    }
  }
}
GET/v1/openapi.json

This document

Operation openapi_document

Authentication · Public endpoint

Parameters

This operation has no parameters.

Responses

200 The OpenAPI document.

application/json

{
  "type": "object"
}
GET/v1/me

The key, its workspace and its current usage

Operation get_me

Authentication · Workspace API key

Parameters

This operation has no parameters.

Responses

200 The calling key.

application/json

{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Me"
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
  • X-RateLimit-Limit Requests allowed in the window of the tightest rate limit (absent when none applies).
  • X-RateLimit-Remaining Requests left in that window.
  • X-RateLimit-Reset Seconds until that window resets.
  • X-Quota-Limit The workspace's monthly request quota (absent when uncapped).
  • X-Quota-Remaining Requests left this month (absent when uncapped).
  • X-Quota-Reset When the monthly quota resets.
400 Malformed parameters or body (invalid_request).

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
401 Missing, unknown, revoked or expired API key.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
  • WWW-Authenticate
403 The key or its owner may not make this request.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
404 No such route, resource or record.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
429 Rate limited, or the monthly quota is used up.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
  • Retry-After Seconds to wait before retrying.
  • X-RateLimit-Reset Seconds until that window resets.
500 Unexpected failure.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
503 Temporarily unable to check the key or reach the data.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
GET/v1/resources

The resources this key can use

Operation list_resources

Authentication · Workspace API key

Parameters

This operation has no parameters.

Responses

200 The resources.

application/json

{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ResourceSummary"
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
  • X-RateLimit-Limit Requests allowed in the window of the tightest rate limit (absent when none applies).
  • X-RateLimit-Remaining Requests left in that window.
  • X-RateLimit-Reset Seconds until that window resets.
  • X-Quota-Limit The workspace's monthly request quota (absent when uncapped).
  • X-Quota-Remaining Requests left this month (absent when uncapped).
  • X-Quota-Reset When the monthly quota resets.
400 Malformed parameters or body (invalid_request).

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
401 Missing, unknown, revoked or expired API key.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
  • WWW-Authenticate
403 The key or its owner may not make this request.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
404 No such route, resource or record.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
429 Rate limited, or the monthly quota is used up.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
  • Retry-After Seconds to wait before retrying.
  • X-RateLimit-Reset Seconds until that window resets.
500 Unexpected failure.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
503 Temporarily unable to check the key or reach the data.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
GET/v1/resources/{resource}

A resource's fields in this workspace, custom fields included

Operation describe_resource

Authentication · Workspace API key

Parameters

Parameters
ParameterLocationContract
resourceRequiredpath

View JSON schema
{
  "type": "string",
  "enum": [
    "companies",
    "contacts",
    "deals",
    "leads",
    "products",
    "activities",
    "locations",
    "testimonials",
    "pipelines",
    "pipeline_stages",
    "product_categories",
    "tax_classes",
    "loss_reasons",
    "deal_sources",
    "deal_role_types",
    "activity_type_definitions",
    "activity_outcome_definitions",
    "activity_templates",
    "forecast_categories",
    "lead_disqualification_reasons",
    "competitors",
    "tags",
    "entity_members",
    "entity_departments",
    "entity_job_titles",
    "scope_documents",
    "dashboards",
    "automations",
    "data_model_records",
    "projects",
    "project_tasks",
    "project_deliverables",
    "project_signals",
    "project_approvals",
    "project_statuses",
    "project_task_statuses",
    "project_task_types",
    "project_role_types",
    "project_task_role_types",
    "deliverable_statuses",
    "signal_statuses",
    "signal_types",
    "signal_severities",
    "signal_probabilities"
  ]
}
model_idOptionalquery

The data model's UUID. Required for data_model_records (on a write, it may be in the body instead).

View JSON schema
{
  "type": "string",
  "format": "uuid"
}

Responses

200 The field catalog.

application/json

{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": true
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
  • X-RateLimit-Limit Requests allowed in the window of the tightest rate limit (absent when none applies).
  • X-RateLimit-Remaining Requests left in that window.
  • X-RateLimit-Reset Seconds until that window resets.
  • X-Quota-Limit The workspace's monthly request quota (absent when uncapped).
  • X-Quota-Remaining Requests left this month (absent when uncapped).
  • X-Quota-Reset When the monthly quota resets.
400 Malformed parameters or body (invalid_request).

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
401 Missing, unknown, revoked or expired API key.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
  • WWW-Authenticate
403 The key or its owner may not make this request.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
404 No such route, resource or record.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
429 Rate limited, or the monthly quota is used up.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
  • Retry-After Seconds to wait before retrying.
  • X-RateLimit-Reset Seconds until that window resets.
500 Unexpected failure.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.
503 Temporarily unable to check the key or reach the data.

application/json

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Response headers

  • X-Request-Id This request's id; quote it when reporting a problem.

Resource reference

Schema definitions

Me
{
  "type": "object",
  "properties": {
    "key": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "type": "string"
        },
        "token_prefix": {
          "type": "string"
        },
        "access": {
          "type": "string",
          "enum": [
            "read",
            "write"
          ]
        },
        "resources": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "expires_at": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "workspace": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "user": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "rate_limit": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "limit": {
          "type": "integer"
        },
        "remaining": {
          "type": "integer"
        },
        "reset_seconds": {
          "type": "integer"
        }
      }
    },
    "quota": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "limit": {
          "type": [
            "integer",
            "null"
          ]
        },
        "used": {
          "type": "integer"
        },
        "remaining": {
          "type": [
            "integer",
            "null"
          ]
        },
        "resets_at": {
          "type": "string",
          "format": "date-time"
        }
      }
    }
  }
}
Error
{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "type",
        "code",
        "message",
        "request_id"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "invalid_request_error",
            "authentication_error",
            "permission_error",
            "not_found_error",
            "conflict_error",
            "validation_error",
            "rate_limit_error",
            "api_error"
          ]
        },
        "code": {
          "type": "string",
          "enum": [
            "invalid_request",
            "invalid_api_key",
            "expired_api_key",
            "key_assurance_stale",
            "ip_not_allowed",
            "permission_denied",
            "plan_upgrade_required",
            "insufficient_scope",
            "feature_unavailable",
            "forbidden",
            "not_found",
            "unknown_resource",
            "route_not_found",
            "method_not_allowed",
            "conflict",
            "idempotency_key_in_use",
            "payload_too_large",
            "validation_failed",
            "idempotency_key_reused",
            "rate_limited",
            "quota_exceeded",
            "internal_error",
            "service_unavailable"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "object",
          "additionalProperties": true
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}
ResourceSummary
{
  "type": "object",
  "required": [
    "key",
    "label",
    "read_only",
    "searchable",
    "requires_model_id"
  ],
  "properties": {
    "key": {
      "type": "string"
    },
    "label": {
      "type": "string"
    },
    "read_only": {
      "type": "boolean"
    },
    "searchable": {
      "type": "boolean"
    },
    "requires_model_id": {
      "type": "boolean"
    }
  }
}