# Integration

## ⭐ Matchmaking

Each matchmaker manages their own private API, separate from your organization's Edgegap API.

{% tabs fullWidth="false" %}
{% tab title="🍀 Simple Example" %}
{% file src="/files/xo7YWqkyH45ZTQp265pG" %}
{% endtab %}

{% tab title="🏁 Advanced Example" %}
{% file src="/files/g3XbWYhExzQqIgfozjJ2" %}
{% endtab %}

{% tab title="🎾 Custom Lobby" %}
{% file src="/files/puN4tMLXMjezZXEIDSEZ" %}
{% endtab %}

{% tab title="🥛 Backfill Showcase" %}
{% file src="/files/Qatu3klwXW4jHD6eNzxa" %}
{% endtab %}

{% tab title="⚔️ Competitive Games" %}
{% file src="/files/L7uSekelDnllYgaAOMP7" %}
{% endtab %}

{% tab title="🤝 Cooperative Games" %}
{% file src="/files/gXfaw2WbHjsioU19yvYq" %}
{% endtab %}

{% tab title="🎈 Social Games" %}
{% file src="/files/4f54lJkUXM2LnKxcvKsU" %}
{% endtab %}
{% endtabs %}

Import API specification to [Scalar API Web Client](https://client.scalar.com/workspace/default/request/default) or [Swagger Editor](https://editor.swagger.io/) to inspect details.

{% hint style="success" %}
**Swagger Web UI**: deploying your service will generate an openAPI specification and a convenient web UI. Open the URL in your browser to view and test all API endpoints, and to review payload examples.
{% endhint %}

## 🧭 Server Browser

Each matchmaker manages their own private API, separate from your organization's Edgegap API.

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

{% hint style="success" %}
**Swagger Web UI**: deploying your service will generate an openAPI specification and a convenient web UI. Open the URL in your browser to view and test all API endpoints, and to review payload examples.
{% endhint %}

## 🗺️ Locations

## 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.04.24"},"tags":[{"name":"Deployments"},{"name":"Integration"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"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":{}}}}}}}
```

## 🗼 Beacons

## List Ping Beacons

> List all active ping beacons.

```json
{"openapi":"3.0.1","info":{"title":"Edgegap v1 API","version":"2026.04.24"},"tags":[{"name":"Integration"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"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":{}}}}}}}
```

## 🗒️ Log Storage

## 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.04.24"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"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"},"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"},"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.04.24"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"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"},"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.04.24"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"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"},"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.04.24"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"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"},"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"},"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.04.24"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"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.04.24"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"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.04.24"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"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.04.24"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"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.04.24"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"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.04.24"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"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.04.24"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"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.04.24"},"tags":[{"name":"Integration"},{"name":"Endpoint Storage"}],"servers":[{"url":"https://api.edgegap.com","description":"https://api.edgegap.com"}],"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":{}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.edgegap.com/docs/api/integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
