from line 1
1---
2title: Certificates
3url: https://platform.claude.com/docs/en/api/beta/tunnels/certificates
4---
5
61# Certificates
72
83## Create Tunnel Certificate
94
10**post** `/v1/tunnels/{tunnel_id}/certificates`
5**POST** `/v1/tunnels/{tunnel_id}/certificates`
116
127The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window.
138
149Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's server certificate against this CA when it terminates the inner TLS session. A tunnel holds at most two non-archived certificates.
1510
16### Path Parameters
11### Path parameters
1712
1813- `tunnel_id: string`
1914
20### Header Parameters
15### Headers
2116
2217- `"anthropic-beta": optional array of AnthropicBeta`
2318
from line 90
9590
9691 - `"mid-conversation-tool-changes-2026-07-01"`
9792
98### Body Parameters
93### Body parameters
9994
10095- `ca_certificate_pem: string`
10196
10297 PEM-encoded X.509 CA certificate. Must contain exactly one certificate and no private-key material. Maximum 8KB.
10398
99 maxLength: 8192
100
104101### Returns
105102
106- `BetaTunnelCertificate object { id, archived_at, created_at, 4 more }`
103- `BetaTunnelCertificate object`
107104
108105 A CA certificate attached to a tunnel.
109106
from line 112
115112
116113 A timestamp in RFC 3339 format
117114
115 format: date-time
116
118117 - `created_at: string`
119118
120119 A timestamp in RFC 3339 format
121120
121 format: date-time
122
122123 - `expires_at: string or null`
123124
124125 A timestamp in RFC 3339 format
125126
127 format: date-time
128
126129 - `fingerprint: string`
127130
128131 Lowercase hex SHA-256 fingerprint of the certificate's DER encoding.
from line 136
133136
134137 - `type: "tunnel_certificate"`
135138
136 - `"tunnel_certificate"`
137
138139### Example
139140
140```http
141```bash
141142curl https://api.anthropic.com/v1/tunnels/$TUNNEL_ID/certificates \
142143 -H 'Content-Type: application/json' \
143144 -H 'anthropic-version: 2023-06-01' \
from line 149
148149 }'
149150```
150151
151#### Response
152#### Response (200)
152153
153154```json
154155{
from line 165
164165
165166## Get Tunnel Certificate
166167
167**get** `/v1/tunnels/{tunnel_id}/certificates/{certificate_id}`
168**GET** `/v1/tunnels/{tunnel_id}/certificates/{certificate_id}`
168169
169170The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window.
170171
171172Fetches a tunnel certificate by ID.
172173
173### Path Parameters
174### Path parameters
174175
175176- `tunnel_id: string`
176177
177178- `certificate_id: string`
178179
179### Header Parameters
180### Headers
180181
181182- `"anthropic-beta": optional array of AnthropicBeta`
182183
from line 257
256257
257258### Returns
258259
259- `BetaTunnelCertificate object { id, archived_at, created_at, 4 more }`
260- `BetaTunnelCertificate object`
260261
261262 A CA certificate attached to a tunnel.
262263
from line 269
268269
269270 A timestamp in RFC 3339 format
270271
272 format: date-time
273
271274 - `created_at: string`
272275
273276 A timestamp in RFC 3339 format
274277
278 format: date-time
279
275280 - `expires_at: string or null`
276281
277282 A timestamp in RFC 3339 format
278283
284 format: date-time
285
279286 - `fingerprint: string`
280287
281288 Lowercase hex SHA-256 fingerprint of the certificate's DER encoding.
from line 293
286293
287294 - `type: "tunnel_certificate"`
288295
289 - `"tunnel_certificate"`
290
291296### Example
292297
293```http
298```bash
294299curl https://api.anthropic.com/v1/tunnels/$TUNNEL_ID/certificates/$CERTIFICATE_ID \
295300 -H 'anthropic-version: 2023-06-01' \
296301 -H 'anthropic-beta: mcp-tunnels-2026-06-22' \
from line 302
297302 -H "X-Api-Key: $ANTHROPIC_API_KEY"
298303```
299304
300#### Response
305#### Response (200)
301306
302307```json
303308{
from line 318
313318
314319## List Tunnel Certificates
315320
316**get** `/v1/tunnels/{tunnel_id}/certificates`
321**GET** `/v1/tunnels/{tunnel_id}/certificates`
317322
318323The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window.
319324
320325Lists the certificates registered on a tunnel. Archived certificates are excluded unless include_archived is set.
321326
322### Path Parameters
327### Path parameters
323328
324329- `tunnel_id: string`
325330
326### Query Parameters
331### Query parameters
327332
328333- `include_archived: optional boolean`
329334
from line 338
333338
334339 Maximum number of certificates to return per page. Defaults to 20, maximum 1000.
335340
341 format: int32
342
336343- `page: optional string`
337344
338345 Opaque pagination cursor from a previous `list_tunnel_certificates` response.
339346
340### Header Parameters
347### Headers
341348
342349- `"anthropic-beta": optional array of AnthropicBeta`
343350
from line 436
429436
430437 A timestamp in RFC 3339 format
431438
439 format: date-time
440
432441 - `created_at: string`
433442
434443 A timestamp in RFC 3339 format
435444
445 format: date-time
446
436447 - `expires_at: string or null`
437448
438449 A timestamp in RFC 3339 format
439450
451 format: date-time
452
440453 - `fingerprint: string`
441454
442455 Lowercase hex SHA-256 fingerprint of the certificate's DER encoding.
from line 460
447460
448461 - `type: "tunnel_certificate"`
449462
450 - `"tunnel_certificate"`
451
452463- `next_page: string or null`
453464
454465 Pagination cursor for the next page, or null if no more results.
from line 466
455466
456467### Example
457468
458```http
469```bash
459470curl https://api.anthropic.com/v1/tunnels/$TUNNEL_ID/certificates \
460471 -H 'anthropic-version: 2023-06-01' \
461472 -H 'anthropic-beta: mcp-tunnels-2026-06-22' \
from line 473
462473 -H "X-Api-Key: $ANTHROPIC_API_KEY"
463474```
464475
465#### Response
476#### Response (200)
466477
467478```json
468479{
from line 494
483494
484495## Archive Tunnel Certificate
485496
486**post** `/v1/tunnels/{tunnel_id}/certificates/{certificate_id}/archive`
497**POST** `/v1/tunnels/{tunnel_id}/certificates/{certificate_id}/archive`
487498
488499The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window.
489500
490501Archives a tunnel certificate, removing it from the set Anthropic trusts for the tunnel. The certificate record is retained. Archiving the last non-archived certificate is permitted; the tunnel rejects MCP traffic until a new certificate is added.
491502
492### Path Parameters
503### Path parameters
493504
494505- `tunnel_id: string`
495506
496507- `certificate_id: string`
497508
498### Header Parameters
509### Headers
499510
500511- `"anthropic-beta": optional array of AnthropicBeta`
501512
from line 586
575586
576587### Returns
577588
578- `BetaTunnelCertificate object { id, archived_at, created_at, 4 more }`
589- `BetaTunnelCertificate object`
579590
580591 A CA certificate attached to a tunnel.
581592
from line 598
587598
588599 A timestamp in RFC 3339 format
589600
601 format: date-time
602
590603 - `created_at: string`
591604
592605 A timestamp in RFC 3339 format
593606
607 format: date-time
608
594609 - `expires_at: string or null`
595610
596611 A timestamp in RFC 3339 format
597612
613 format: date-time
614
598615 - `fingerprint: string`
599616
600617 Lowercase hex SHA-256 fingerprint of the certificate's DER encoding.
from line 622
605622
606623 - `type: "tunnel_certificate"`
607624
608 - `"tunnel_certificate"`
609
610625### Example
611626
612```http
627```bash
613628curl https://api.anthropic.com/v1/tunnels/$TUNNEL_ID/certificates/$CERTIFICATE_ID/archive \
614629 -X POST \
615630 -H 'anthropic-version: 2023-06-01' \
from line 632
617632 -H "X-Api-Key: $ANTHROPIC_API_KEY"
618633```
619634
620#### Response
635#### Response (200)
621636
622637```json
623638{
from line 646
631646}
632647```
633648
634## Domain Types
649## Domain types
635650
636651### Beta Tunnel Certificate
637652
638- `BetaTunnelCertificate object { id, archived_at, created_at, 4 more }`
653- `BetaTunnelCertificate object`
639654
640655 A CA certificate attached to a tunnel.
641656
from line 662
647662
648663 A timestamp in RFC 3339 format
649664
665 format: date-time
666
650667 - `created_at: string`
651668
652669 A timestamp in RFC 3339 format
653670
671 format: date-time
672
654673 - `expires_at: string or null`
655674
656675 A timestamp in RFC 3339 format
657676
677 format: date-time
678
658679 - `fingerprint: string`
659680
660681 Lowercase hex SHA-256 fingerprint of the certificate's DER encoding.
from line 685
664685 ID of the tunnel the certificate is registered against.
665686
666687 - `type: "tunnel_certificate"`
667
668 - `"tunnel_certificate"`
669688
No line in this hunk matches that.