# Pushlink APIs

## Metadata API

JSON output

```http
https://adm.pushlink.com/apps/api_list_json?packageName=some.package.name&apiKey=yourApiKey

#optional query string param --> &deviceId=mydeviceID
```

## Upload API

After uploading, you can manually set up the APK as current in the web administration

```bash
curl -F "apiKey=yourApiKey" -F "apk=@yourApp.apk" https://adm.pushlink.com/apps/api_upload
```

There are two optional parameters:

```bash
-F "current=true" -F "whatsnew=this is the fanciest release" 
```

### Raw text responses

> We understand the response should be better. In the next version of the API, the response will be JSON with error codes, and better English will be used in the text description.

* PushLink deploy sucessful.
* PushLink deploy fails. Invalid Api Key.
* PushLink deploy fails. Invalid APK file.
* PushLink deploy fails. This APK hash is the same of another APK you have uploaded.

## Download API

Download the current apk

```bash
curl -o yourApp.apk 'https://adm.pushlink.com/download?package=some.package.name&api_key=yourApiKey'
```

{% hint style="info" %}
You can also generate a **hashed download link** in the dashboard to hide your credentials.
{% endhint %}

![](https://3807780648-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LEuZr4CqIWfHJ0tGCot%2F-LLydbvYWcS4p3owxgNN%2F-LLyeGHr1h8NyOusKLSV%2FScreenshot%20\(8\).png?alt=media\&token=3db79f45-a653-473c-a2ca-4cae943c60b9)
