> For the complete documentation index, see [llms.txt](https://docs.defguard.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.defguard.net/for-developers/rest-api/core/gateway/adopt-a-gateway-in-a-location.md).

# Adopt a gateway in a location

Registers the gateway, issues its client certificate and returns the created gateway. Use `GET /api/v1/network/{network_id}/gateways/setup` to follow the setup progress.

```json
{"openapi":"3.1.0","info":{"title":"defguard Core API","version":"2.0.3"},"tags":[{"name":"gateway","description":"Gateways registered in your locations, their connection status and setup."}],"security":[{"cookie":[]},{"api_token":[]}],"components":{"securitySchemes":{"cookie":{"type":"apiKey","in":"cookie","name":"defguard_session"},"api_token":{"type":"http","scheme":"bearer"}},"schemas":{"GatewayAdoptRequest":{"type":"object","required":["name","ip_or_domain","grpc_port"],"properties":{"grpc_port":{"type":"integer","format":"int32","minimum":0},"ip_or_domain":{"type":"string"},"name":{"type":"string"}}},"Gateway":{"type":"object","required":["id","location_id","name","address","port","enabled","modified_at","modified_by"],"properties":{"address":{"type":"string"},"certificate_expiry":{"type":["string","null"],"format":"date-time"},"certificate_serial":{"type":["string","null"]},"connected_at":{"type":["string","null"],"format":"date-time"},"core_client_cert_expiry":{"type":["string","null"],"format":"date-time"},"disconnected_at":{"type":["string","null"],"format":"date-time"},"enabled":{"type":"boolean"},"id":{"type":"integer","format":"int64"},"location_id":{"$ref":"#/components/schemas/i64"},"modified_at":{"type":"string","format":"date-time"},"modified_by":{"type":"string"},"name":{"type":"string"},"port":{"type":"integer","format":"int32"},"version":{"type":["string","null"]}}},"i64":{"type":"integer","format":"int64"},"ApiErrorResponse":{"type":"object","description":"Body returned with error responses.","required":["msg"],"properties":{"code":{"type":["string","null"],"description":"Machine-readable error code, returned for selected errors."},"msg":{"type":"string","description":"Human-readable error message."}}}}},"paths":{"/api/v1/network/{network_id}/gateways/adopt":{"post":{"tags":["gateway"],"summary":"Adopt a gateway in a location","description":"Registers the gateway, issues its client certificate and returns the created gateway.\nUse `GET /api/v1/network/{network_id}/gateways/setup` to follow the setup progress.","operationId":"adopt_gateway","parameters":[{"name":"network_id","in":"path","description":"ID of the network.","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayAdoptRequest"}}},"required":true},"responses":{"201":{"description":"Gateway adopted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Gateway"}}}},"400":{"description":"Invalid request, or the gateway is unreachable or too old.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"401":{"description":"Session is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Requires admin privileges.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"404":{"description":"Network not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Unable to adopt gateway.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}}}}
```
