Docs
Sign in
Auth

Get authenticated principal

Last updated August 23, 2026

get/v1/me

Authentication

  • bearerAuth
  • bearerAuth: http / bearer — Use an Inth API key or OAuth access token in the Authorization header.

Responses

200

Authenticated principal and accessible organizations.

Content type application/json

PropertyTypeRequiredDescription
successbooleanRequired
dataobjectRequired
data.principalobjectRequired
data.principal.type"session" | "api_key" | "oauth"Required
data.principal.userIdstringOptionalPresent for session and oauth principals. API keys are organization credentials and carry no acting user.
data.principal.keyIdstringOptional
data.principal.organizationIdstringOptionalThe organization the API key belongs to (api_key principals only).
data.principal.createdBystringOptionalUser who minted the API key. Attribution only, never authorization.
data.principal.activeOrganizationIdstring | nullOptional
data.activeOrganizationIdstring | nullRequired
data.organizationsobject[]Required
data.organizations[].organizationIdstringRequired
data.organizations[].organizationSlugstringRequired
data.organizations[].organizationNamestringRequired
data.organizations[].rolestringRequired
View JSON schema
{
  "type": "object",
  "required": [
    "success",
    "data"
  ],
  "properties": {
    "success": {
      "type": "boolean",
      "const": true
    },
    "data": {
      "type": "object",
      "required": [
        "principal",
        "activeOrganizationId",
        "organizations"
      ],
      "properties": {
        "principal": {
          "type": "object",
          "required": [
            "type"
          ],
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "session",
                "api_key",
                "oauth"
              ]
            },
            "userId": {
              "type": "string",
              "description": "Present for session and oauth principals. API keys are organization credentials and carry no acting user."
            },
            "keyId": {
              "type": "string"
            },
            "organizationId": {
              "type": "string",
              "description": "The organization the API key belongs to (api_key principals only)."
            },
            "createdBy": {
              "type": "string",
              "description": "User who minted the API key. Attribution only, never authorization."
            },
            "activeOrganizationId": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        },
        "activeOrganizationId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "organizations": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "organizationId",
              "organizationSlug",
              "organizationName",
              "role"
            ],
            "properties": {
              "organizationId": {
                "type": "string"
              },
              "organizationSlug": {
                "type": "string"
              },
              "organizationName": {
                "type": "string"
              },
              "role": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  }
}

401

Authentication is missing, invalid, or expired.

Content type application/json

PropertyTypeRequiredDescription
successbooleanRequired
errorobjectRequired
error.code"UNAUTHORIZED" | "FORBIDDEN" | "INSTANCE_LIMIT_REACHED" | "PLAN_LIMIT_REACHED" | "PLAN_REQUIRED" | "INVALID_ORIGIN" | "INVALID_REGION" | "INVALID_PAYLOAD" | "NOT_FOUND" | "CONFLICT" | "KEY_LIMIT_REACHED" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "INTERNAL_ERROR"Required
error.messagestringRequired
error.detailsunknownOptionalOptional structured error details.
View JSON schema
{
  "type": "object",
  "required": [
    "success",
    "error"
  ],
  "properties": {
    "success": {
      "type": "boolean",
      "const": false
    },
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "enum": [
            "UNAUTHORIZED",
            "FORBIDDEN",
            "INSTANCE_LIMIT_REACHED",
            "PLAN_LIMIT_REACHED",
            "PLAN_REQUIRED",
            "INVALID_ORIGIN",
            "INVALID_REGION",
            "INVALID_PAYLOAD",
            "NOT_FOUND",
            "CONFLICT",
            "KEY_LIMIT_REACHED",
            "PAYLOAD_TOO_LARGE",
            "RATE_LIMITED",
            "SERVICE_UNAVAILABLE",
            "INTERNAL_ERROR"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "description": "Optional structured error details."
        }
      }
    }
  }
}

402

The requested operation requires a paid plan. API access (organization API keys) requires the Starter plan or higher; a downgraded organization receives this error until its plan is restored.

Content type application/json

PropertyTypeRequiredDescription
successbooleanRequired
errorobjectRequired
error.code"UNAUTHORIZED" | "FORBIDDEN" | "INSTANCE_LIMIT_REACHED" | "PLAN_LIMIT_REACHED" | "PLAN_REQUIRED" | "INVALID_ORIGIN" | "INVALID_REGION" | "INVALID_PAYLOAD" | "NOT_FOUND" | "CONFLICT" | "KEY_LIMIT_REACHED" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "INTERNAL_ERROR"Required
error.messagestringRequired
error.detailsunknownOptionalOptional structured error details.
View JSON schema
{
  "type": "object",
  "required": [
    "success",
    "error"
  ],
  "properties": {
    "success": {
      "type": "boolean",
      "const": false
    },
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "enum": [
            "UNAUTHORIZED",
            "FORBIDDEN",
            "INSTANCE_LIMIT_REACHED",
            "PLAN_LIMIT_REACHED",
            "PLAN_REQUIRED",
            "INVALID_ORIGIN",
            "INVALID_REGION",
            "INVALID_PAYLOAD",
            "NOT_FOUND",
            "CONFLICT",
            "KEY_LIMIT_REACHED",
            "PAYLOAD_TOO_LARGE",
            "RATE_LIMITED",
            "SERVICE_UNAVAILABLE",
            "INTERNAL_ERROR"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "description": "Optional structured error details."
        }
      }
    }
  }
}

403

The authenticated principal cannot access the resource.

Content type application/json

PropertyTypeRequiredDescription
successbooleanRequired
errorobjectRequired
error.code"UNAUTHORIZED" | "FORBIDDEN" | "INSTANCE_LIMIT_REACHED" | "PLAN_LIMIT_REACHED" | "PLAN_REQUIRED" | "INVALID_ORIGIN" | "INVALID_REGION" | "INVALID_PAYLOAD" | "NOT_FOUND" | "CONFLICT" | "KEY_LIMIT_REACHED" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "INTERNAL_ERROR"Required
error.messagestringRequired
error.detailsunknownOptionalOptional structured error details.
View JSON schema
{
  "type": "object",
  "required": [
    "success",
    "error"
  ],
  "properties": {
    "success": {
      "type": "boolean",
      "const": false
    },
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "enum": [
            "UNAUTHORIZED",
            "FORBIDDEN",
            "INSTANCE_LIMIT_REACHED",
            "PLAN_LIMIT_REACHED",
            "PLAN_REQUIRED",
            "INVALID_ORIGIN",
            "INVALID_REGION",
            "INVALID_PAYLOAD",
            "NOT_FOUND",
            "CONFLICT",
            "KEY_LIMIT_REACHED",
            "PAYLOAD_TOO_LARGE",
            "RATE_LIMITED",
            "SERVICE_UNAVAILABLE",
            "INTERNAL_ERROR"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "description": "Optional structured error details."
        }
      }
    }
  }
}

500

An unexpected internal error occurred.

Content type application/json

PropertyTypeRequiredDescription
successbooleanRequired
errorobjectRequired
error.code"UNAUTHORIZED" | "FORBIDDEN" | "INSTANCE_LIMIT_REACHED" | "PLAN_LIMIT_REACHED" | "PLAN_REQUIRED" | "INVALID_ORIGIN" | "INVALID_REGION" | "INVALID_PAYLOAD" | "NOT_FOUND" | "CONFLICT" | "KEY_LIMIT_REACHED" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "INTERNAL_ERROR"Required
error.messagestringRequired
error.detailsunknownOptionalOptional structured error details.
View JSON schema
{
  "type": "object",
  "required": [
    "success",
    "error"
  ],
  "properties": {
    "success": {
      "type": "boolean",
      "const": false
    },
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "enum": [
            "UNAUTHORIZED",
            "FORBIDDEN",
            "INSTANCE_LIMIT_REACHED",
            "PLAN_LIMIT_REACHED",
            "PLAN_REQUIRED",
            "INVALID_ORIGIN",
            "INVALID_REGION",
            "INVALID_PAYLOAD",
            "NOT_FOUND",
            "CONFLICT",
            "KEY_LIMIT_REACHED",
            "PAYLOAD_TOO_LARGE",
            "RATE_LIMITED",
            "SERVICE_UNAVAILABLE",
            "INTERNAL_ERROR"
          ]
        },
        "message": {
          "type": "string"
        },
        "details": {
          "description": "Optional structured error details."
        }
      }
    }
  }
}