> For the complete documentation index, see [llms.txt](https://docs.edgegap.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.edgegap.com/docs.edgegap.com-ko/docs/api/integration.md).

# 통합

## ⭐ 매치메이킹

각 매치메이커는 귀하의 조직의 Edgegap API와는 별개의 자체 निजी API를 관리합니다.

{% tabs fullWidth="false" %}
{% tab title="🍀 간단한 예제" %}
{% file src="/files/14b6ffa3890b93d8ed0e728d53fbdd52cbf89d2c" %}
{% endtab %}

{% tab title="🏁 고급 예제" %}
{% file src="/files/1f47150282ca483b287b4abc35b94c20bfbfc78a" %}
{% endtab %}

{% tab title="🎾 커스텀 로비" %}
{% file src="/files/83b4f884a59d4ddea02a2d55080e8329cbc3a72b" %}
{% endtab %}

{% tab title="🥛 백필 쇼케이스" %}
{% file src="/files/d5795a50d78bc6f2bea9bade7fecc64bf5e58a5b" %}
{% endtab %}

{% tab title="⚔️ 경쟁 게임" %}
{% file src="/files/8dfd24ddc148549052dd960968279664ccf05229" %}
{% endtab %}

{% tab title="🤝 협동 게임" %}
{% file src="/files/ef7a88bb123882b5a07342912092cd6213a73349" %}
{% endtab %}

{% tab title="🎈 소셜 게임" %}
{% file src="/files/2c48ab5797906a4f71bf9d27e796037d8abeaef1" %}
{% endtab %}
{% endtabs %}

API 명세 가져오기 [Scalar API 웹 클라이언트](https://client.scalar.com/workspace/default/request/default) 또는 [Swagger 편집기](https://editor.swagger.io/) 세부 정보를 확인하려면.

{% hint style="success" %}
**Swagger 웹 UI**서비스를 배포하면 OpenAPI 명세와 편리한 웹 UI가 생성됩니다. 브라우저에서 해당 URL을 열어 모든 API 엔드포인트를 확인하고 테스트하며 페이로드 예시를 검토하세요.
{% endhint %}

## 🧭 서버 브라우저

각 매치메이커는 귀하의 조직의 Edgegap API와는 별개의 자체 निजी API를 관리합니다.

{% file src="/files/a0b0fe1a1a63da3aade9aa2e66f8bc8364bfcf69" %}

{% hint style="success" %}
**Swagger 웹 UI**서비스를 배포하면 OpenAPI 명세와 편리한 웹 UI가 생성됩니다. 브라우저에서 해당 URL을 열어 모든 API 엔드포인트를 확인하고 테스트하며 페이로드 예시를 검토하세요.
{% endhint %}

## 🗺️ 위치

## List Cloud Locations

> List all locations available for cloud deployment. Optionally specify an app version to remove locations with insufficient capacity to deploy at this time.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.06.17"},"tags":[{"name":"Deployments"},{"name":"Integration"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"LocationData":{"required":["administrative_division","city","continent","country","latitude","longitude","timezone"],"properties":{"city":{"type":"string","description":"City of the deployment."},"country":{"type":"string","description":"Country of the deployment."},"continent":{"type":"string","description":"Continent of the deployment."},"administrative_division":{"type":"string","description":"Administrative division of the deployment."},"timezone":{"type":"string","description":"Timezone of the deployment."},"latitude":{"type":"number","description":"Latitude of the deployment"},"longitude":{"type":"number","description":"Longitude of the deployment."}},"type":"object"},"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/locations":{"get":{"summary":"List Cloud Locations","deprecated":false,"description":"List all locations available for cloud deployment. Optionally specify an app version to remove locations with insufficient capacity to deploy at this time.","operationId":"location-list","tags":["Deployments","Integration"],"parameters":[{"name":"app","in":"query","description":"Custom identifier.","required":false,"schema":{"type":"string"}},{"name":"version","in":"query","description":"Custom version identifier, often a timestamp or a build ID.","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"","schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","description":"","schema":{"type":"integer","minimum":1}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"locations":{"type":"array","items":{"$ref":"#/components/schemas/LocationData"},"description":"List of locations available for deployment at this time."},"messages":{"type":"array","description":"Additional information regarding locations.","items":{"type":"string"}},"total_count":{"type":"integer","minimum":0},"pagination":{"type":"object","properties":{"number":{"type":"integer","minimum":0},"next_page_number":{"type":"integer","minimum":1,"nullable":true},"previous_page_number":{"type":"integer","minimum":1,"nullable":true},"paginator":{"type":"object","properties":{"num_pages":{"type":"integer","minimum":1}},"required":["num_pages"]},"has_next":{"type":"boolean","default":true},"has_previous":{"type":"boolean","default":false}},"required":["number","next_page_number","previous_page_number","paginator","has_next","has_previous"]}},"required":["total_count","pagination"]}}},"headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## 🗼 비콘

## List Ping Beacons

> List all active ping beacons.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.06.17"},"tags":[{"name":"Integration"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"LocationData":{"required":["administrative_division","city","continent","country","latitude","longitude","timezone"],"properties":{"city":{"type":"string","description":"City of the deployment."},"country":{"type":"string","description":"Country of the deployment."},"continent":{"type":"string","description":"Continent of the deployment."},"administrative_division":{"type":"string","description":"Administrative division of the deployment."},"timezone":{"type":"string","description":"Timezone of the deployment."},"latitude":{"type":"number","description":"Latitude of the deployment"},"longitude":{"type":"number","description":"Longitude of the deployment."}},"type":"object"},"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/locations/beacons":{"get":{"summary":"List Ping Beacons","deprecated":false,"description":"List all active ping beacons.","operationId":"beacon-list","tags":["Integration"],"parameters":[{"name":"page","in":"query","description":"","schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","description":"","schema":{"type":"integer","minimum":1}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"locations":{"type":"array","description":"List of all active ping beacons.","items":{"type":"object","properties":{"host":{"type":"string","description":"Public IP address of the ping beacon."},"fqdn":{"type":"string","description":"FQDN (URL) to ping the beacon."},"udp_port":{"type":"integer","description":"UDP port to ping from client.","minimum":0,"maximum":59999},"tcp_port":{"type":"integer","description":"TCP port to ping from client.","minimum":0,"maximum":59999},"location":{"$ref":"#/components/schemas/LocationData"}},"required":["host","location"]}},"count":{"type":"integer","description":"Count of returned active ping beacons."}},"required":["count"]}}},"headers":{}},"400":{"description":"","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"required":["message"]}}},"headers":{}},"401":{"description":"","content":{"application/json":{"schema":{"title":"","type":"object","properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"required":["message"]}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## 🗒️ 로그 저장소

## Create a New Endpoint Storage

> Create an endpoint storage to store your container logs at the end of a deployment.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.06.17"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/storage/endpoint":{"post":{"summary":"Create a New Endpoint Storage","deprecated":false,"description":"Create an endpoint storage to store your container logs at the end of a deployment.","operationId":"endpoint-create","tags":["Endpoint Storage","Integration"],"parameters":[{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Endpoint Storage"},"container_log_version":{"type":"string","default":"v1","enum":["v1","v2"],"description":"v1 (default, legacy) stores 1 file per deployment. v2 (enhanced) streams chunks of logs in real time."},"access_key_id":{"type":"string","description":"Your access key ID to connect to your S3 Bucket."},"endpoint":{"type":"string","description":"Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain"},"bucket":{"type":"string","description":"Your secret access key to connect to your S3 Bucket. Will be encrypted."},"output_format":{"type":"string","description":"The format how the logs will be exported to the bucket.","default":"TEXT","enum":["TEXT","NDJSON"]},"secret_access_key":{"type":"string","description":"Your secret access key to connect to your S3 Bucket. Will be encrypted."}},"required":["access_key_id","bucket","endpoint","name","secret_access_key"]}}},"required":true},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Endpoint Storage"},"container_log_version":{"type":"string","description":"v1 (default, legacy) stores 1 file per deployment. v2 (enhanced) streams chunks of logs in real time.","enum":["v1","v2"],"default":"v1"},"access_key_id":{"type":"string","description":"Your access key ID to connect to your S3 Bucket."},"endpoint":{"type":"string","description":"Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain"},"bucket":{"type":"string","description":"Your secret access key to connect to your S3 Bucket. Will be encrypted."},"output_format":{"type":"string","description":"The format how the logs will be exported to the bucket.","default":"TEXT","enum":["TEXT","NDJSON"]},"create_time":{"type":"string","description":"UTC time of endpoint creation"},"last_updated":{"type":"string","description":"UTC time of endpoint last update"}},"required":["access_key_id","bucket","endpoint","name"]}}},"headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Get an Endpoint Storage

> Retrieve an endpoint storage. The \`\`\`secret\_access\_key\`\`\` won't be displayed.

````json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.06.17"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"EndpointStorage":{"required":["access_key_id","bucket","endpoint","name"],"properties":{"name":{"type":"string","description":"Name of the Endpoint Storage"},"container_log_version":{"type":"string","default":"v1","enum":["v1","v2"],"description":"v1 (default, legacy) stores 1 file per deployment. v2 (enhanced) streams chunks of logs in real time."},"access_key_id":{"type":"string","description":"Your access key ID to connect to your S3 Bucket."},"endpoint":{"type":"string","description":"Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain"},"bucket":{"type":"string","description":"Your secret access key to connect to your S3 Bucket. Will be encrypted."},"output_format":{"type":"string","description":"The format how the logs will be exported to the bucket.","default":"TEXT","enum":["TEXT","NDJSON"]},"create_time":{"type":"string","description":"UTC time of endpoint storage creation"},"last_updated":{"type":"string","description":"UTC time of endpoint storage last update"}},"type":"object"},"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/storage/endpoint/{endpoint_name}":{"get":{"summary":"Get an Endpoint Storage","deprecated":false,"description":"Retrieve an endpoint storage. The ```secret_access_key``` won't be displayed.","operationId":"endpoint-get","tags":["Endpoint Storage","Integration"],"parameters":[{"name":"endpoint_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointStorage"}}},"headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
````

## List All Endpoint Storage

> List all endpoint storage.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.06.17"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"EndpointStorage":{"required":["access_key_id","bucket","endpoint","name"],"properties":{"name":{"type":"string","description":"Name of the Endpoint Storage"},"container_log_version":{"type":"string","default":"v1","enum":["v1","v2"],"description":"v1 (default, legacy) stores 1 file per deployment. v2 (enhanced) streams chunks of logs in real time."},"access_key_id":{"type":"string","description":"Your access key ID to connect to your S3 Bucket."},"endpoint":{"type":"string","description":"Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain"},"bucket":{"type":"string","description":"Your secret access key to connect to your S3 Bucket. Will be encrypted."},"output_format":{"type":"string","description":"The format how the logs will be exported to the bucket.","default":"TEXT","enum":["TEXT","NDJSON"]},"create_time":{"type":"string","description":"UTC time of endpoint storage creation"},"last_updated":{"type":"string","description":"UTC time of endpoint storage last update"}},"type":"object"},"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/storage/endpoints":{"get":{"summary":"List All Endpoint Storage","deprecated":false,"description":"List all endpoint storage.","operationId":"endpoints-list","tags":["Endpoint Storage","Integration"],"parameters":[{"name":"page","in":"query","description":"","schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","description":"","schema":{"type":"integer","minimum":1}},{"name":"X-Fields","in":"header","description":"An optional fields mask","required":false,"schema":{"type":"string","format":"mask"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"endpoints":{"type":"array","items":{"$ref":"#/components/schemas/EndpointStorage"}},"pagination":{}}}}},"headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Update an Endpoint Storage

> Update an Endpoint Storage with new specifications.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.06.17"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/storage/endpoint/{endpoint_name}":{"patch":{"summary":"Update an Endpoint Storage","deprecated":false,"description":"Update an Endpoint Storage with new specifications.","operationId":"endpoint-update","tags":["Endpoint Storage","Integration"],"parameters":[{"name":"endpoint_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Endpoint Storage"},"container_log_version":{"type":"string","default":"v1","enum":["v1","v2"],"description":"v1 (default, legacy) stores 1 file per deployment. v2 (enhanced) streams chunks of logs in real time."},"access_key_id":{"type":"string","description":"Your access key ID to connect to your S3 Bucket."},"secret_access_key":{"type":"string","description":"Your secret access key to connect to your S3 Bucket. Will be\n            encrypted."},"endpoint":{"type":"string","description":"Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain"},"bucket":{"type":"string","description":"Your secret access key to connect to your S3 Bucket. Will be encrypted."},"output_format":{"type":"string","description":"The format how the logs will be exported to the bucket.","default":"TEXT","enum":["TEXT","NDJSON"]}}}}},"required":true},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Endpoint Storage"},"container_log_version":{"type":"string","enum":["v1","v2"],"default":"v1","description":"v1 (default, legacy) stores 1 file per deployment. v2 (enhanced) streams chunks of logs in real time."},"access_key_id":{"type":"string","description":"Your access key ID to connect to your S3 Bucket."},"endpoint":{"type":"string","description":"Full URL to your S3 Bucket with https or http. It's recommended to not include your bucket name as a subdomain"},"bucket":{"type":"string","description":"Your secret access key to connect to your S3 Bucket. Will be encrypted."},"output_format":{"type":"string","description":"The format how the logs will be exported to the bucket.","default":"TEXT","enum":["TEXT","NDJSON"]},"create_time":{"type":"string","description":"UTC time of endpoint storage creation"},"last_updated":{"type":"string","description":"UTC time of endpoint storage last update"}}}}},"headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Delete an Endpoint Storage

> Delete an endpoint storage. All the application versions linked to it won't be able to store logs anymore.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.06.17"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/storage/endpoint/{endpoint_name}":{"delete":{"summary":"Delete an Endpoint Storage","deprecated":false,"description":"Delete an endpoint storage. All the application versions linked to it won't be able to store logs anymore.","operationId":"endpoint-delete","tags":["Endpoint Storage","Integration"],"parameters":[{"name":"endpoint_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content","headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Create a New Pull Profile

> Create a pull profile. Pull profile will upload data from an endpoint storage to a deployment container on boot. You must link the application version to the pull profile first.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.06.17"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/storage/endpoint/{endpoint_name}/pull-profile":{"post":{"summary":"Create a New Pull Profile","deprecated":false,"description":"Create a pull profile. Pull profile will upload data from an endpoint storage to a deployment container on boot. You must link the application version to the pull profile first.","operationId":"pull-profile-create","tags":["Endpoint Storage","Integration"],"parameters":[{"name":"endpoint_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the pull profile"},"source":{"type":"string","description":"Source in the S3 bucket to fetch from"},"source_type":{"type":"string","description":"If the source is a File or a Directory","enum":["File","Folder"]},"destination":{"type":"string","description":"Destination path where your source will be uploaded in your container. Make sure to avoid protected destinations, such as `/etc/`, as this will prevent the files from being copied to your deployment, and will make your deployment fail. Make sure a normal user can write to the destination folder."}},"required":["destination","name","source","source_type"]}}},"required":true},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the pull profile"},"source":{"type":"string","description":"Source in the S3 bucket to fetch from"},"source_type":{"type":"string","description":"If the source is a File or a Directory","enum":["File","Folder"]},"destination":{"type":"string","description":"Destination path where your source will be uploaded in your container. Make sure to avoid protected destinations, such as `/etc/`, as this will prevent the files from being copied to your deployment, and will make your deployment fail. Make sure a normal user can write to the destination folder."},"create_time":{"type":"string","description":"UTC time of pull profile creation"},"last_updated":{"type":"string","description":"UTC time of pull profile last update"}},"required":["destination","name","source","source_type"]}}},"headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Get a Pull Profile

> Retrieve a pull profile and its specifications.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.06.17"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"PullProfile":{"required":["destination","name","source","source_type"],"properties":{"name":{"type":"string","description":"Name of the pull profile"},"source":{"type":"string","description":"Source in the S3 bucket to fetch from"},"source_type":{"type":"string","description":"If the source is a File or a Directory","enum":["File","Folder"]},"destination":{"type":"string","description":"Destination path where your source will be uploaded in your container. Make sure to avoid protected destinations, such as `/etc/`, as this will prevent the files from being copied to your deployment, and will make your deployment fail. Make sure a normal user can write to the destination folder."},"create_time":{"type":"string","description":"UTC time of pull profile creation"},"last_updated":{"type":"string","description":"UTC time of pull profile last update"}},"type":"object"},"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/storage/endpoint/{endpoint_name}/pull-profile/{pull_profile_name}":{"get":{"summary":"Get a Pull Profile","deprecated":false,"description":"Retrieve a pull profile and its specifications.","operationId":"pull-profile-get","tags":["Endpoint Storage","Integration"],"parameters":[{"name":"endpoint_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"pull_profile_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PullProfile"}}},"headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## List All Pull Profile of an Endpoint Storage

> List all pull profiles of an endpoint storage.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.06.17"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"PullProfile":{"required":["destination","name","source","source_type"],"properties":{"name":{"type":"string","description":"Name of the pull profile"},"source":{"type":"string","description":"Source in the S3 bucket to fetch from"},"source_type":{"type":"string","description":"If the source is a File or a Directory","enum":["File","Folder"]},"destination":{"type":"string","description":"Destination path where your source will be uploaded in your container. Make sure to avoid protected destinations, such as `/etc/`, as this will prevent the files from being copied to your deployment, and will make your deployment fail. Make sure a normal user can write to the destination folder."},"create_time":{"type":"string","description":"UTC time of pull profile creation"},"last_updated":{"type":"string","description":"UTC time of pull profile last update"}},"type":"object"},"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/storage/endpoint/{endpoint_name}/pull-profiles":{"get":{"summary":"List All Pull Profile of an Endpoint Storage","deprecated":false,"description":"List all pull profiles of an endpoint storage.","operationId":"pull-profile-list","tags":["Endpoint Storage","Integration"],"parameters":[{"name":"endpoint_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"","schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","description":"","schema":{"type":"integer","minimum":1}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"pull_profiles":{"type":"array","items":{"$ref":"#/components/schemas/PullProfile"}},"total_count":{"type":"integer","minimum":0},"pagination":{"type":"object","properties":{"number":{"type":"integer","minimum":0},"next_page_number":{"type":"integer","minimum":1,"nullable":true},"previous_page_number":{"type":"integer","minimum":1,"nullable":true},"paginator":{"type":"object","properties":{"num_pages":{"type":"integer","minimum":1}},"required":["num_pages"]},"has_next":{"type":"boolean","default":true},"has_previous":{"type":"boolean","default":false}},"required":["number","next_page_number","previous_page_number","paginator","has_next","has_previous"]}},"required":["total_count","pagination"]}}},"headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Link a Pull Profile to an Application Version

> Link a pull profile to an app version. Without a link, the pull profile by itself will do nothing.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.06.17"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/storage/endpoint/{endpoint_name}/pull-profile/{pull_profile_name}/app/{app_name}/version/{version_name}":{"put":{"summary":"Link a Pull Profile to an Application Version","deprecated":false,"description":"Link a pull profile to an app version. Without a link, the pull profile by itself will do nothing.","operationId":"pull-profile-link-app-version","tags":["Endpoint Storage","Integration"],"parameters":[{"name":"endpoint_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"pull_profile_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"app_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"version_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"app":{"type":"string","description":"Name of the linked app of the linked version"},"app_version":{"type":"string","description":"Name of the linked app version."},"endpoint":{"type":"string","description":"Name of the endpoint storage"},"pull_profile":{"type":"string","description":"Name of the pull profile the app version is linked to."},"create_time":{"type":"string","description":"UTC time of link creation"},"last_updated":{"type":"string","description":"UTC time of link last update"}},"required":["app","app_version","endpoint","pull_profile"]}}},"headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Update a Pull Profile

> Update a pull profile with new specifications.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.06.17"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/storage/endpoint/{endpoint_name}/pull-profile/{pull_profile_name}":{"patch":{"summary":"Update a Pull Profile","deprecated":false,"description":"Update a pull profile with new specifications.","operationId":"pull-profile-update","tags":["Endpoint Storage","Integration"],"parameters":[{"name":"endpoint_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"pull_profile_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}},"required":true},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the pull profile"},"source":{"type":"string","description":"Source in the S3 bucket to fetch from"},"source_type":{"type":"string","description":"If the source is a File or a Directory","enum":["File","Folder"]},"destination":{"type":"string","description":"Destination path where your source will be uploaded in your container. Make sure to avoid protected destinations, such as `/etc/`, as this will prevent the files from being copied to your deployment, and will make your deployment fail. Make sure a normal user can write to the destination folder."},"create_time":{"type":"string","description":"UTC time of pull profile creation"},"last_updated":{"type":"string","description":"UTC time of pull profile last update"}}}}},"headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Unlink a Pull Profile From an Application Version

> Unlink a pull profile from an app version. It will not delete the pull profile.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.06.17"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/storage/endpoint/{endpoint_name}/pull-profile/{pull_profile_name}/app/{app_name}/version/{version_name}":{"delete":{"summary":"Unlink a Pull Profile From an Application Version","deprecated":false,"description":"Unlink a pull profile from an app version. It will not delete the pull profile.","operationId":"pull-profile-unlink-app-version","tags":["Endpoint Storage","Integration"],"parameters":[{"name":"endpoint_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"pull_profile_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"app_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"version_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"204":{"description":"Success","headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```

## Delete a Pull Profile

> Delete a pull profile. All the application versions linked won't receive the data upload anymore. It will not delete your endpoint storage.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.06.17"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"v1"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"[Manage API tokens in dashboard.](https://app.edgegap.com/user-settings?tab=tokens)"}},"schemas":{"Error":{"required":["message"],"properties":{"message":{"type":"string","description":"A message depending of the request termination"}},"type":"object"}}},"paths":{"/v1/storage/endpoint/{endpoint_name}/pull-profile/{pull_profile_name}":{"delete":{"summary":"Delete a Pull Profile","deprecated":false,"description":"Delete a pull profile. All the application versions linked won't receive the data upload anymore. It will not delete your endpoint storage.","operationId":"pull-profile-delete","tags":["Endpoint Storage","Integration"],"parameters":[{"name":"endpoint_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"pull_profile_name","in":"path","description":"","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","description":"","schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content","headers":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{}}}}}}}
```
