---
title: "Register agent"
method: POST
path: "/register"
tags: ["registration"]
---

# Register agent

`POST /register`

Register a new agent with the server

## Request body

- GithubComThandIoAgentInternalConfigRegistrationRequest
  - `commit` string
  - `endpoint` string — Login server endpoint
  - `environment` GithubComThandIoAgentInternalModelsEnvironmentConfig
    - `architecture` string — amd64, arm64
    - `config` GithubComThandIoAgentInternalModelsBasicConfig
    - `ephemeral` boolean — true if running in an ephemeral environment
    - `hostname` string
    - `metaData` GithubComThandIoAgentInternalModelsBasicConfig
    - `name` string — This is the name of the environment or hostname
    - `operatingSystem` string — Operating System details
    - `operatingSystemVersion` string — e.g. 10, 11, 12 for macOS
    - `platform` 'aws' | 'gcp' | 'azure' | 'kubernetes' | 'local'
  - `identifier` string
  - `mode` 'server' | 'agent' | 'client'
  - `origin` string — Where the agent is running, used for logging and analytics
  - `version` string

## Response `200`

Registration successful

- GithubComThandIoAgentInternalConfigRegistrationResponse
  - `logging` GithubComThandIoAgentInternalModelsLoggingConfig
    - `format` string
    - `level` string
    - `open_telemetry` GithubComThandIoAgentInternalModelsOpenTelemetryConfig
      - `enabled` boolean
      - `endpoint` ModelEndpoint
    - `output` string
  - `providers` GithubComThandIoAgentInternalConfigProviderDefinitionsConfig
    - `definitions` object — Load providers directly from config using mapstructure:",remain"
    - `path` string
    - `plugins` ConfigProviderPluginConfig
      - `definitions` object — Load providers directly from config using mapstructure:",remain"
      - `path` string
      - `url` string
    - `url` ModelEndpoint
    - `vault` string — vault secret / path to use
  - `roles` ConfigRoleConfig
    - `definitions` object — Store everything in memory
    - `path` string
    - `url` ModelEndpoint
    - `vault` string — vault secret / path to use
  - `services` GithubComThandIoAgentInternalModelsServicesConfig
    - `analytics` ModelsAnalyticsConfig
      - `config` GithubComThandIoAgentInternalModelsBasicConfig
      - `disabled` boolean — Disable Analytics service
      - `provider` string — Provider - the Analytics service provider (e.g., "posthog")
    - `encryption` ModelsServiceConfig
      - `config` GithubComThandIoAgentInternalModelsBasicConfig
      - `provider` string — aws|gcp|azure|local
    - `largeLanguageModel` ModelsLargeLanguageModelConfig
      - `apikey` string
      - `baseURL` string — e.g. https://api.openai.com/v1
      - `model` string — e.g. gpt-4, gpt-3.5-turbo, etc
      - `provider` 'openai' | 'gemini' | 'anthropic' — e.g. openai, azure, etc
    - `publicKeyInfrastructure` ModelsPublicKeyInfrastructureConfig
      - `config` GithubComThandIoAgentInternalModelsBasicConfig
      - `provider` string — aws|gcp|azure|local (defaults to environment platform)
    - `scheduler` ModelsServiceConfig
      - `config` GithubComThandIoAgentInternalModelsBasicConfig
      - `provider` string — aws|gcp|azure|local
    - `temporal` GithubComThandIoAgentInternalModelsTemporalConfig
      - `apiKey` string
      - `disableVersioning` boolean — DisableVersioning disables worker versioning/deployments for testing
      - `host` string
      - `mtlsCert` string
      - `mtlsCertFile` string
      - `mtlsKey` string
      - `mtlsKeyFile` string
      - `mtlsVaultName` string — HSM key resource ID (AWS KMS ARN, Azure Key Vault key URL, GCP KMS resource name)
      - `mtlsVaultPassword` string
      - `mtlsVaultType` string — Optional: auto-detected from platform
      - `namespace` string
      - `port` integer
    - `vault` ModelsServiceConfig
      - `config` GithubComThandIoAgentInternalModelsBasicConfig
      - `provider` string — aws|gcp|azure|local
  - `success` boolean
  - `workflows` ConfigWorkflowConfig
    - `definitions` object — Store everything in memory
    - `path` string
    - `plugins` ConfigWorkflowPluginConfig
      - `definitions` object — Store everything in memory
      - `path` string
      - `url` string
    - `url` ModelEndpoint
    - `vault` string — vault secret / path to use

## Other responses

- `400` — Bad request

---

[API](https://skmtc.net/thand-io/apis/thand-agent-api.md) · [All operations](https://skmtc.net/thand-io/apis/thand-agent-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/thand-io/thand-agent-api/revisions/62befb178368/schema)
