NAV Navigation
Shell HTTP JavaScript Node.JS Ruby Python Java Go

validation v1.0.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Validation

Base URLs:

Authentication

AdminProtected

PostReserveName

Code samples

# You can also use wget
curl -X POST https://api.global.id/v1/admin/identities/reserve \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST https://api.global.id/v1/admin/identities/reserve HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/admin/identities/reserve',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "type": "object",
  "properties": {
    "gid_name": {
      "description": "The globaliD name associated with this identity.",
      "type": "string",
      "example": "johnsmith"
    }
  },
  "required": [
    "gid_name"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/admin/identities/reserve',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v1/admin/identities/reserve',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.global.id/v1/admin/identities/reserve', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/admin/identities/reserve");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v1/admin/identities/reserve", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/admin/identities/reserve

Adds new reserved name identity

Body parameter

{
  "type": "object",
  "properties": {
    "gid_name": {
      "description": "The globaliD name associated with this identity.",
      "type": "string",
      "example": "johnsmith"
    }
  },
  "required": [
    "gid_name"
  ]
}

Parameters

Name In Type Required Description
body body IdentityReservedName false none

Example responses

401 Response

{
  "description": "Unauthorised error",
  "required": [
    "error_code",
    "error_id",
    "message",
    "statusCode"
  ],
  "properties": {
    "statusCode": {
      "type": "integer",
      "format": "int32",
      "example": 401
    },
    "message": {
      "type": "string",
      "example": "You are not authorized to access this resource"
    },
    "error_code": {
      "type": "string",
      "example": "ERR_UNAUTHORIZED"
    },
    "error_id": {
      "type": "string",
      "format": "uuid",
      "example": "8c8bac3a-bc8c-4d44-bccf-1022b2434971"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Reserved name identity sucessfully inserted None
400 Bad Request none None
401 Unauthorized You are not authorised UnauthorisedError
403 Forbidden You are not authorised ForbiddenError
500 Internal Server Error Some error occured Error

DeleteReserveName

Code samples

# You can also use wget
curl -X DELETE https://api.global.id/v1/admin/identities/reserve/:gid_name \
  -H 'Accept: application/json'

DELETE https://api.global.id/v1/admin/identities/reserve/:gid_name HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/admin/identities/reserve/:gid_name',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/admin/identities/reserve/:gid_name',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.delete 'https://api.global.id/v1/admin/identities/reserve/:gid_name',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.delete('https://api.global.id/v1/admin/identities/reserve/:gid_name', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/admin/identities/reserve/:gid_name");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.global.id/v1/admin/identities/reserve/:gid_name", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /v1/admin/identities/reserve/:gid_name

Deletes reserved name identity

Parameters

Name In Type Required Description
gid_name path gid_name true none

Example responses

401 Response

{
  "description": "Unauthorised error",
  "required": [
    "error_code",
    "error_id",
    "message",
    "statusCode"
  ],
  "properties": {
    "statusCode": {
      "type": "integer",
      "format": "int32",
      "example": 401
    },
    "message": {
      "type": "string",
      "example": "You are not authorized to access this resource"
    },
    "error_code": {
      "type": "string",
      "example": "ERR_UNAUTHORIZED"
    },
    "error_id": {
      "type": "string",
      "format": "uuid",
      "example": "8c8bac3a-bc8c-4d44-bccf-1022b2434971"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Reserved name identity sucessfully deleted None
401 Unauthorized You are not authorised UnauthorisedError
403 Forbidden none None
500 Internal Server Error Some error occured Error

PutReserveName

Code samples

# You can also use wget
curl -X PUT https://api.global.id/v1/admin/identities/reserve/:gid_name/unlock-code \
  -H 'Accept: application/json'

PUT https://api.global.id/v1/admin/identities/reserve/:gid_name/unlock-code HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/admin/identities/reserve/:gid_name/unlock-code',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/admin/identities/reserve/:gid_name/unlock-code',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.put 'https://api.global.id/v1/admin/identities/reserve/:gid_name/unlock-code',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.put('https://api.global.id/v1/admin/identities/reserve/:gid_name/unlock-code', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/admin/identities/reserve/:gid_name/unlock-code");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.global.id/v1/admin/identities/reserve/:gid_name/unlock-code", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /v1/admin/identities/reserve/:gid_name/unlock-code

Creates unlock code for reserved name identity

Parameters

Name In Type Required Description
gid_name path gid_name true none

Example responses

401 Response

{
  "description": "Unauthorised error",
  "required": [
    "error_code",
    "error_id",
    "message",
    "statusCode"
  ],
  "properties": {
    "statusCode": {
      "type": "integer",
      "format": "int32",
      "example": 401
    },
    "message": {
      "type": "string",
      "example": "You are not authorized to access this resource"
    },
    "error_code": {
      "type": "string",
      "example": "ERR_UNAUTHORIZED"
    },
    "error_id": {
      "type": "string",
      "format": "uuid",
      "example": "8c8bac3a-bc8c-4d44-bccf-1022b2434971"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Reserved name identity sucessfully inserted None
401 Unauthorized You are not authorised UnauthorisedError
403 Forbidden none None
500 Internal Server Error Some error occured Error

GetAllWhitelistedPhoneNumbers

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/admin/identities/whitelist-phone-number \
  -H 'Accept: application/json'

GET https://api.global.id/v1/admin/identities/whitelist-phone-number HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/admin/identities/whitelist-phone-number',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/admin/identities/whitelist-phone-number',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/admin/identities/whitelist-phone-number',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/admin/identities/whitelist-phone-number', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/admin/identities/whitelist-phone-number");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/admin/identities/whitelist-phone-number", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/admin/identities/whitelist-phone-number

Gets a list of all whitelisted phone numbers

Example responses

200 Response

{
  "description": "Return a list of whitelisted phone numbers",
  "type": "object",
  "properties": {
    "whitelisted_phone_numbers": {
      "description": "List of whitelisted phone numbers.",
      "type": "array",
      "items": {
        "description": "A phone number.",
        "type": "string",
        "example": "+38640123456"
      }
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Whitelisted phone numbers sucessfully retrieved GetAllWhitelistedPhoneNumbersResponse

AddWhitelistedPhoneNumber

Code samples

# You can also use wget
curl -X POST https://api.global.id/v1/admin/identities/whitelist-phone-number \
  -H 'Content-Type: application/json'

POST https://api.global.id/v1/admin/identities/whitelist-phone-number HTTP/1.1
Host: api.global.id
Content-Type: application/json

var headers = {
  'Content-Type':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/admin/identities/whitelist-phone-number',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "description": "Payload with a phone number",
  "type": "object",
  "properties": {
    "phone_numbers": {
      "description": "A phone number.",
      "type": "string",
      "example": "+38640123456"
    }
  }
}';
const headers = {
  'Content-Type':'application/json'

};

fetch('https://api.global.id/v1/admin/identities/whitelist-phone-number',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v1/admin/identities/whitelist-phone-number',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json'
}

r = requests.post('https://api.global.id/v1/admin/identities/whitelist-phone-number', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/admin/identities/whitelist-phone-number");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v1/admin/identities/whitelist-phone-number", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/admin/identities/whitelist-phone-number

Adds a whitelisted phone number

Body parameter

{
  "description": "Payload with a phone number",
  "type": "object",
  "properties": {
    "phone_numbers": {
      "description": "A phone number.",
      "type": "string",
      "example": "+38640123456"
    }
  }
}

Parameters

Name In Type Required Description
body body AddWhitelistedPhoneNumberPayload false none

Responses

Status Meaning Description Schema
201 Created Phone number is added None
204 No Content Phone number is not added None

CheckWhitelistedPhoneNumber

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/admin/identities/whitelist-phone-number/:phone_number \
  -H 'Accept: application/json'

GET https://api.global.id/v1/admin/identities/whitelist-phone-number/:phone_number HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/admin/identities/whitelist-phone-number/:phone_number',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/admin/identities/whitelist-phone-number/:phone_number',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/admin/identities/whitelist-phone-number/:phone_number',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/admin/identities/whitelist-phone-number/:phone_number', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/admin/identities/whitelist-phone-number/:phone_number");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/admin/identities/whitelist-phone-number/:phone_number", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/admin/identities/whitelist-phone-number/:phone_number

Checks if phone number is whitelisted

Parameters

Name In Type Required Description
phone_number path phone_number true none

Example responses

200 Response

{
  "description": "Return a boolean if phone number is whitelisted or not",
  "type": "object",
  "properties": {
    "whitelisted": {
      "description": "Boolean describing if phone number is whitelisted or not.",
      "type": "boolean",
      "example": "true"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Successfully retrieved status if phone number is whitelisted or not CheckWhitelistedPhoneNumberResponse
204 No Content Retrieving status of invalid phone number None

DeleteWhitelistedPhoneNumber

Code samples

# You can also use wget
curl -X DELETE https://api.global.id/v1/admin/identities/whitelist-phone-number/:phone_number

DELETE https://api.global.id/v1/admin/identities/whitelist-phone-number/:phone_number HTTP/1.1
Host: api.global.id


$.ajax({
  url: 'https://api.global.id/v1/admin/identities/whitelist-phone-number/:phone_number',
  method: 'delete',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

fetch('https://api.global.id/v1/admin/identities/whitelist-phone-number/:phone_number',
{
  method: 'DELETE'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

result = RestClient.delete 'https://api.global.id/v1/admin/identities/whitelist-phone-number/:phone_number',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.delete('https://api.global.id/v1/admin/identities/whitelist-phone-number/:phone_number', params={

)

print r.json()

URL obj = new URL("https://api.global.id/v1/admin/identities/whitelist-phone-number/:phone_number");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.global.id/v1/admin/identities/whitelist-phone-number/:phone_number", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /v1/admin/identities/whitelist-phone-number/:phone_number

Deletes whitelisted phone number

Parameters

Name In Type Required Description
phone_number path phone_number true none

Responses

Status Meaning Description Schema
204 No Content Phone number is deleted None

Exposed

AppClientController.getDevApplicationInfo

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/app-client/{app_uuid} \
  -H 'Accept: application/json'

GET https://api.global.id/v1/app-client/{app_uuid} HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/app-client/{app_uuid}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/app-client/{app_uuid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/app-client/{app_uuid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/app-client/{app_uuid}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/app-client/{app_uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/app-client/{app_uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/app-client/{app_uuid}

Retrieves application by id

Retrieves application by id

Parameters

Name In Type Required Description
app_uuid path string true none

Example responses

200 Response

{
  "properties": {
    "uuid": {
      "format": "uuid",
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string",
      "nullable": true
    },
    "logo": {
      "type": "string",
      "nullable": true
    },
    "public_key": {
      "type": "string",
      "nullable": true
    }
  },
  "type": "object",
  "required": [
    "uuid",
    "name",
    "logo"
  ]
}

Responses

Status Meaning Description Schema
200 OK Returns single application ApplicationInfo

LegalDocumentListController.getLegalDocuments

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/app-client/{app_uuid}/documents?document_id=items,%5Bobject%20Object%5D,type,array \
  -H 'Accept: application/json'

GET https://api.global.id/v1/app-client/{app_uuid}/documents?document_id=items,%5Bobject%20Object%5D,type,array HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/app-client/{app_uuid}/documents',
  method: 'get',
  data: '?document_id=items,%5Bobject%20Object%5D,type,array',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/app-client/{app_uuid}/documents?document_id=items,%5Bobject%20Object%5D,type,array',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/app-client/{app_uuid}/documents',
  params: {
  'document_id' => 'array[string]'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/app-client/{app_uuid}/documents', params={
  'document_id': {
  "items": {
    "type": "string"
  },
  "type": "array"
}
}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/app-client/{app_uuid}/documents?document_id=items,%5Bobject%20Object%5D,type,array");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/app-client/{app_uuid}/documents", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/app-client/{app_uuid}/documents

Retrieves legal documents by client_id and short_ids

Retrieves legal documents by client_id and short_ids

Parameters

Name In Type Required Description
app_uuid path string true none
document_id query array[string] true none

Example responses

200 Response

{
  "properties": {
    "documents": {
      "items": {
        "properties": {
          "short_id": {
            "minLength": 1,
            "type": "string"
          },
          "display_name": {
            "minLength": 2,
            "type": "string"
          },
          "asset_url": {
            "format": "url",
            "type": "string"
          },
          "latest_version": {
            "type": "number"
          }
        },
        "type": "object",
        "required": [
          "short_id",
          "display_name",
          "asset_url",
          "latest_version"
        ]
      },
      "type": "array"
    }
  },
  "type": "object",
  "required": [
    "documents"
  ]
}

Responses

Status Meaning Description Schema
200 OK Returns array of legal documents LegalDocuments

AvatarController.generateAvatar

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/avatar/{gid_uuid}

GET https://api.global.id/v1/avatar/{gid_uuid} HTTP/1.1
Host: api.global.id


$.ajax({
  url: 'https://api.global.id/v1/avatar/{gid_uuid}',
  method: 'get',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

fetch('https://api.global.id/v1/avatar/{gid_uuid}',
{
  method: 'GET'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

result = RestClient.get 'https://api.global.id/v1/avatar/{gid_uuid}',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.get('https://api.global.id/v1/avatar/{gid_uuid}', params={

)

print r.json()

URL obj = new URL("https://api.global.id/v1/avatar/{gid_uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/avatar/{gid_uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/avatar/{gid_uuid}

Endpoint returns generated avatar for given gid_uuid

Endpoint returns generated avatar for given gid_uuid

Parameters

Name In Type Required Description
gid_uuid path string true none

Responses

Status Meaning Description Schema
200 OK Response with generated avatar None

RecoveryAttemptController.initiateRecoveryAttempt

Code samples

# You can also use wget
curl -X POST https://api.global.id/v1/custodian-recovery/attempts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST https://api.global.id/v1/custodian-recovery/attempts HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/custodian-recovery/attempts',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "properties": {
    "gid_name": {
      "type": "string"
    },
    "recovery_public_key": {
      "type": "string"
    }
  },
  "type": "object",
  "required": [
    "gid_name",
    "recovery_public_key"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/custodian-recovery/attempts',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v1/custodian-recovery/attempts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.global.id/v1/custodian-recovery/attempts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/custodian-recovery/attempts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v1/custodian-recovery/attempts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/custodian-recovery/attempts

Initiate a new recovery attempt

Initiate a new recovery attempt

Body parameter

{
  "properties": {
    "gid_name": {
      "type": "string"
    },
    "recovery_public_key": {
      "type": "string"
    }
  },
  "type": "object",
  "required": [
    "gid_name",
    "recovery_public_key"
  ]
}

Parameters

Name In Type Required Description
body body InitiateRecoveryAttemptBody true InitiateRecoveryAttemptBody

Example responses

201 Response

{
  "properties": {
    "uuid": {
      "format": "uuid",
      "type": "string"
    },
    "status": {
      "enum": [
        "pending",
        "approved",
        "denied",
        "expired",
        "delivered"
      ],
      "type": "string"
    },
    "recovery_shares": {
      "items": {},
      "type": "array"
    },
    "created_at": {
      "oneOf": [
        {
          "format": "date",
          "type": "string"
        },
        {
          "format": "date-time",
          "type": "string"
        }
      ]
    },
    "updated_at": {
      "oneOf": [
        {
          "format": "date",
          "type": "string"
        },
        {
          "format": "date-time",
          "type": "string"
        }
      ]
    }
  },
  "type": "object",
  "required": [
    "uuid",
    "status",
    "recovery_shares",
    "created_at",
    "updated_at"
  ]
}

Responses

Status Meaning Description Schema
201 Created New recovery attempt with prepared shares RecoveryAttemptResponse
400 Bad Request Response 400 Inline
500 Internal Server Error Sending control code failed errors.ControlCodeSendError

Response Schema

RecoveryAttemptController.findRecoveryAttempt

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/custodian-recovery/attempts/{attempt_uuid} \
  -H 'Accept: application/json' \
  -H 'x-timestamp: [object Object]' \
  -H 'x-signature: [object Object]'

GET https://api.global.id/v1/custodian-recovery/attempts/{attempt_uuid} HTTP/1.1
Host: api.global.id
Accept: application/json
x-timestamp: [object Object]
x-signature: [object Object]

var headers = {
  'Accept':'application/json',
  'x-timestamp':{
  "type": "string"
},
  'x-signature':{
  "type": "string"
}

};

$.ajax({
  url: 'https://api.global.id/v1/custodian-recovery/attempts/{attempt_uuid}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'x-timestamp':{
  "type": "string"
},
  'x-signature':{
  "type": "string"
}

};

fetch('https://api.global.id/v1/custodian-recovery/attempts/{attempt_uuid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'x-timestamp' => {
  "type": "string"
},
  'x-signature' => {
  "type": "string"
}
}

result = RestClient.get 'https://api.global.id/v1/custodian-recovery/attempts/{attempt_uuid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'x-timestamp': {
  "type": "string"
},
  'x-signature': {
  "type": "string"
}
}

r = requests.get('https://api.global.id/v1/custodian-recovery/attempts/{attempt_uuid}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/custodian-recovery/attempts/{attempt_uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "x-timestamp": []string{"[object Object]"},
        "x-signature": []string{"[object Object]"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/custodian-recovery/attempts/{attempt_uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/custodian-recovery/attempts/{attempt_uuid}

Find recovery attempt by id

Find recovery attempt by id

Parameters

Name In Type Required Description
x-timestamp header string true none
x-signature header string true none
attempt_uuid path string true none

Example responses

200 Response

{
  "properties": {
    "uuid": {
      "format": "uuid",
      "type": "string"
    },
    "status": {
      "enum": [
        "pending",
        "approved",
        "denied",
        "expired",
        "delivered"
      ],
      "type": "string"
    },
    "recovery_shares": {
      "items": {},
      "type": "array"
    },
    "created_at": {
      "oneOf": [
        {
          "format": "date",
          "type": "string"
        },
        {
          "format": "date-time",
          "type": "string"
        }
      ]
    },
    "updated_at": {
      "oneOf": [
        {
          "format": "date",
          "type": "string"
        },
        {
          "format": "date-time",
          "type": "string"
        }
      ]
    }
  },
  "type": "object",
  "required": [
    "uuid",
    "status",
    "recovery_shares",
    "created_at",
    "updated_at"
  ]
}

Responses

Status Meaning Description Schema
200 OK Recovery attempt with approved shares RecoveryAttemptResponse
403 Forbidden Signature not valid errors.InvalidSignatureError

EmailVerificationController.verifyEmail

Code samples

# You can also use wget
curl -X PUT https://api.global.id/v1/email-verification/{contact_email_uuid} \
  -H 'Accept: application/json'

PUT https://api.global.id/v1/email-verification/{contact_email_uuid} HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/email-verification/{contact_email_uuid}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/email-verification/{contact_email_uuid}',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.put 'https://api.global.id/v1/email-verification/{contact_email_uuid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.put('https://api.global.id/v1/email-verification/{contact_email_uuid}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/email-verification/{contact_email_uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.global.id/v1/email-verification/{contact_email_uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /v1/email-verification/{contact_email_uuid}

Verifies the email address

Verifies the email address

Parameters

Name In Type Required Description
contact_email_uuid path string true none

Example responses

200 Response

{
  "properties": {
    "message": {
      "type": "string"
    }
  },
  "type": "object",
  "required": [
    "message"
  ]
}

Responses

Status Meaning Description Schema
200 OK Email address was verified EmailVerificationResponse
400 Bad Request ERR_INVALID_PROTOCOL errors.InvalidConnectUrlProtocolError
404 Not Found ERR_DEVELOPER_APPLICATION_NOT_FOUND errors.DevApplicationMissingError

GlobalSwaggerController.getGlobalSwagger

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/global-swagger.yaml \
  -H 'Accept: text/x-yaml'

GET https://api.global.id/v1/global-swagger.yaml HTTP/1.1
Host: api.global.id
Accept: text/x-yaml

var headers = {
  'Accept':'text/x-yaml'

};

$.ajax({
  url: 'https://api.global.id/v1/global-swagger.yaml',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'text/x-yaml'

};

fetch('https://api.global.id/v1/global-swagger.yaml',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'text/x-yaml'
}

result = RestClient.get 'https://api.global.id/v1/global-swagger.yaml',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'text/x-yaml'
}

r = requests.get('https://api.global.id/v1/global-swagger.yaml', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/global-swagger.yaml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"text/x-yaml"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/global-swagger.yaml", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/global-swagger.yaml

Get global swagger

Example responses

Responses

Status Meaning Description Schema
200 OK Successful response None

Response Schema

KeyPairSearchController.getSearchKeyPairPublic

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/identity/keys/search?gid_uuid=items,%5Bobject%20Object%5D,type,array \
  -H 'Accept: application/json'

GET https://api.global.id/v1/identity/keys/search?gid_uuid=items,%5Bobject%20Object%5D,type,array HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/identity/keys/search',
  method: 'get',
  data: '?gid_uuid=items,%5Bobject%20Object%5D,type,array',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/identity/keys/search?gid_uuid=items,%5Bobject%20Object%5D,type,array',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/identity/keys/search',
  params: {
  'gid_uuid' => 'array[string]'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/identity/keys/search', params={
  'gid_uuid': {
  "items": {
    "format": "uuid",
    "type": "string"
  },
  "type": "array"
}
}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/identity/keys/search?gid_uuid=items,%5Bobject%20Object%5D,type,array");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/identity/keys/search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/identity/keys/search

Get a list of key pairs

Get a list of key pairs

Parameters

Name In Type Required Description
gid_uuid query array[string] true none
purpose query string false none

Enumerated Values

Parameter Value
purpose messaging
purpose encryption
purpose signing

Example responses

200 Response

{
  "properties": {
    "key_pairs": {
      "items": {
        "properties": {
          "uuid": {
            "format": "uuid",
            "type": "string"
          },
          "algorithm_type": {
            "enum": [
              "ripple",
              "rsa"
            ],
            "type": "string"
          },
          "gid_uuid": {
            "format": "uuid",
            "type": "string"
          },
          "public_key": {
            "minLength": 16,
            "type": "string",
            "nullable": true
          },
          "purpose": {
            "enum": [
              "messaging",
              "encryption",
              "signing"
            ],
            "type": "string",
            "nullable": true
          }
        },
        "type": "object",
        "required": [
          "uuid",
          "algorithm_type",
          "gid_uuid",
          "public_key",
          "purpose"
        ]
      },
      "type": "array"
    }
  },
  "type": "object",
  "required": [
    "key_pairs"
  ]
}

Responses

Status Meaning Description Schema
200 OK Requested key pair data GetKeyPairSearchResponse

KeyPairSearchController.postSearchKeyPairPublic

Code samples

# You can also use wget
curl -X POST https://api.global.id/v1/identity/keys/search \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST https://api.global.id/v1/identity/keys/search HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/identity/keys/search',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "properties": {
    "gid_uuid": {
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "type": "array"
    },
    "purpose": {
      "enum": [
        "messaging",
        "encryption",
        "signing"
      ],
      "type": "string"
    }
  },
  "type": "object",
  "required": [
    "gid_uuid"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/identity/keys/search',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v1/identity/keys/search',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.global.id/v1/identity/keys/search', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/identity/keys/search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v1/identity/keys/search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/identity/keys/search

Post request and get a list of key pairs

Post request and get a list of key pairs

Body parameter

{
  "properties": {
    "gid_uuid": {
      "items": {
        "format": "uuid",
        "type": "string"
      },
      "type": "array"
    },
    "purpose": {
      "enum": [
        "messaging",
        "encryption",
        "signing"
      ],
      "type": "string"
    }
  },
  "type": "object",
  "required": [
    "gid_uuid"
  ]
}

Parameters

Name In Type Required Description
body body PostKeyPairSearchBody true PostKeyPairSearchBody

Example responses

200 Response

{
  "properties": {
    "key_pairs": {
      "items": {
        "properties": {
          "uuid": {
            "format": "uuid",
            "type": "string"
          },
          "algorithm_type": {
            "enum": [
              "ripple",
              "rsa"
            ],
            "type": "string"
          },
          "gid_uuid": {
            "format": "uuid",
            "type": "string"
          },
          "public_key": {
            "minLength": 16,
            "type": "string",
            "nullable": true
          },
          "purpose": {
            "enum": [
              "messaging",
              "encryption",
              "signing"
            ],
            "type": "string",
            "nullable": true
          }
        },
        "type": "object",
        "required": [
          "uuid",
          "algorithm_type",
          "gid_uuid",
          "public_key",
          "purpose"
        ]
      },
      "type": "array"
    }
  },
  "type": "object",
  "required": [
    "key_pairs"
  ]
}

Responses

Status Meaning Description Schema
200 OK Requested key pair data PostKeyPairSearchResponse

KeyPairController.getKeyPairPublic

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/identity/{uuid}/keys \
  -H 'Accept: application/json'

GET https://api.global.id/v1/identity/{uuid}/keys HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/identity/{uuid}/keys',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/identity/{uuid}/keys',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/identity/{uuid}/keys',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/identity/{uuid}/keys', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/identity/{uuid}/keys");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/identity/{uuid}/keys", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/identity/{uuid}/keys

Get a key pair list

Get a key pair list

Parameters

Name In Type Required Description
uuid path string true none

Example responses

200 Response

{
  "properties": {
    "key_pairs": {
      "items": {
        "properties": {
          "uuid": {
            "format": "uuid",
            "type": "string"
          },
          "algorithm_type": {
            "enum": [
              "ripple",
              "rsa"
            ],
            "type": "string"
          },
          "gid_uuid": {
            "format": "uuid",
            "type": "string"
          },
          "public_key": {
            "minLength": 16,
            "type": "string",
            "nullable": true
          },
          "purpose": {
            "enum": [
              "messaging",
              "encryption",
              "signing"
            ],
            "type": "string",
            "nullable": true
          }
        },
        "type": "object",
        "required": [
          "uuid",
          "algorithm_type",
          "gid_uuid",
          "public_key",
          "purpose"
        ]
      },
      "type": "array"
    }
  },
  "type": "object",
  "required": [
    "key_pairs"
  ]
}

Responses

Status Meaning Description Schema
200 OK Public key pair list GetKeyPairPublicResponse

IpController.getIp

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/my-ip \
  -H 'Accept: application/json' \
  -H 'x-forwarded-for: [object Object]'

GET https://api.global.id/v1/my-ip HTTP/1.1
Host: api.global.id
Accept: application/json
x-forwarded-for: [object Object]

var headers = {
  'Accept':'application/json',
  'x-forwarded-for':{
  "type": "string"
}

};

$.ajax({
  url: 'https://api.global.id/v1/my-ip',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'x-forwarded-for':{
  "type": "string"
}

};

fetch('https://api.global.id/v1/my-ip',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'x-forwarded-for' => {
  "type": "string"
}
}

result = RestClient.get 'https://api.global.id/v1/my-ip',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'x-forwarded-for': {
  "type": "string"
}
}

r = requests.get('https://api.global.id/v1/my-ip', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/my-ip");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "x-forwarded-for": []string{"[object Object]"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/my-ip", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/my-ip

Get ip

Parameters

Name In Type Required Description
x-forwarded-for header string true none

Example responses

Responses

Status Meaning Description Schema
200 OK Successful response None

Response Schema

PiiRequestController.getPiiRequestExposed

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/photobooth/pii-requests/{pii_request_uuid} \
  -H 'Accept: application/json'

GET https://api.global.id/v1/photobooth/pii-requests/{pii_request_uuid} HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/photobooth/pii-requests/{pii_request_uuid}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/photobooth/pii-requests/{pii_request_uuid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/photobooth/pii-requests/{pii_request_uuid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/photobooth/pii-requests/{pii_request_uuid}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/photobooth/pii-requests/{pii_request_uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/photobooth/pii-requests/{pii_request_uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/photobooth/pii-requests/{pii_request_uuid}

Get a pii request that belongs to the provided uuid

Get a pii request that belongs to the provided uuid

Parameters

Name In Type Required Description
pii_request_uuid path string true none

Example responses

200 Response

{
  "properties": {
    "uuid": {
      "type": "string",
      "format": "uuid"
    },
    "attestation_request_uuid": {
      "type": "string",
      "format": "uuid"
    },
    "request_status": {
      "enum": [
        "in_progress",
        "failed",
        "completed"
      ],
      "type": "string"
    },
    "identity_uuid": {
      "type": "string",
      "format": "uuid"
    },
    "identity_public_key": {
      "type": "string"
    }
  },
  "type": "object",
  "required": [
    "uuid",
    "attestation_request_uuid",
    "request_status",
    "identity_uuid",
    "identity_public_key"
  ]
}

Responses

Status Meaning Description Schema
200 OK Return pii request PiiRequest
404 Not Found ERR_PII_REQUEST_NOT_FOUND errors.PiiRequestNotFoundError

PiiController.addPii

Code samples

# You can also use wget
curl -X POST https://api.global.id/v1/photobooth/pii-requests/{pii_request_uuid}/pii \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST https://api.global.id/v1/photobooth/pii-requests/{pii_request_uuid}/pii HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/photobooth/pii-requests/{pii_request_uuid}/pii',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "properties": {
    "data": {
      "items": {
        "properties": {
          "encrypted_file_password": {
            "nullable": true,
            "type": "string"
          },
          "file_uuid": {
            "nullable": true,
            "format": "uuid",
            "type": "string"
          },
          "encrypted_value": {
            "nullable": true,
            "type": "string"
          },
          "type": {
            "enum": [
              "country",
              "file_front",
              "file_back",
              "selfie"
            ],
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "encrypted_file_password",
          "file_uuid",
          "encrypted_value",
          "type"
        ]
      },
      "type": "array"
    }
  },
  "type": "object",
  "required": [
    "data"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/photobooth/pii-requests/{pii_request_uuid}/pii',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v1/photobooth/pii-requests/{pii_request_uuid}/pii',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.global.id/v1/photobooth/pii-requests/{pii_request_uuid}/pii', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/photobooth/pii-requests/{pii_request_uuid}/pii");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v1/photobooth/pii-requests/{pii_request_uuid}/pii", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/photobooth/pii-requests/{pii_request_uuid}/pii

Add a new pii

Add a new pii

Body parameter

{
  "properties": {
    "data": {
      "items": {
        "properties": {
          "encrypted_file_password": {
            "nullable": true,
            "type": "string"
          },
          "file_uuid": {
            "nullable": true,
            "format": "uuid",
            "type": "string"
          },
          "encrypted_value": {
            "nullable": true,
            "type": "string"
          },
          "type": {
            "enum": [
              "country",
              "file_front",
              "file_back",
              "selfie"
            ],
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "encrypted_file_password",
          "file_uuid",
          "encrypted_value",
          "type"
        ]
      },
      "type": "array"
    }
  },
  "type": "object",
  "required": [
    "data"
  ]
}

Parameters

Name In Type Required Description
pii_request_uuid path string true none
body body AddPiiArray true AddPiiArray

Example responses

404 Response

{
  "description": "ERR_PII_REQUEST_NOT_FOUND",
  "properties": {
    "statusCode": {
      "type": "integer",
      "format": "int32",
      "example": 404
    },
    "request_id": {
      "type": "string",
      "format": "uuid",
      "example": "39ac9a4f-27c8-45fa-a1dd-5b653c4a104f"
    },
    "error_id": {
      "type": "string",
      "format": "uuid",
      "example": "8c8bac3a-bc8c-4d44-bccf-1022b2434971"
    },
    "error_code": {
      "type": "string",
      "example": "ERR_NOT_FOUND"
    },
    "message": {
      "type": "string",
      "example": "ERR_PII_REQUEST_NOT_FOUND"
    }
  },
  "required": [
    "error_code",
    "error_id",
    "message",
    "statusCode"
  ]
}

Responses

Status Meaning Description Schema
201 Created New pii was added None
404 Not Found ERR_PII_REQUEST_NOT_FOUND errors.PiiRequestNotFoundError

ProofController.proofMembership

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/proofs/{proof_uuid} \
  -H 'Accept: application/json'

GET https://api.global.id/v1/proofs/{proof_uuid} HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/proofs/{proof_uuid}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/proofs/{proof_uuid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/proofs/{proof_uuid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/proofs/{proof_uuid}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/proofs/{proof_uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/proofs/{proof_uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/proofs/{proof_uuid}

Check proof of membership

Check proof of membership

Parameters

Name In Type Required Description
proof_uuid path string true none

Example responses

200 Response

{
  "properties": {
    "group": {
      "properties": {
        "uuid": {
          "format": "uuid",
          "type": "string"
        },
        "gid_name": {
          "type": "string"
        },
        "gid_uuid": {
          "format": "uuid",
          "type": "string"
        },
        "display_name": {
          "type": "string"
        },
        "owner_uuid": {
          "format": "uuid",
          "type": "string"
        },
        "group_visibility": {
          "enum": [
            "visible",
            "hidden"
          ],
          "type": "string"
        },
        "member_visibility": {
          "enum": [
            "anyone",
            "members",
            "hidden"
          ],
          "type": "string"
        },
        "membership_type": {
          "enum": [
            "open",
            "close"
          ],
          "type": "string"
        },
        "show_owner_name": {
          "type": "boolean"
        },
        "created_at": {
          "oneOf": [
            {
              "format": "date",
              "type": "string"
            },
            {
              "format": "date-time",
              "type": "string"
            }
          ]
        },
        "logo": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "updated_at": {
          "oneOf": [
            {
              "format": "date",
              "type": "string"
            },
            {
              "format": "date-time",
              "type": "string"
            }
          ]
        }
      },
      "type": "object",
      "required": [
        "uuid",
        "gid_name",
        "gid_uuid",
        "display_name",
        "owner_uuid",
        "group_visibility",
        "member_visibility",
        "membership_type",
        "show_owner_name",
        "created_at"
      ]
    },
    "identity": {
      "properties": {
        "purpose_personal": {
          "type": "boolean"
        },
        "purpose_professional": {
          "type": "boolean"
        },
        "purpose_recreational": {
          "type": "boolean"
        },
        "display_name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "display_image_url": {
          "type": "string"
        },
        "region_code": {
          "type": "string"
        },
        "region_name": {
          "type": "string"
        },
        "country_code": {
          "type": "string"
        },
        "country_name": {
          "type": "string"
        },
        "state_code": {
          "type": "string"
        },
        "state_name": {
          "type": "string"
        },
        "metro_code": {
          "type": "string"
        },
        "metro_name": {
          "type": "string"
        },
        "signup_type": {
          "enum": [
            "localid",
            "globalid"
          ],
          "type": "string"
        },
        "encrypted_signup_challenge": {
          "type": "string"
        },
        "gid_uuid": {
          "format": "uuid",
          "type": "string"
        },
        "gid_name": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "created_at": {
          "type": "string"
        },
        "released_at": {
          "type": "string"
        },
        "completed": {
          "type": "boolean"
        },
        "gid_name_moderation_status": {
          "type": "string"
        },
        "public_signing_key": {
          "type": "string"
        },
        "public_encryption_key": {
          "type": "string"
        },
        "is_private": {
          "type": "boolean"
        }
      },
      "type": "object",
      "required": [
        "gid_uuid",
        "status",
        "type",
        "created_at",
        "completed",
        "gid_name_moderation_status",
        "public_signing_key",
        "public_encryption_key",
        "is_private"
      ]
    },
    "isMember": {
      "type": "boolean"
    }
  },
  "type": "object",
  "required": [
    "group",
    "identity",
    "isMember"
  ]
}

Responses

Status Meaning Description Schema
200 OK Will return proofed identity and group ProofResponse
400 Bad Request REQUEST_FAILED errors.RequestError
403 Forbidden Response 403 Inline
404 Not Found Response 404 Inline

Response Schema

UploadController.uploadFile

Code samples

# You can also use wget
curl -X POST https://api.global.id/v1/upload?attestation_request_id=format,uuid,type,string \
  -H 'Accept: application/json'

POST https://api.global.id/v1/upload?attestation_request_id=format,uuid,type,string HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/upload',
  method: 'post',
  data: '?attestation_request_id=format,uuid,type,string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/upload?attestation_request_id=format,uuid,type,string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v1/upload',
  params: {
  'attestation_request_id' => 'string(uuid)'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.post('https://api.global.id/v1/upload', params={
  'attestation_request_id': {
  "format": "uuid",
  "type": "string"
}
}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/upload?attestation_request_id=format,uuid,type,string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v1/upload", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/upload

Uploads a file

Uploads a file

Parameters

Name In Type Required Description
attestation_request_id query string(uuid) true none

Example responses

201 Response

{
  "properties": {
    "file_uuid": {
      "format": "uuid",
      "type": "string"
    }
  },
  "type": "object",
  "required": [
    "file_uuid"
  ]
}

Responses

Status Meaning Description Schema
201 Created File was successfully uploaded UploadResponse
400 Bad Request ERR_UPLOAD_FILE_ERROR errors.UploadFileError
404 Not Found ERR_APP_LIMIT_NOT_AVAILABLE errors.AppLimitNotFoundError

VerificationFailedController.getVerificationSuccess

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/verification/failed/{attestation_request_id} \
  -H 'Accept: application/json'

GET https://api.global.id/v1/verification/failed/{attestation_request_id} HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/verification/failed/{attestation_request_id}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/verification/failed/{attestation_request_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/verification/failed/{attestation_request_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/verification/failed/{attestation_request_id}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/verification/failed/{attestation_request_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/verification/failed/{attestation_request_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/verification/failed/{attestation_request_id}

This route serves as a middleware which redirects to the URL with correct parameters

This route serves as a middleware which redirects to the URL with correct parameters

Parameters

Name In Type Required Description
attestation_request_id path string true none
failure_reason query string false none

Example responses

500 Response

{
  "description": "UNEXPECTED_ERROR",
  "properties": {
    "statusCode": {
      "type": "integer",
      "format": "int32",
      "example": 500
    },
    "request_id": {
      "type": "string",
      "format": "uuid",
      "example": "39ac9a4f-27c8-45fa-a1dd-5b653c4a104f"
    },
    "error_id": {
      "type": "string",
      "format": "uuid",
      "example": "8c8bac3a-bc8c-4d44-bccf-1022b2434971"
    },
    "error_code": {
      "type": "string",
      "example": "UNEXPECTED_ERROR"
    },
    "message": {
      "type": "string",
      "example": "UNEXPECTED_ERROR"
    }
  },
  "required": [
    "error_code",
    "error_id",
    "message",
    "statusCode"
  ]
}

Responses

Status Meaning Description Schema
302 Found Redirect to Attestation result landing screen None
500 Internal Server Error UNEXPECTED_ERROR errors.UnexpectedError

VerificationSuccessController.getVerificationSuccess

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/verification/success/{attestation_request_id} \
  -H 'Accept: application/json'

GET https://api.global.id/v1/verification/success/{attestation_request_id} HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/verification/success/{attestation_request_id}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/verification/success/{attestation_request_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/verification/success/{attestation_request_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/verification/success/{attestation_request_id}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/verification/success/{attestation_request_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/verification/success/{attestation_request_id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/verification/success/{attestation_request_id}

This route serves as a middleware which redirects to the URL with correct parameters

This route serves as a middleware which redirects to the URL with correct parameters

Parameters

Name In Type Required Description
attestation_request_id path string true none

Example responses

500 Response

{
  "description": "UNEXPECTED_ERROR",
  "properties": {
    "statusCode": {
      "type": "integer",
      "format": "int32",
      "example": 500
    },
    "request_id": {
      "type": "string",
      "format": "uuid",
      "example": "39ac9a4f-27c8-45fa-a1dd-5b653c4a104f"
    },
    "error_id": {
      "type": "string",
      "format": "uuid",
      "example": "8c8bac3a-bc8c-4d44-bccf-1022b2434971"
    },
    "error_code": {
      "type": "string",
      "example": "UNEXPECTED_ERROR"
    },
    "message": {
      "type": "string",
      "example": "UNEXPECTED_ERROR"
    }
  },
  "required": [
    "error_code",
    "error_id",
    "message",
    "statusCode"
  ]
}

Responses

Status Meaning Description Schema
302 Found Redirect to Attestation result landing screen None
500 Internal Server Error UNEXPECTED_ERROR errors.UnexpectedError

RecoveryAttemptController.initiateRecoveryAttemptV2

Code samples

# You can also use wget
curl -X POST https://api.global.id/v2/custodian-recovery/attempts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST https://api.global.id/v2/custodian-recovery/attempts HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v2/custodian-recovery/attempts',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "properties": {
    "gid_name": {
      "type": "string"
    },
    "recovery_public_key": {
      "type": "string"
    }
  },
  "type": "object",
  "required": [
    "gid_name",
    "recovery_public_key"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v2/custodian-recovery/attempts',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v2/custodian-recovery/attempts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.global.id/v2/custodian-recovery/attempts', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v2/custodian-recovery/attempts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v2/custodian-recovery/attempts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v2/custodian-recovery/attempts

Initiate a new recovery attempt v2

Initiate a new recovery attempt v2

Body parameter

{
  "properties": {
    "gid_name": {
      "type": "string"
    },
    "recovery_public_key": {
      "type": "string"
    }
  },
  "type": "object",
  "required": [
    "gid_name",
    "recovery_public_key"
  ]
}

Parameters

Name In Type Required Description
body body InitiateRecoveryAttemptBody true InitiateRecoveryAttemptBody

Example responses

201 Response

{
  "properties": {
    "uuid": {
      "format": "uuid",
      "type": "string"
    },
    "status": {
      "enum": [
        "pending",
        "approved",
        "denied",
        "expired",
        "delivered"
      ],
      "type": "string"
    },
    "encrypted_recovery_data_tokens": {
      "items": {},
      "type": "array"
    },
    "created_at": {
      "oneOf": [
        {
          "format": "date",
          "type": "string"
        },
        {
          "format": "date-time",
          "type": "string"
        }
      ]
    },
    "updated_at": {
      "oneOf": [
        {
          "format": "date",
          "type": "string"
        },
        {
          "format": "date-time",
          "type": "string"
        }
      ]
    }
  },
  "type": "object",
  "required": [
    "uuid",
    "status",
    "encrypted_recovery_data_tokens",
    "created_at",
    "updated_at"
  ]
}

Responses

Status Meaning Description Schema
201 Created New recovery attempt with prepared shares v2 RecoveryAttemptResponseV2
400 Bad Request Response 400 Inline
500 Internal Server Error Sending control code failed errors.ControlCodeSendError

Response Schema

RecoveryAttemptController.findRecoveryAttemptV2

Code samples

# You can also use wget
curl -X GET https://api.global.id/v2/custodian-recovery/attempts/{attempt_uuid} \
  -H 'Accept: application/json' \
  -H 'x-timestamp: [object Object]' \
  -H 'x-signature: [object Object]'

GET https://api.global.id/v2/custodian-recovery/attempts/{attempt_uuid} HTTP/1.1
Host: api.global.id
Accept: application/json
x-timestamp: [object Object]
x-signature: [object Object]

var headers = {
  'Accept':'application/json',
  'x-timestamp':{
  "type": "string"
},
  'x-signature':{
  "type": "string"
}

};

$.ajax({
  url: 'https://api.global.id/v2/custodian-recovery/attempts/{attempt_uuid}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'x-timestamp':{
  "type": "string"
},
  'x-signature':{
  "type": "string"
}

};

fetch('https://api.global.id/v2/custodian-recovery/attempts/{attempt_uuid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'x-timestamp' => {
  "type": "string"
},
  'x-signature' => {
  "type": "string"
}
}

result = RestClient.get 'https://api.global.id/v2/custodian-recovery/attempts/{attempt_uuid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'x-timestamp': {
  "type": "string"
},
  'x-signature': {
  "type": "string"
}
}

r = requests.get('https://api.global.id/v2/custodian-recovery/attempts/{attempt_uuid}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v2/custodian-recovery/attempts/{attempt_uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "x-timestamp": []string{"[object Object]"},
        "x-signature": []string{"[object Object]"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v2/custodian-recovery/attempts/{attempt_uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v2/custodian-recovery/attempts/{attempt_uuid}

Find recovery attempt by id

Find recovery attempt by id

Parameters

Name In Type Required Description
x-timestamp header string true none
x-signature header string true none
attempt_uuid path string true none

Example responses

200 Response

{
  "properties": {
    "uuid": {
      "format": "uuid",
      "type": "string"
    },
    "status": {
      "enum": [
        "pending",
        "approved",
        "denied",
        "expired",
        "delivered"
      ],
      "type": "string"
    },
    "encrypted_recovery_data_tokens": {
      "items": {},
      "type": "array"
    },
    "created_at": {
      "oneOf": [
        {
          "format": "date",
          "type": "string"
        },
        {
          "format": "date-time",
          "type": "string"
        }
      ]
    },
    "updated_at": {
      "oneOf": [
        {
          "format": "date",
          "type": "string"
        },
        {
          "format": "date-time",
          "type": "string"
        }
      ]
    }
  },
  "type": "object",
  "required": [
    "uuid",
    "status",
    "encrypted_recovery_data_tokens",
    "created_at",
    "updated_at"
  ]
}

Responses

Status Meaning Description Schema
200 OK Recovery attempt with encrypted recovery data tokens RecoveryAttemptResponseV2
403 Forbidden Signature not valid errors.InvalidSignatureError

VaultRecoveryAttemptController.getRecoveryDataTokens

Code samples

# You can also use wget
curl -X POST https://api.global.id/v2/custodian-recovery/attempts/{attempt_uuid}/recovery-shares/search \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'x-timestamp: [object Object]' \
  -H 'x-signature: [object Object]'

POST https://api.global.id/v2/custodian-recovery/attempts/{attempt_uuid}/recovery-shares/search HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json
x-timestamp: [object Object]
x-signature: [object Object]

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'x-timestamp':{
  "type": "string"
},
  'x-signature':{
  "type": "string"
}

};

$.ajax({
  url: 'https://api.global.id/v2/custodian-recovery/attempts/{attempt_uuid}/recovery-shares/search',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "properties": {
    "recovery_data_tokens": {
      "items": {},
      "type": "array"
    }
  },
  "type": "object",
  "required": [
    "recovery_data_tokens"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'x-timestamp':{
  "type": "string"
},
  'x-signature':{
  "type": "string"
}

};

fetch('https://api.global.id/v2/custodian-recovery/attempts/{attempt_uuid}/recovery-shares/search',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'x-timestamp' => {
  "type": "string"
},
  'x-signature' => {
  "type": "string"
}
}

result = RestClient.post 'https://api.global.id/v2/custodian-recovery/attempts/{attempt_uuid}/recovery-shares/search',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'x-timestamp': {
  "type": "string"
},
  'x-signature': {
  "type": "string"
}
}

r = requests.post('https://api.global.id/v2/custodian-recovery/attempts/{attempt_uuid}/recovery-shares/search', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v2/custodian-recovery/attempts/{attempt_uuid}/recovery-shares/search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "x-timestamp": []string{"[object Object]"},
        "x-signature": []string{"[object Object]"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v2/custodian-recovery/attempts/{attempt_uuid}/recovery-shares/search", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v2/custodian-recovery/attempts/{attempt_uuid}/recovery-shares/search

Post private data tokens

Post private data tokens

Body parameter

{
  "properties": {
    "recovery_data_tokens": {
      "items": {},
      "type": "array"
    }
  },
  "type": "object",
  "required": [
    "recovery_data_tokens"
  ]
}

Parameters

Name In Type Required Description
x-timestamp header string true none
x-signature header string true none
attempt_uuid path string true none
body body RecoveryPrivateDataTokensBody true RecoveryPrivateDataTokensBody

Example responses

200 Response

{
  "properties": {
    "uuid": {
      "format": "uuid",
      "type": "string"
    },
    "status": {
      "enum": [
        "pending",
        "approved",
        "denied",
        "expired",
        "delivered"
      ],
      "type": "string"
    },
    "recovery_shares": {
      "items": {},
      "type": "array"
    }
  },
  "type": "object",
  "required": [
    "uuid",
    "status",
    "recovery_shares"
  ]
}

Responses

Status Meaning Description Schema
200 OK Recovery shares as encrypted data with encrypted data password RecoveryDataTokensResponse
403 Forbidden Signature not valid errors.InvalidSignatureError

Protected

GetActivities

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/activities \
  -H 'Accept: application/json'

GET https://api.global.id/v1/activities HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/activities',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/activities',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/activities',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/activities', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/activities");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/activities", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/activities

Get a list of all activities that belong to this identity

Get a list of all activities that belong to this identity sorted from the newest to the oldest.

Parameters

Name In Type Required Description
page query number false Pagination Page
per_page query number false Pagination Limit per page.
type query array[string] false Type name
subtype query any false Subtype uuid
reference_uuid query string(uuid) false Reference uuid

Example responses

200 Response

{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "description": "A single Activity that belongs to an Identity",
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid",
            "description": "Unique Uuid generated for an activity",
            "example": "ffb3ca71-7ede-4668-b45b-2c052baf8dad"
          },
          "title": {
            "type": "string",
            "description": "A title sent by the service that created the activity",
            "example": "Sample Title"
          },
          "description": {
            "type": "string",
            "description": "A description sent by the service that created the activity",
            "example": "Sample description"
          },
          "type": {
            "type": "string",
            "description": "A key name of related type",
            "example": "Attestation"
          },
          "subtype": {
            "type": "string",
            "format": "uuid",
            "description": "An uuid related to the subtype",
            "example": "5747113b-9ce5-45d6-bbd6-a3e0e38e0cd1"
          },
          "is_push_sent": {
            "type": "boolean",
            "description": "Determines if the notification was pushed",
            "example": false
          },
          "is_read": {
            "type": "boolean",
            "description": "Determines if the owner of the identity has seen the notification",
            "example": false
          },
          "reference_uuid": {
            "type": "string",
            "format": "uuid",
            "description": "A uuid that is a reference to a service that the activity was created from",
            "example": "3175de83-1e9c-4176-9192-ba6fd52b1582"
          },
          "gid_uuid": {
            "type": "string",
            "format": "uuid",
            "description": "An Indentity's uuid",
            "example": "f4392d59-9e3f-43ba-8fcb-b820e16de6f0"
          },
          "meta_data": {
            "type": "string",
            "description": "Stringified JSON object with additional data saved by the service.",
            "example": "{some_data: {}}"
          },
          "notification_request_uuid": {
            "type": "string",
            "format": "uuid",
            "description": "The uuid of the notification request created by an activity",
            "example": "5747113b-9ce5-45d6-bbd6-a3e0e38e0cd1"
          },
          "created_at": {
            "description": "The date and time at which this activity was created, in ISO-8601 format.",
            "type": "string",
            "format": "date-time",
            "example": "yyyy-mm-ddThh:mm:ss"
          },
          "updated_at": {
            "description": "The date and time at which this activity was updated last tim, in ISO-8601 format.",
            "type": "string",
            "format": "date-time",
            "example": "yyyy-mm-ddThh:mm:ss"
          }
        },
        "required": [
          "uuid",
          "title",
          "description",
          "type",
          "is_push_sent",
          "is_read",
          "gid_uuid",
          "meta_data",
          "created_at",
          "updated_at"
        ]
      },
      "required": [
        "items"
      ]
    },
    "meta": {
      "description": "A Pagination Information",
      "type": "object",
      "properties": {
        "page": {
          "type": "integer"
        },
        "per_page": {
          "type": "integer"
        },
        "total": {
          "description": "Pagination Total Records",
          "type": "integer",
          "example": 255
        }
      },
      "required": [
        "page",
        "per_page",
        "total"
      ]
    }
  },
  "required": [
    "data",
    "meta"
  ]
}

Responses

Status Meaning Description Schema
200 OK Response with a list of all activities that belong to this identity Inline
400 Bad Request The filters are incorrect FiltersIncorrectError
401 Unauthorized You are not authorised UnauthorisedError
403 Forbidden You are not authorised ForbiddenError
500 Internal Server Error UnexpectedError UnexpectedError

Response Schema

Status Code 200

Name Type Required Restrictions Description
» data [Activity] true none [A single Activity that belongs to an Identity]
»» uuid string(uuid) true none Unique Uuid generated for an activity
»» title string true none A title sent by the service that created the activity
»» description string true none A description sent by the service that created the activity
»» type string true none A key name of related type
»» subtype string(uuid) false none An uuid related to the subtype
»» is_push_sent boolean true none Determines if the notification was pushed
»» is_read boolean true none Determines if the owner of the identity has seen the notification
»» reference_uuid string(uuid) false none A uuid that is a reference to a service that the activity was created from
»» gid_uuid string(uuid) true none An Indentity's uuid
»» meta_data string true none Stringified JSON object with additional data saved by the service.
»» notification_request_uuid string(uuid) false none The uuid of the notification request created by an activity
»» created_at string(date-time) true none The date and time at which this activity was created, in ISO-8601 format.
»» updated_at string(date-time) true none The date and time at which this activity was updated last tim, in ISO-8601 format.
» meta PaginationMeta true none A Pagination Information
»» page page true none none
»» per_page per_page true none none
»» total total true none Pagination Total Records

MakeActivityReadUnread

Code samples

# You can also use wget
curl -X POST https://api.global.id/v1/activities/:uuid/read \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST https://api.global.id/v1/activities/:uuid/read HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/activities/:uuid/read',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "type": "object",
  "properties": {
    "read": {
      "type": "boolean",
      "description": "Boolean key representing whether to read or unread the activity",
      "example": true
    }
  },
  "required": [
    "read"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/activities/:uuid/read',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v1/activities/:uuid/read',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.global.id/v1/activities/:uuid/read', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/activities/:uuid/read");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v1/activities/:uuid/read", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/activities/:uuid/read

Make an activity read or unread

Make an activity toread or unread based on provided flag

Body parameter

{
  "type": "object",
  "properties": {
    "read": {
      "type": "boolean",
      "description": "Boolean key representing whether to read or unread the activity",
      "example": true
    }
  },
  "required": [
    "read"
  ]
}

Parameters

Name In Type Required Description
uuid path uuid true none
body body MakeActivityReadUnreadBody false none

Example responses

204 Response

{
  "description": "Response with empty array",
  "content": {
    "application/json": {
      "schema": {
        "type": "object"
      }
    }
  }
}

Responses

Status Meaning Description Schema
204 No Content will return empty object #/components/responses/EmptyResponse
400 Bad Request Incorrect Read Flag provided ValidationFailedError
404 Not Found The activity provided was not found ActivityNotFoundError
500 Internal Server Error UnexpectedError UnexpectedError

UpdateActivitiesByTypeAndSubtypeAsReadOrUnread

Code samples

# You can also use wget
curl -X POST https://api.global.id/v1/activities/read \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST https://api.global.id/v1/activities/read HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/activities/read',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "type": "object",
  "properties": {
    "isRead": {
      "type": "boolean",
      "example": true
    },
    "type": {
      "type": "string",
      "description": "Type name that will be marked as read/unread",
      "example": "Attestation"
    },
    "subtype": {
      "type": "string",
      "description": "Subtype name that will be marked as read/unread",
      "example": "Failed"
    }
  },
  "required": [
    "isRead",
    "type"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/activities/read',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v1/activities/read',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.global.id/v1/activities/read', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/activities/read");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v1/activities/read", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/activities/read

Mark Identity's activities as read/unread

Mark Identity's activities as read or unread that have the type and subtype.

Body parameter

{
  "type": "object",
  "properties": {
    "isRead": {
      "type": "boolean",
      "example": true
    },
    "type": {
      "type": "string",
      "description": "Type name that will be marked as read/unread",
      "example": "Attestation"
    },
    "subtype": {
      "type": "string",
      "description": "Subtype name that will be marked as read/unread",
      "example": "Failed"
    }
  },
  "required": [
    "isRead",
    "type"
  ]
}

Parameters

Name In Type Required Description
body body UpdateActivitiesByTypeAndSubtypeAsReadOrUnreadPayload true Request Body for updating activites as read or unread for activity type or type/subtype, subtype is optional.

Example responses

400 Response

{
  "description": "Validation failed",
  "properties": {
    "error_id": {
      "type": "string",
      "format": "uuid",
      "example": "8c8bac3a-bc8c-4d44-bccf-1022b2434971"
    },
    "request_id": {
      "type": "string",
      "format": "uuid",
      "example": "39ac9a4f-27c8-45fa-a1dd-5b653c4a104f"
    },
    "fields": {
      "type": "object",
      "properties": {
        "missing": {
          "type": "array",
          "items": {
            "type": "string",
            "example": "should have required property 'required_property'"
          }
        }
      }
    }
  }
}

Responses

Status Meaning Description Schema
204 No Content The resource was updated successfully. None
400 Bad Request Request Body Validation Failed ValidationFailedError
401 Unauthorized You are not authorised UnauthorisedError
500 Internal Server Error UnexpectedError UnexpectedError

GetActivitiesTypes

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/activities/types \
  -H 'Accept: application/json'

GET https://api.global.id/v1/activities/types HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/activities/types',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/activities/types',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/activities/types',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/activities/types', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/activities/types");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/activities/types", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/activities/types

Get available activities type

Gets a list of activities types

Example responses

200 Response

{
  "description": "Response with Activity Types",
  "content": {
    "application/json": {
      "schema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "types": {
                "type": "array",
                "items": {
                  "description": "Activity Type",
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Type Name which is a primary key",
                      "example": "Attestation"
                    },
                    "description": {
                      "type": "string",
                      "description": "Description of Activity Type",
                      "example": "Type description"
                    },
                    "subtypes": {
                      "type": "array",
                      "description": "An array of assigned Activity Subtypes",
                      "items": {
                        "description": "Activity Subtype",
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "Uuid of Attestation Subtype",
                            "example": "5747113b-9ce5-45d6-bbd6-a3e0e38e0cd1"
                          },
                          "description": {
                            "type": "string",
                            "description": "Description of Activity Subtype",
                            "example": "Subtype description"
                          },
                          "name": {
                            "type": "string",
                            "description": "Name of Activity Subtype",
                            "example": "Pending"
                          },
                          "type": {
                            "type": "string",
                            "description": "Parent Type Name",
                            "example": "Attestation"
                          }
                        },
                        "required": [
                          "id",
                          "description",
                          "name",
                          "type"
                        ]
                      }
                    }
                  },
                  "required": [
                    "name",
                    "description",
                    "subtypes"
                  ]
                }
              }
            },
            "required": [
              "items"
            ]
          }
        },
        "required": [
          "data"
        ]
      }
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Will return a list of activities types #/components/responses/ActivitiesTypesResponse
401 Unauthorized You are not authorised UnauthorisedError
500 Internal Server Error UnexpectedError UnexpectedError

GetActivitiesUnreadCount

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/activities/unread-count \
  -H 'Accept: application/json'

GET https://api.global.id/v1/activities/unread-count HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/activities/unread-count',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/activities/unread-count',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/activities/unread-count',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/activities/unread-count', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/activities/unread-count");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/activities/unread-count", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/activities/unread-count

Get unread count for activities.

Get total unread count for identity's activities, per types and their subtypes.

Example responses

200 Response

{
  "type": "object",
  "properties": {
    "unread": {
      "type": "number",
      "description": "Total number of unread activities.",
      "example": 20
    },
    "types": {
      "type": "object",
      "description": "Object containing all activity types with unread count.",
      "properties": {
        "type": {
          "type": "object",
          "properties": {
            "total": {
              "type": "number",
              "description": "Total number of unread for specific type.",
              "example": 20
            },
            "subtypes": {
              "type": "object",
              "properties": {
                "subtype": {
                  "type": "number",
                  "description": "The subtype and the total number of unread activites for that subtype.",
                  "example": 20
                }
              }
            }
          }
        }
      }
    }
  },
  "required": [
    "unread",
    "types"
  ]
}

Responses

Status Meaning Description Schema
200 OK Total number of unread activities, per type and their subtypes. UnreadCount
500 Internal Server Error Unexpected error. #/components/responses/UnexpectedError

CreateWebclientVerificationNotificationTrigger

Code samples

# You can also use wget
curl -X POST https://api.global.id/v1/activities/webclient-verification-notification-triggers \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST https://api.global.id/v1/activities/webclient-verification-notification-triggers HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/activities/webclient-verification-notification-triggers',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "type": "object",
  "properties": {
    "acrc_id": {
      "type": "string",
      "format": "uuid",
      "description": "Uuid of the authorization request acrc",
      "example": "5747113b-9ce5-45d6-bbd6-a3e0e38e0cd1"
    },
    "attestation_request_uuid": {
      "type": "string",
      "format": "uuid",
      "description": "Uuid of attestation request",
      "example": "5747113b-9ce5-45d6-bbd6-a3e0e38e0cd1"
    },
    "client_id": {
      "type": "string",
      "format": "uuid",
      "description": "Uuid of authorization request client",
      "example": "5747113b-9ce5-45d6-bbd6-a3e0e38e0cd1"
    },
    "nonce": {
      "type": "string",
      "description": "Nonce of authorization request"
    },
    "response_type": {
      "type": "string",
      "description": "Response type of authorization request",
      "example": "code"
    },
    "redirect_uri": {
      "type": "string",
      "description": "Redirect uri of authorization request",
      "example": "https://global.id"
    },
    "scope": {
      "type": "string",
      "description": "Scope of authorization request",
      "example": "public"
    },
    "state": {
      "type": "string",
      "description": "State of authorization request"
    }
  },
  "required": [
    "acrc_id",
    "attestation_request_uuid",
    "client_id",
    "response_type",
    "redirect_uri"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/activities/webclient-verification-notification-triggers',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v1/activities/webclient-verification-notification-triggers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.global.id/v1/activities/webclient-verification-notification-triggers', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/activities/webclient-verification-notification-triggers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v1/activities/webclient-verification-notification-triggers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/activities/webclient-verification-notification-triggers

Create new webclient verification notification trigger.

Make new webclient verification notification trigger based on the request body.

Body parameter

{
  "type": "object",
  "properties": {
    "acrc_id": {
      "type": "string",
      "format": "uuid",
      "description": "Uuid of the authorization request acrc",
      "example": "5747113b-9ce5-45d6-bbd6-a3e0e38e0cd1"
    },
    "attestation_request_uuid": {
      "type": "string",
      "format": "uuid",
      "description": "Uuid of attestation request",
      "example": "5747113b-9ce5-45d6-bbd6-a3e0e38e0cd1"
    },
    "client_id": {
      "type": "string",
      "format": "uuid",
      "description": "Uuid of authorization request client",
      "example": "5747113b-9ce5-45d6-bbd6-a3e0e38e0cd1"
    },
    "nonce": {
      "type": "string",
      "description": "Nonce of authorization request"
    },
    "response_type": {
      "type": "string",
      "description": "Response type of authorization request",
      "example": "code"
    },
    "redirect_uri": {
      "type": "string",
      "description": "Redirect uri of authorization request",
      "example": "https://global.id"
    },
    "scope": {
      "type": "string",
      "description": "Scope of authorization request",
      "example": "public"
    },
    "state": {
      "type": "string",
      "description": "State of authorization request"
    }
  },
  "required": [
    "acrc_id",
    "attestation_request_uuid",
    "client_id",
    "response_type",
    "redirect_uri"
  ]
}

Parameters

Name In Type Required Description
body body CreateWebclientVerificationNotificationTriggerBody false none

Example responses

204 Response

{
  "description": "Response with empty array",
  "content": {
    "application/json": {
      "schema": {
        "type": "object"
      }
    }
  }
}

Responses

Status Meaning Description Schema
204 No Content Resource was succesfully inserted. #/components/responses/EmptyResponse
400 Bad Request Incorrect body provided ValidationFailedError
500 Internal Server Error UnexpectedError UnexpectedError

DeleteWebclientVerificationNotificationTrigger

Code samples

# You can also use wget
curl -X DELETE https://api.global.id/v1/activities/webclient-verification-notification-triggers/:attestation_request_uuid \
  -H 'Accept: application/json'

DELETE https://api.global.id/v1/activities/webclient-verification-notification-triggers/:attestation_request_uuid HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/activities/webclient-verification-notification-triggers/:attestation_request_uuid',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/activities/webclient-verification-notification-triggers/:attestation_request_uuid',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.delete 'https://api.global.id/v1/activities/webclient-verification-notification-triggers/:attestation_request_uuid',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.delete('https://api.global.id/v1/activities/webclient-verification-notification-triggers/:attestation_request_uuid', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/activities/webclient-verification-notification-triggers/:attestation_request_uuid");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.global.id/v1/activities/webclient-verification-notification-triggers/:attestation_request_uuid", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /v1/activities/webclient-verification-notification-triggers/:attestation_request_uuid

Delete webclient verification notification trigger.

Delete webclient verification notification trigger for specific attestation request.

Example responses

204 Response

{
  "description": "Response with empty array",
  "content": {
    "application/json": {
      "schema": {
        "type": "object"
      }
    }
  }
}

Responses

Status Meaning Description Schema
204 No Content Resource was succesfully deleted. #/components/responses/EmptyResponse
500 Internal Server Error UnexpectedError UnexpectedError

PostWhitelistedWebClient

Code samples

# You can also use wget
curl -X POST https://api.global.id/v1/admin/whitelisted-web-client \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST https://api.global.id/v1/admin/whitelisted-web-client HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/admin/whitelisted-web-client',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "string",
      "format": "uuidv4",
      "description": "uuid of the client"
    }
  },
  "required": [
    "client_id"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/admin/whitelisted-web-client',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v1/admin/whitelisted-web-client',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.global.id/v1/admin/whitelisted-web-client', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/admin/whitelisted-web-client");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v1/admin/whitelisted-web-client", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/admin/whitelisted-web-client

Whitelists a Web client.

Body parameter

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "string",
      "format": "uuidv4",
      "description": "uuid of the client"
    }
  },
  "required": [
    "client_id"
  ]
}

Parameters

Name In Type Required Description
body body PostWhitelistedWebClientPayload false none

Example responses

403 Response

{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "example": "You are not authorized to access this resource"
    },
    "statusCode": {
      "type": "integer",
      "example": 403
    },
    "error_code": {
      "type": "string",
      "example": "ERR_FORBIDDEN"
    },
    "error_id": {
      "type": "string",
      "format": "uuid",
      "example": "39ac9a4f-27c8-45fa-a1dd-5b653c4a104f"
    },
    "request_id": {
      "type": "string",
      "format": "uuid",
      "example": "39ac9a4f-27c8-45fa-a1dd-5b653c4a104f"
    }
  }
}

Responses

Status Meaning Description Schema
201 Created Client successfully whitelisted None
403 Forbidden Unauthorized ERR_FORBIDDEN

GetWhitelistedWebClient

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/admin/whitelisted-web-client \
  -H 'Accept: application/json'

GET https://api.global.id/v1/admin/whitelisted-web-client HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/admin/whitelisted-web-client',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/admin/whitelisted-web-client',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/admin/whitelisted-web-client',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/admin/whitelisted-web-client', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/admin/whitelisted-web-client");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/admin/whitelisted-web-client", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/admin/whitelisted-web-client

Retrieves a list of whitelisted web clients.

Example responses

200 Response

{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "client_id": {
        "type": "string",
        "format": "uuidv4",
        "description": "uuid of the client"
      },
      "created_at": {
        "type": "string",
        "example": "2019-06-09T11:08:05.000Z",
        "description": "Timestamp date."
      }
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Whitelisted web client list recieved succesfully Inline
403 Forbidden Unauthorized ERR_FORBIDDEN

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [GetWhitelistedWebClientResponse] false none none
» client_id client_id(uuidv4) false none uuid of the client
» created_at date false none Timestamp date.

DeleteWhitelistedWebClient

Code samples

# You can also use wget
curl -X DELETE https://api.global.id/v1/admin/whitelisted-web-client/:client_id?client_id=type,string,format,uuidv4,description,uuid%20of%20the%20client \
  -H 'Accept: application/json'

DELETE https://api.global.id/v1/admin/whitelisted-web-client/:client_id?client_id=type,string,format,uuidv4,description,uuid%20of%20the%20client HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/admin/whitelisted-web-client/:client_id',
  method: 'delete',
  data: '?client_id=type,string,format,uuidv4,description,uuid%20of%20the%20client',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/admin/whitelisted-web-client/:client_id?client_id=type,string,format,uuidv4,description,uuid%20of%20the%20client',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.delete 'https://api.global.id/v1/admin/whitelisted-web-client/:client_id',
  params: {
  'client_id' => '[client_id](#schemaclient_id)'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.delete('https://api.global.id/v1/admin/whitelisted-web-client/:client_id', params={
  'client_id': {
  "type": "string",
  "format": "uuidv4",
  "description": "uuid of the client"
}
}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/admin/whitelisted-web-client/:client_id?client_id=type,string,format,uuidv4,description,uuid%20of%20the%20client");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.global.id/v1/admin/whitelisted-web-client/:client_id", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /v1/admin/whitelisted-web-client/:client_id

Deletes a Web client from whitelisted list.

Parameters

Name In Type Required Description
client_id query client_id true none

Example responses

403 Response

{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "example": "You are not authorized to access this resource"
    },
    "statusCode": {
      "type": "integer",
      "example": 403
    },
    "error_code": {
      "type": "string",
      "example": "ERR_FORBIDDEN"
    },
    "error_id": {
      "type": "string",
      "format": "uuid",
      "example": "39ac9a4f-27c8-45fa-a1dd-5b653c4a104f"
    },
    "request_id": {
      "type": "string",
      "format": "uuid",
      "example": "39ac9a4f-27c8-45fa-a1dd-5b653c4a104f"
    }
  }
}

Responses

Status Meaning Description Schema
204 No Content Whitelisted client successfully deleted None
403 Forbidden Unauthorized ERR_FORBIDDEN

LegalDocumentsController.addLegalDocument

Code samples

# You can also use wget
curl -X POST https://api.global.id/v1/app-client/{app_uuid}/legal_documents \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST https://api.global.id/v1/app-client/{app_uuid}/legal_documents HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/app-client/{app_uuid}/legal_documents',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "properties": {
    "short_id": {
      "minLength": 1,
      "type": "string"
    },
    "display_name": {
      "minLength": 2,
      "type": "string"
    },
    "asset_url": {
      "format": "url",
      "type": "string"
    },
    "version": {
      "type": "number"
    }
  },
  "type": "object",
  "required": [
    "short_id",
    "display_name",
    "asset_url",
    "version"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/app-client/{app_uuid}/legal_documents',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v1/app-client/{app_uuid}/legal_documents',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.global.id/v1/app-client/{app_uuid}/legal_documents', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/app-client/{app_uuid}/legal_documents");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v1/app-client/{app_uuid}/legal_documents", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/app-client/{app_uuid}/legal_documents

Creates a new legal document that belongs to the application with app_uuid

Creates a new legal document that belongs to the application with app_uuid

Body parameter

{
  "properties": {
    "short_id": {
      "minLength": 1,
      "type": "string"
    },
    "display_name": {
      "minLength": 2,
      "type": "string"
    },
    "asset_url": {
      "format": "url",
      "type": "string"
    },
    "version": {
      "type": "number"
    }
  },
  "type": "object",
  "required": [
    "short_id",
    "display_name",
    "asset_url",
    "version"
  ]
}

Parameters

Name In Type Required Description
app_uuid path string true none
body body LegalDocumentBody true LegalDocumentBody

Example responses

201 Response

{
  "properties": {
    "app_uuid": {
      "format": "uuid",
      "type": "string"
    },
    "uuid": {
      "format": "uuid",
      "type": "string"
    },
    "short_id": {
      "minLength": 1,
      "type": "string"
    },
    "display_name": {
      "minLength": 2,
      "type": "string"
    },
    "asset_url": {
      "format": "url",
      "type": "string"
    },
    "version": {
      "type": "number"
    }
  },
  "type": "object",
  "required": [
    "app_uuid",
    "uuid",
    "short_id",
    "display_name",
    "asset_url",
    "version"
  ]
}

Responses

Status Meaning Description Schema
201 Created Creates single legal document LegalDocument
404 Not Found Response 404 Inline

Response Schema

LegalDocumentsController.getLegalDocument

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid} \
  -H 'Accept: application/json'

GET https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid} HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/app-client/{app_uuid}/legal_documents/{uuid}

Retrieves legal document by uuid that belongs to the application with app_uuid

Retrieves legal document by uuid that belongs to the application with app_uuid

Parameters

Name In Type Required Description
app_uuid path string true none
uuid path string true none

Example responses

200 Response

{
  "properties": {
    "app_uuid": {
      "format": "uuid",
      "type": "string"
    },
    "uuid": {
      "format": "uuid",
      "type": "string"
    },
    "short_id": {
      "minLength": 1,
      "type": "string"
    },
    "display_name": {
      "minLength": 2,
      "type": "string"
    },
    "asset_url": {
      "format": "url",
      "type": "string"
    },
    "version": {
      "type": "number"
    }
  },
  "type": "object",
  "required": [
    "app_uuid",
    "uuid",
    "short_id",
    "display_name",
    "asset_url",
    "version"
  ]
}

Responses

Status Meaning Description Schema
200 OK Returns single legal document LegalDocument
404 Not Found Response 404 Inline

Response Schema

LegalDocumentsController.updateLegalDocument

Code samples

# You can also use wget
curl -X PUT https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

PUT https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid} HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "properties": {
    "display_name": {
      "minLength": 2,
      "type": "string"
    },
    "asset_url": {
      "format": "url",
      "type": "string"
    },
    "short_id": {
      "minLength": 1,
      "type": "string"
    }
  },
  "type": "object"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.put 'https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.put('https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /v1/app-client/{app_uuid}/legal_documents/{uuid}

Updates legal document by uuid that belongs to the application with app_uuid

Updates legal document by uuid that belongs to the application with app_uuid

Body parameter

{
  "properties": {
    "display_name": {
      "minLength": 2,
      "type": "string"
    },
    "asset_url": {
      "format": "url",
      "type": "string"
    },
    "short_id": {
      "minLength": 1,
      "type": "string"
    }
  },
  "type": "object"
}

Parameters

Name In Type Required Description
app_uuid path string true none
uuid path string true none
body body LegalDocumentUpdate true LegalDocumentUpdate

Example responses

200 Response

{
  "properties": {
    "app_uuid": {
      "format": "uuid",
      "type": "string"
    },
    "uuid": {
      "format": "uuid",
      "type": "string"
    },
    "short_id": {
      "minLength": 1,
      "type": "string"
    },
    "display_name": {
      "minLength": 2,
      "type": "string"
    },
    "asset_url": {
      "format": "url",
      "type": "string"
    },
    "version": {
      "type": "number"
    }
  },
  "type": "object",
  "required": [
    "app_uuid",
    "uuid",
    "short_id",
    "display_name",
    "asset_url",
    "version"
  ]
}

Responses

Status Meaning Description Schema
200 OK Updates single legal document LegalDocument
404 Not Found Response 404 Inline

Response Schema

LegalDocumentsController.deleteLegalDocument

Code samples

# You can also use wget
curl -X DELETE https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid} \
  -H 'Accept: application/json'

DELETE https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid} HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.delete 'https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.delete('https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.global.id/v1/app-client/{app_uuid}/legal_documents/{uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /v1/app-client/{app_uuid}/legal_documents/{uuid}

Delete legal document by uuid that belongs to the application with app_uuid

Delete legal document by uuid that belongs to the application with app_uuid

Parameters

Name In Type Required Description
app_uuid path string true none
uuid path string true none

Example responses

404 Response

{
  "oneOf": [
    {
      "description": "ERR_DEVELOPER_APPLICATION_NOT_FOUND",
      "properties": {
        "statusCode": {
          "type": "integer",
          "format": "int32",
          "example": 404
        },
        "request_id": {
          "type": "string",
          "format": "uuid",
          "example": "39ac9a4f-27c8-45fa-a1dd-5b653c4a104f"
        },
        "error_id": {
          "type": "string",
          "format": "uuid",
          "example": "8c8bac3a-bc8c-4d44-bccf-1022b2434971"
        },
        "error_code": {
          "type": "string",
          "example": "ERR_NOT_FOUND"
        },
        "message": {
          "type": "string",
          "example": "ERR_DEVELOPER_APPLICATION_NOT_FOUND"
        }
      },
      "required": [
        "error_code",
        "error_id",
        "message",
        "statusCode"
      ]
    },
    {
      "description": "ERR_LEGAL_DOCUMENT_NOT_FOUND",
      "properties": {
        "statusCode": {
          "type": "integer",
          "format": "int32",
          "example": 404
        },
        "request_id": {
          "type": "string",
          "format": "uuid",
          "example": "39ac9a4f-27c8-45fa-a1dd-5b653c4a104f"
        },
        "error_id": {
          "type": "string",
          "format": "uuid",
          "example": "8c8bac3a-bc8c-4d44-bccf-1022b2434971"
        },
        "error_code": {
          "type": "string",
          "example": "ERR_NOT_FOUND"
        },
        "message": {
          "type": "string",
          "example": "ERR_LEGAL_DOCUMENT_NOT_FOUND"
        }
      },
      "required": [
        "error_code",
        "error_id",
        "message",
        "statusCode"
      ]
    }
  ]
}

Responses

Status Meaning Description Schema
204 No Content legal document was deleted None
404 Not Found Response 404 Inline

Response Schema

ApplicationsController.removeApplication

Code samples

# You can also use wget
curl -X DELETE https://api.global.id/v1/apps/{app_uuid}

DELETE https://api.global.id/v1/apps/{app_uuid} HTTP/1.1
Host: api.global.id


$.ajax({
  url: 'https://api.global.id/v1/apps/{app_uuid}',
  method: 'delete',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

fetch('https://api.global.id/v1/apps/{app_uuid}',
{
  method: 'DELETE'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

result = RestClient.delete 'https://api.global.id/v1/apps/{app_uuid}',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.delete('https://api.global.id/v1/apps/{app_uuid}', params={

)

print r.json()

URL obj = new URL("https://api.global.id/v1/apps/{app_uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.global.id/v1/apps/{app_uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /v1/apps/{app_uuid}

Delete application that belongs to the logged in user

Delete application that belongs to the logged in user

Parameters

Name In Type Required Description
app_uuid path string true none

Responses

Status Meaning Description Schema
204 No Content application was deleted None

ApplicationsController.resetApplicationSecret

Code samples

# You can also use wget
curl -X PUT https://api.global.id/v1/apps/{app_uuid}/reset-secret \
  -H 'Accept: application/json'

PUT https://api.global.id/v1/apps/{app_uuid}/reset-secret HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/apps/{app_uuid}/reset-secret',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/apps/{app_uuid}/reset-secret',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.put 'https://api.global.id/v1/apps/{app_uuid}/reset-secret',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.put('https://api.global.id/v1/apps/{app_uuid}/reset-secret', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/apps/{app_uuid}/reset-secret");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.global.id/v1/apps/{app_uuid}/reset-secret", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /v1/apps/{app_uuid}/reset-secret

Update secret of the application that belongs to the logged in user

Update secret of the application that belongs to the logged in user

Parameters

Name In Type Required Description
app_uuid path string true none

Example responses

200 Response

{
  "properties": {
    "secret": {
      "type": "string"
    }
  },
  "type": "object",
  "required": [
    "secret"
  ]
}

Responses

Status Meaning Description Schema
200 OK application's secret was changed ResetSecretResponse
404 Not Found ERR_DEVELOPER_APPLICATION_NOT_FOUND errors.DevApplicationMissingError

AttestationApplicationController.addAttestationApplication

Code samples

# You can also use wget
curl -X POST https://api.global.id/v1/attestation-apps \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST https://api.global.id/v1/attestation-apps HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestation-apps',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "properties": {
    "organization_uuid": {
      "format": "uuid",
      "type": "string"
    },
    "name": {
      "minLength": 1,
      "type": "string"
    },
    "description": {
      "type": "string",
      "nullable": true
    },
    "logo": {
      "type": "string",
      "nullable": true
    },
    "type_uuid": {
      "format": "uuid",
      "type": "string"
    },
    "public_key": {
      "type": "string",
      "nullable": true
    },
    "webhook": {
      "type": "string",
      "nullable": true
    }
  },
  "type": "object",
  "required": [
    "organization_uuid",
    "name",
    "logo",
    "type_uuid"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestation-apps',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v1/attestation-apps',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.global.id/v1/attestation-apps', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestation-apps");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v1/attestation-apps", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/attestation-apps

Create a new attestation application that belongs to the provided dev organization uuid

Create a new attestation application that belongs to the provided dev organization uuid

Body parameter

{
  "properties": {
    "organization_uuid": {
      "format": "uuid",
      "type": "string"
    },
    "name": {
      "minLength": 1,
      "type": "string"
    },
    "description": {
      "type": "string",
      "nullable": true
    },
    "logo": {
      "type": "string",
      "nullable": true
    },
    "type_uuid": {
      "format": "uuid",
      "type": "string"
    },
    "public_key": {
      "type": "string",
      "nullable": true
    },
    "webhook": {
      "type": "string",
      "nullable": true
    }
  },
  "type": "object",
  "required": [
    "organization_uuid",
    "name",
    "logo",
    "type_uuid"
  ]
}

Parameters

Name In Type Required Description
body body AddAttestOrganizationApplicationBody true AddAttestOrganizationApplicationBody

Example responses

201 Response

{
  "properties": {
    "status": {
      "enum": [
        "draft",
        "submitted",
        "live",
        "archived"
      ],
      "type": "string"
    },
    "uuid": {
      "format": "uuid",
      "type": "string"
    },
    "organization_uuid": {
      "format": "uuid",
      "type": "string"
    },
    "secret": {
      "type": "string"
    },
    "name": {
      "minLength": 1,
      "type": "string"
    },
    "logo": {
      "type": "string",
      "nullable": true
    },
    "short_description": {
      "type": "string",
      "nullable": true
    },
    "type_uuid": {
      "format": "uuid",
      "type": "string"
    },
    "description": {
      "type": "string",
      "nullable": true
    },
    "public_key": {
      "type": "string",
      "nullable": true
    },
    "webhook": {
      "type": "string",
      "nullable": true
    }
  },
  "type": "object",
  "required": [
    "status",
    "uuid",
    "organization_uuid",
    "secret",
    "name",
    "logo",
    "type_uuid"
  ]
}

Responses

Status Meaning Description Schema
201 Created New attestation application was created AttestApplicationWithStatus
400 Bad Request ERR_NAME_ALREADY_IN_USE errors.NameAlreadyInUseError
404 Not Found ERR_DEVELOPER_ORGANIZATION_DOES_NOT_EXIST errors.DevOrganizationMissingError

AttestationApplicationController.getAttestationApplication

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/attestation-apps/{app_uuid} \
  -H 'Accept: application/json'

GET https://api.global.id/v1/attestation-apps/{app_uuid} HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestation-apps/{app_uuid}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestation-apps/{app_uuid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/attestation-apps/{app_uuid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/attestation-apps/{app_uuid}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestation-apps/{app_uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/attestation-apps/{app_uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/attestation-apps/{app_uuid}

Get attestation application that belongs to the provided uuid

Get attestation application that belongs to the provided uuid

Parameters

Name In Type Required Description
app_uuid path string true none

Example responses

200 Response

{
  "properties": {
    "attestation_app_request": {
      "properties": {
        "app_uuid": {
          "type": "string",
          "format": "uuid"
        },
        "status": {
          "enum": [
            "draft",
            "submitted",
            "live",
            "archived"
          ],
          "type": "string"
        },
        "input_required": {
          "type": "string"
        },
        "instructions": {
          "type": "string"
        },
        "category_uuid": {
          "type": "string"
        },
        "zendesk_request_id": {
          "type": "string",
          "nullable": true
        },
        "live": {
          "type": "boolean"
        },
        "url": {
          "type": "string",
          "nullable": true
        },
        "types": {
          "type": "string"
        },
        "webhook": {
          "type": "string",
          "nullable": true
        }
      },
      "type": "object",
      "required": [
        "app_uuid",
        "status",
        "input_required",
        "instructions",
        "category_uuid",
        "zendesk_request_id",
        "live",
        "url",
        "types"
      ]
    },
    "uuid": {
      "format": "uuid",
      "type": "string"
    },
    "organization_uuid": {
      "format": "uuid",
      "type": "string"
    },
    "secret": {
      "type": "string"
    },
    "name": {
      "minLength": 1,
      "type": "string"
    },
    "logo": {
      "type": "string",
      "nullable": true
    },
    "short_description": {
      "type": "string",
      "nullable": true
    },
    "type_uuid": {
      "format": "uuid",
      "type": "string"
    },
    "description": {
      "type": "string",
      "nullable": true
    },
    "public_key": {
      "type": "string",
      "nullable": true
    },
    "webhook": {
      "type": "string",
      "nullable": true
    }
  },
  "type": "object",
  "required": [
    "attestation_app_request",
    "uuid",
    "organization_uuid",
    "secret",
    "name",
    "logo",
    "type_uuid"
  ]
}

Responses

Status Meaning Description Schema
200 OK Return a single attestation application AttestApplicationWithRequest
404 Not Found ERR_ATTESTATION_APPLICATION_NOT_FOUND errors.AttestationApplicationMissingError

AttestationApplicationController.modifyAttestationApplication

Code samples

# You can also use wget
curl -X PUT https://api.global.id/v1/attestation-apps/{app_uuid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

PUT https://api.global.id/v1/attestation-apps/{app_uuid} HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestation-apps/{app_uuid}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "properties": {
    "status": {
      "enum": [
        "draft",
        "submitted",
        "live",
        "archived"
      ],
      "type": "string"
    },
    "input_required": {
      "type": "string"
    },
    "instructions": {
      "type": "string"
    },
    "category_uuid": {
      "type": "string"
    },
    "zendesk_request_id": {
      "type": "string"
    },
    "live": {
      "type": "boolean"
    },
    "url": {
      "format": "url",
      "type": "string"
    },
    "types": {
      "type": "string"
    },
    "name": {
      "minLength": 1,
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "logo": {
      "type": "string",
      "nullable": true
    },
    "public_key": {
      "type": "string",
      "nullable": true
    },
    "webhook": {
      "type": "string",
      "nullable": true
    }
  },
  "type": "object"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestation-apps/{app_uuid}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.put 'https://api.global.id/v1/attestation-apps/{app_uuid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.put('https://api.global.id/v1/attestation-apps/{app_uuid}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestation-apps/{app_uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.global.id/v1/attestation-apps/{app_uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /v1/attestation-apps/{app_uuid}

Modify a attestation application that belongs to the provided uuid

Modify a attestation application that belongs to the provided uuid

Body parameter

{
  "properties": {
    "status": {
      "enum": [
        "draft",
        "submitted",
        "live",
        "archived"
      ],
      "type": "string"
    },
    "input_required": {
      "type": "string"
    },
    "instructions": {
      "type": "string"
    },
    "category_uuid": {
      "type": "string"
    },
    "zendesk_request_id": {
      "type": "string"
    },
    "live": {
      "type": "boolean"
    },
    "url": {
      "format": "url",
      "type": "string"
    },
    "types": {
      "type": "string"
    },
    "name": {
      "minLength": 1,
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "logo": {
      "type": "string",
      "nullable": true
    },
    "public_key": {
      "type": "string",
      "nullable": true
    },
    "webhook": {
      "type": "string",
      "nullable": true
    }
  },
  "type": "object"
}

Parameters

Name In Type Required Description
app_uuid path string true none
body body ModifyAttestationAppRequest true ModifyAttestationAppRequest

Example responses

200 Response

{
  "properties": {
    "attestation_app_request": {
      "properties": {
        "app_uuid": {
          "type": "string",
          "format": "uuid"
        },
        "status": {
          "enum": [
            "draft",
            "submitted",
            "live",
            "archived"
          ],
          "type": "string"
        },
        "input_required": {
          "type": "string"
        },
        "instructions": {
          "type": "string"
        },
        "category_uuid": {
          "type": "string"
        },
        "zendesk_request_id": {
          "type": "string",
          "nullable": true
        },
        "live": {
          "type": "boolean"
        },
        "url": {
          "type": "string",
          "nullable": true
        },
        "types": {
          "type": "string"
        },
        "webhook": {
          "type": "string",
          "nullable": true
        }
      },
      "type": "object",
      "required": [
        "app_uuid",
        "status",
        "input_required",
        "instructions",
        "category_uuid",
        "zendesk_request_id",
        "live",
        "url",
        "types"
      ]
    },
    "uuid": {
      "format": "uuid",
      "type": "string"
    },
    "organization_uuid": {
      "format": "uuid",
      "type": "string"
    },
    "secret": {
      "type": "string"
    },
    "name": {
      "minLength": 1,
      "type": "string"
    },
    "logo": {
      "type": "string",
      "nullable": true
    },
    "short_description": {
      "type": "string",
      "nullable": true
    },
    "type_uuid": {
      "format": "uuid",
      "type": "string"
    },
    "description": {
      "type": "string",
      "nullable": true
    },
    "public_key": {
      "type": "string",
      "nullable": true
    },
    "webhook": {
      "type": "string",
      "nullable": true
    }
  },
  "type": "object",
  "required": [
    "attestation_app_request",
    "uuid",
    "organization_uuid",
    "secret",
    "name",
    "logo",
    "type_uuid"
  ]
}

Responses

Status Meaning Description Schema
200 OK attestation application was updated AttestApplicationWithRequest
400 Bad Request ERR_NAME_ALREADY_IN_USE errors.NameAlreadyInUseError
404 Not Found ERR_ATTESTATION_APPLICATION_NOT_FOUND errors.AttestationApplicationMissingError

AttestationApplicationController.removeAttestationAppRequest

Code samples

# You can also use wget
curl -X DELETE https://api.global.id/v1/attestation-apps/{app_uuid}

DELETE https://api.global.id/v1/attestation-apps/{app_uuid} HTTP/1.1
Host: api.global.id


$.ajax({
  url: 'https://api.global.id/v1/attestation-apps/{app_uuid}',
  method: 'delete',

  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

fetch('https://api.global.id/v1/attestation-apps/{app_uuid}',
{
  method: 'DELETE'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

result = RestClient.delete 'https://api.global.id/v1/attestation-apps/{app_uuid}',
  params: {
  }

p JSON.parse(result)

import requests

r = requests.delete('https://api.global.id/v1/attestation-apps/{app_uuid}', params={

)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestation-apps/{app_uuid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.global.id/v1/attestation-apps/{app_uuid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /v1/attestation-apps/{app_uuid}

Removes attestation application request and attestation application that belong to the provided attestation application uuid

Removes attestation application request and attestation application that belong to the provided attestation application uuid

Parameters

Name In Type Required Description
app_uuid path string true none

Responses

Status Meaning Description Schema
204 No Content attestation application request and attestation application were deleted None

AttestationApplicationController.approveAttestationAppRequest

Code samples

# You can also use wget
curl -X PUT https://api.global.id/v1/attestation-apps/{app_uuid}/approve \
  -H 'Accept: application/json'

PUT https://api.global.id/v1/attestation-apps/{app_uuid}/approve HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestation-apps/{app_uuid}/approve',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestation-apps/{app_uuid}/approve',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.put 'https://api.global.id/v1/attestation-apps/{app_uuid}/approve',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.put('https://api.global.id/v1/attestation-apps/{app_uuid}/approve', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestation-apps/{app_uuid}/approve");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.global.id/v1/attestation-apps/{app_uuid}/approve", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /v1/attestation-apps/{app_uuid}/approve

Approves a attestation application request that belongs to the provided application uuid

Approves a attestation application request that belongs to the provided application uuid

Parameters

Name In Type Required Description
app_uuid path string true none

Example responses

200 Response

{
  "properties": {
    "app_uuid": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "enum": [
        "draft",
        "submitted",
        "live",
        "archived"
      ],
      "type": "string"
    },
    "input_required": {
      "type": "string"
    },
    "instructions": {
      "type": "string"
    },
    "category_uuid": {
      "type": "string"
    },
    "zendesk_request_id": {
      "type": "string",
      "nullable": true
    },
    "live": {
      "type": "boolean"
    },
    "url": {
      "type": "string",
      "nullable": true
    },
    "types": {
      "type": "string"
    },
    "webhook": {
      "type": "string",
      "nullable": true
    }
  },
  "type": "object",
  "required": [
    "app_uuid",
    "status",
    "input_required",
    "instructions",
    "category_uuid",
    "zendesk_request_id",
    "live",
    "url",
    "types"
  ]
}

Responses

Status Meaning Description Schema
200 OK attestation application request was approved AttestationAppRequest
400 Bad Request ERR_ATTESTATION_APP_REQUEST_INVALID_STATUS errors.AttestationAppRequesStatusError
404 Not Found ERR_ATTESTATION_APP_REQUEST_NOT_FOUND errors.AttestationAppRequestMissingError

AttestationApplicationController.archiveAttestationAppRequest

Code samples

# You can also use wget
curl -X PUT https://api.global.id/v1/attestation-apps/{app_uuid}/archive \
  -H 'Accept: application/json'

PUT https://api.global.id/v1/attestation-apps/{app_uuid}/archive HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestation-apps/{app_uuid}/archive',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestation-apps/{app_uuid}/archive',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.put 'https://api.global.id/v1/attestation-apps/{app_uuid}/archive',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.put('https://api.global.id/v1/attestation-apps/{app_uuid}/archive', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestation-apps/{app_uuid}/archive");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.global.id/v1/attestation-apps/{app_uuid}/archive", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /v1/attestation-apps/{app_uuid}/archive

Archives a attestation application request that belongs to the provided application uuid

Archives a attestation application request that belongs to the provided application uuid

Parameters

Name In Type Required Description
app_uuid path string true none

Example responses

200 Response

{
  "properties": {
    "app_uuid": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "enum": [
        "draft",
        "submitted",
        "live",
        "archived"
      ],
      "type": "string"
    },
    "input_required": {
      "type": "string"
    },
    "instructions": {
      "type": "string"
    },
    "category_uuid": {
      "type": "string"
    },
    "zendesk_request_id": {
      "type": "string",
      "nullable": true
    },
    "live": {
      "type": "boolean"
    },
    "url": {
      "type": "string",
      "nullable": true
    },
    "types": {
      "type": "string"
    },
    "webhook": {
      "type": "string",
      "nullable": true
    }
  },
  "type": "object",
  "required": [
    "app_uuid",
    "status",
    "input_required",
    "instructions",
    "category_uuid",
    "zendesk_request_id",
    "live",
    "url",
    "types"
  ]
}

Responses

Status Meaning Description Schema
200 OK attestation application request was archived AttestationAppRequest
400 Bad Request ERR_ATTESTATION_APP_REQUEST_INVALID_STATUS errors.AttestationAppRequesStatusError
404 Not Found ERR_ATTESTATION_APP_REQUEST_NOT_FOUND errors.AttestationAppRequestMissingError

AttestationApplicationController.rejectAttestationAppRequest

Code samples

# You can also use wget
curl -X PUT https://api.global.id/v1/attestation-apps/{app_uuid}/reject \
  -H 'Accept: application/json'

PUT https://api.global.id/v1/attestation-apps/{app_uuid}/reject HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestation-apps/{app_uuid}/reject',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestation-apps/{app_uuid}/reject',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.put 'https://api.global.id/v1/attestation-apps/{app_uuid}/reject',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.put('https://api.global.id/v1/attestation-apps/{app_uuid}/reject', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestation-apps/{app_uuid}/reject");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.global.id/v1/attestation-apps/{app_uuid}/reject", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /v1/attestation-apps/{app_uuid}/reject

Rejects a attestation application request that belongs to the provided application uuid

Rejects a attestation application request that belongs to the provided application uuid

Parameters

Name In Type Required Description
app_uuid path string true none

Example responses

200 Response

{
  "properties": {
    "app_uuid": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "enum": [
        "draft",
        "submitted",
        "live",
        "archived"
      ],
      "type": "string"
    },
    "input_required": {
      "type": "string"
    },
    "instructions": {
      "type": "string"
    },
    "category_uuid": {
      "type": "string"
    },
    "zendesk_request_id": {
      "type": "string",
      "nullable": true
    },
    "live": {
      "type": "boolean"
    },
    "url": {
      "type": "string",
      "nullable": true
    },
    "types": {
      "type": "string"
    },
    "webhook": {
      "type": "string",
      "nullable": true
    }
  },
  "type": "object",
  "required": [
    "app_uuid",
    "status",
    "input_required",
    "instructions",
    "category_uuid",
    "zendesk_request_id",
    "live",
    "url",
    "types"
  ]
}

Responses

Status Meaning Description Schema
200 OK attestation application request was rejected AttestationAppRequest
400 Bad Request ERR_ATTESTATION_APP_REQUEST_INVALID_STATUS errors.AttestationAppRequesStatusError
404 Not Found ERR_ATTESTATION_APP_REQUEST_NOT_FOUND errors.AttestationAppRequestMissingError

AttestationApplicationController.submitAttestationAppRequest

Code samples

# You can also use wget
curl -X PUT https://api.global.id/v1/attestation-apps/{app_uuid}/submit \
  -H 'Accept: application/json'

PUT https://api.global.id/v1/attestation-apps/{app_uuid}/submit HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestation-apps/{app_uuid}/submit',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestation-apps/{app_uuid}/submit',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.put 'https://api.global.id/v1/attestation-apps/{app_uuid}/submit',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.put('https://api.global.id/v1/attestation-apps/{app_uuid}/submit', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestation-apps/{app_uuid}/submit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.global.id/v1/attestation-apps/{app_uuid}/submit", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /v1/attestation-apps/{app_uuid}/submit

Submits a attestation application request that belongs to the provided application uuid

Submits a attestation application request that belongs to the provided application uuid

Parameters

Name In Type Required Description
app_uuid path string true none

Example responses

200 Response

{
  "properties": {
    "app_uuid": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "enum": [
        "draft",
        "submitted",
        "live",
        "archived"
      ],
      "type": "string"
    },
    "input_required": {
      "type": "string"
    },
    "instructions": {
      "type": "string"
    },
    "category_uuid": {
      "type": "string"
    },
    "zendesk_request_id": {
      "type": "string",
      "nullable": true
    },
    "live": {
      "type": "boolean"
    },
    "url": {
      "type": "string",
      "nullable": true
    },
    "types": {
      "type": "string"
    },
    "webhook": {
      "type": "string",
      "nullable": true
    }
  },
  "type": "object",
  "required": [
    "app_uuid",
    "status",
    "input_required",
    "instructions",
    "category_uuid",
    "zendesk_request_id",
    "live",
    "url",
    "types"
  ]
}

Responses

Status Meaning Description Schema
200 OK attestation application request was submitted AttestationAppRequest
400 Bad Request ERR_ATTESTATION_APP_REQUEST_INVALID_STATUS errors.AttestationAppRequesStatusError
404 Not Found ERR_ATTESTATION_APP_REQUEST_NOT_FOUND errors.AttestationAppRequestMissingError

AttestationTypeController.addAttestationType

Code samples

# You can also use wget
curl -X POST https://api.global.id/v1/attestation-apps/{app_uuid}/types \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST https://api.global.id/v1/attestation-apps/{app_uuid}/types HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestation-apps/{app_uuid}/types',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "properties": {
    "name": {
      "minLength": 1,
      "type": "string"
    },
    "description": {
      "minLength": 1,
      "type": "string"
    }
  },
  "type": "object",
  "required": [
    "name",
    "description"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestation-apps/{app_uuid}/types',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v1/attestation-apps/{app_uuid}/types',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.global.id/v1/attestation-apps/{app_uuid}/types', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestation-apps/{app_uuid}/types");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v1/attestation-apps/{app_uuid}/types", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/attestation-apps/{app_uuid}/types

Creates a new zendesk attestation type request which is sent to the administrator for a check-up

Creates a new zendesk attestation type request which is sent to the administrator for a check-up

Body parameter

{
  "properties": {
    "name": {
      "minLength": 1,
      "type": "string"
    },
    "description": {
      "minLength": 1,
      "type": "string"
    }
  },
  "type": "object",
  "required": [
    "name",
    "description"
  ]
}

Parameters

Name In Type Required Description
app_uuid path string true none
body body AttestationTypeBody true AttestationTypeBody

Example responses

404 Response

{
  "description": "ERR_ATTESTATION_APPLICATION_NOT_FOUND",
  "properties": {
    "statusCode": {
      "type": "integer",
      "format": "int32",
      "example": 404
    },
    "request_id": {
      "type": "string",
      "format": "uuid",
      "example": "39ac9a4f-27c8-45fa-a1dd-5b653c4a104f"
    },
    "error_id": {
      "type": "string",
      "format": "uuid",
      "example": "8c8bac3a-bc8c-4d44-bccf-1022b2434971"
    },
    "error_code": {
      "type": "string",
      "example": "ERR_NOT_FOUND"
    },
    "message": {
      "type": "string",
      "example": "ERR_ATTESTATION_APPLICATION_NOT_FOUND"
    }
  },
  "required": [
    "error_code",
    "error_id",
    "message",
    "statusCode"
  ]
}

Responses

Status Meaning Description Schema
201 Created New zendesk attestation type request was sent None
404 Not Found ERR_ATTESTATION_APPLICATION_NOT_FOUND errors.AttestationApplicationMissingError

Attestations

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/attestations \
  -H 'Accept: application/json'

GET https://api.global.id/v1/attestations HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestations',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestations',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/attestations',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/attestations', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestations");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/attestations", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/attestations

List of all identity's attestations

List of all identity's attestations filtered by any attestation's field plus app_uuid

Parameters

Name In Type Required Description
fieldName query any false Filtering over any field this API returns. You can also add a key to the fieldName [gt

Example responses

200 Response

{
  "type": "array",
  "items": {
    "allOf": [
      {
        "description": "Attestation recored",
        "type": "object",
        "properties": {
          "uuid": {
            "description": "Type unique key which is a primary key",
            "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
          },
          "tracking_id": {
            "description": "ID reference to the attestation request record",
            "example": "d3b5c9c1-93bc-49ed-b2bf-748a3d0d2920"
          },
          "type": {
            "description": "What kind of data was attested for this attestation",
            "example": "phone_number"
          },
          "attestee": {
            "description": "Identity's globaliD name",
            "example": "mike"
          },
          "attestee_uuid": {
            "description": "Identity's globaliD uuid",
            "example": "988374ee-d917-4adf-a9a7-9b9f3dcbd59a"
          },
          "attestor": {
            "description": "An Agency's globaliD name",
            "example": "twilio"
          },
          "related_attestations": {
            "description": "Attestation UUIDs that shows from which attestations this attestation relates to.",
            "example": "03ad07db-70b0-4fdb-a747-bb9d3943b061,d3b5c9c1-93bc-49ed-b2bf-748a3d0d2920"
          },
          "data_hash": {
            "description": "Data hash used to validate a PII value",
            "example": "f13f5228d7c1456c5129c33467742308c04e6423a14e06108e76b3158e512b276a9539f4127ee4f81e9f632b25fcb185b8e9e21c1d16fd02ac2de4836f6cf79b"
          },
          "attestor_signed_at": {
            "description": "Date when did the attestor signed this attestation",
            "example": "2018-11-20T14:38:22.000Z"
          },
          "attestee_signed_at": {
            "description": "Date when did the attestee signed this attestation",
            "example": "2018-11-20T14:38:17.000Z"
          },
          "attestor_signature": {
            "description": "Attestor signature",
            "example": "Oe6zL1dn+v6dfxWfqv4c9Q+/lBSQvKc0OLHHnra0h6logFIEQeJJ8e0i2/ZirX8KmspYUtblTA7+nMoQDXkk6FzkV2cpCYw2MFAmfjZxEP84D8pBDPSbNmXVn/UrbnZJefE5mvHOakK+GTxoLMxkZamXVhdreAbGrEyX2IrJsypOaNvk+y8oP2m7zJi4yLAdbfN1NQpJxpgzAvQEvQvITl4qj3ZH+lNEcdzWKW/2537jan+Ml1Wh6hoC4A9otlkNPOaEvo8hNOwMDiqxvrpsbl+jMnu8dJqSnoB+aRcNGEFon8lpfyZ6rdlZDLl6BbGrMgSaZYwKEGYsGq5bJlFdQDs1EStKJMf857NFGOdP5VId/DGSiDnRnqNKQZorVaTcZe5IHQAFjCT7/M6nCxWcK91DrJd4HvcIvFqlNgj3TsdipU8yMMtqN8Voi6NGG4TET0Av0CRGgtU/I7KJ/F0mY6LKeDa2ppBx/4lRqCzHc6TnjfZOFUsmS+tRQ6r8yrpymeU2fP2yDZQAGhcZJHtS0GuO8qcxQcrzhBcrV8pkwbAHskh8R0dtWT/mghnOOvf309KL2xp4RzBYzmD6Xa2JEsJrmQF6x8r5moYVMVBgwGP7AeRn2nCYSxAU9Ldrs7NGr73+yiLhMM66epZd8riUsk6qRwIREW2FF0iC4Snzezc="
          },
          "attestee_signature": {
            "description": "Attestee signature",
            "example": "hX5Evg81x39Snqw3gSHPstpk8np+i3yrwe6wzQLbs8aemrEAStMtrLOOR5yALBNKNlJtu3Ac1YCvutaOYvj+XC70lG4L09QspgR+JTGUkRinUuNH5XOO+75K7BO3o9SFutZql2NW07BYxNQhcHL0W/2tN0RaB7eaYUu6ASGdgLRv61LtwIbuEY5tF3TlvgNSsib6iUnz6u9fjiePhI/Y11OPcypK2xrWoRi7o6whEDPbPTZi5hCR6Krz59mHOqehkR5tcEUUKKGhvyQ2PgKM1tE1uIe75DSTWaATmGvOEAekJ02ibDAGMOoMnHyBamRgDyLt9M8awuG/B1cFusl7oQ=="
          },
          "sig_version": {
            "description": "Represent how this attestation was signed",
            "example": 2
          },
          "public_data": {
            "description": "Public information that is visible to everyone",
            "example": "UK"
          },
          "public_attestor_note": {
            "description": "Public information that attestor wants on this attestation",
            "example": "Information about this attestation"
          }
        }
      },
      {
        "type": "object",
        "properties": {
          "app_uuid": {
            "type": "string",
            "description": "Reference to the app record",
            "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
          }
        }
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK List of attestations Inline
403 Forbidden You are not authorised ForbiddenError
500 Internal Server Error UnexpectedError UnexpectedError

Response Schema

AttestationAgencyPut

Code samples

# You can also use wget
curl -X PUT https://api.global.id/v1/attestations/agencies/:uuid \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

PUT https://api.global.id/v1/attestations/agencies/:uuid HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestations/agencies/:uuid',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "type": "object",
  "properties": {
    "brand_color": {
      "type": "string",
      "description": "Hex color code",
      "example": "#ff0000"
    },
    "description": {
      "type": "string",
      "description": "Description of the Agency.",
      "example": "This is description of the globaliD attestation agency"
    },
    "logo": {
      "type": "string",
      "description": "Url of the Agency logo.",
      "example": "https://images.myagency.com/logo.png"
    },
    "name": {
      "type": "string",
      "description": "Name of the Attestation Agency.",
      "example": "Attestation Agency ACME"
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestations/agencies/:uuid',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.put 'https://api.global.id/v1/attestations/agencies/:uuid',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.put('https://api.global.id/v1/attestations/agencies/:uuid', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestations/agencies/:uuid");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.global.id/v1/attestations/agencies/:uuid", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /v1/attestations/agencies/:uuid

Edit an agency

Update agency information

Body parameter

{
  "type": "object",
  "properties": {
    "brand_color": {
      "type": "string",
      "description": "Hex color code",
      "example": "#ff0000"
    },
    "description": {
      "type": "string",
      "description": "Description of the Agency.",
      "example": "This is description of the globaliD attestation agency"
    },
    "logo": {
      "type": "string",
      "description": "Url of the Agency logo.",
      "example": "https://images.myagency.com/logo.png"
    },
    "name": {
      "type": "string",
      "description": "Name of the Attestation Agency.",
      "example": "Attestation Agency ACME"
    }
  }
}

Parameters

Name In Type Required Description
uuid path uuid true none
body body UpdateAgencyRequestBody false none

Example responses

200 Response

{
  "description": "Agency",
  "type": "object",
  "properties": {
    "uuid": {
      "type": "string",
      "description": "Unique key which is a primary key",
      "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
    },
    "name": {
      "type": "string",
      "description": "Name describing this agency",
      "example": "Tumblr"
    },
    "gid_name": {
      "type": "string",
      "description": "Global ID Name, from this agency's identity",
      "example": "tumblr"
    },
    "logo": {
      "type": "string",
      "description": "URL for this agency's logo",
      "example": "https://somesite.com/image.jpg"
    },
    "description": {
      "type": "string",
      "description": "Agency description",
      "example": "You can attest the ownership of your Tumblr account."
    },
    "brand_color": {
      "type": "string",
      "description": "The HTML colour to use in relation to the brand",
      "example": null
    },
    "client_id": {
      "type": "string",
      "description": "Client ID for the agency",
      "example": "5747113b-9ce5-45d6-bbd6-a3e0e38e0cd5"
    },
    "signing_pbk": {
      "type": "string",
      "description": "The public signing key for the agency",
      "example": "-----BEGIN PUBLIC KEY-----\\nMIICIjANBgkqhkiG9w0BAQEFAAA$Ag8AMIICCgKCAgEAx8I+mnjtB6IHuMD62pAo\\nKI3aoA19sCarQhjvdGW4npAgAy9eN2wPADjlVjqtHTB8UY7bXBDHDoq+0CZHzXFF\\nNITkWVfq4/EZIsgdaYZoknC2aKuGFDsfrdC1svK9hNewLox5JGtf9AqZ5Bup5V55\\nVdKHb9WWMxxh/GWkK8ZeEucMqk2G+NfarCqSuMH9Z5DdUkcpW8BHtlaxj8Ey+Ysc\\nGQBu+BSPx8xBWwuEXtLSsfZ5Z5wda/iSlP4ivFOfZ88LO/XzCooDPnOuWcNJmNpc\\nTWfBOHBXpzIrab68snR9yFOt2CpulDQe+2e8IEobRJAYBJkMb+rzFzefCosXA5IT\\nrAmf/2v/F2D1w9fBRAXpFfwq9oCTSFFXN6broDEoQoKSCdfpGSHHQ3g97jSA8kVG\\ngu7jB1WBoYtfW5NAV7+Pa1sJl+cddXtVg47p3/YJRJVH035RFlnFrxhgxGxOJDrF\\nc6qEG0lRR1yQHoTfSKdHgKpkkiYeMSaIeq7z81GOYYpv/APrwCR7P4pVEjzq/37T\\nAwNL8sMcuNAlT7B8GIdxqdTPr8WiGNIk/+Vfu3vkrA4xKaIG9oaSA0SSTBXkXY9u\\n7uxvDWWZMmxDjLbB0OXHxmE5BiBlppXXG53ft/FhaQ50tocBvsGi1IsNbsP6YyUD\\ndzDAG9qc15MPrIczga0c6CMCAwEAAQ==\\n-----END PUBLIC KEY-----"
    },
    "encryption_pbk": {
      "type": "string",
      "description": "The public encryption key for the agency",
      "example": "-----BEGIN PUBLIC KEY-----\\nMIICIjANBgkqhkiG9w0BAQEFAAA$Ag8AMIICCgKCAgEAx8I+mnjtB6IHuMD62pAo\\nKI3aoA19sCarQhjvdGW4npAgAy9eN2wPADjlVjqtHTB8UY7bXBDHDoq+0CZHzXFF\\nNITkWVfq4/EZIsgdaYZoknC2aKuGFDsfrdC1svK9hNewLox5JGtf9AqZ5Bup5V55\\nVdKHb9WWMxxh/GWkK8ZeEucMqk2G+NfarCqSuMH9Z5DdUkcpW8BHtlaxj8Ey+Ysc\\nGQBu+BSPx8xBWwuEXtLSsfZ5Z5wda/iSlP4ivFOfZ88LO/XzCooDPnOuWcNJmNpc\\nTWfBOHBXpzIrab68snR9yFOt2CpulDQe+2e8IEobRJAYBJkMb+rzFzefCosXA5IT\\nrAmf/2v/F2D1w9fBRAXpFfwq9oCTSFFXN6broDEoQoKSCdfpGSHHQ3g97jSA8kVG\\ngu7jB1WBoYtfW5NAV7+Pa1sJl+cddXtVg47p3/YJRJVH035RFlnFrxhgxGxOJDrF\\nc6qEG0lRR1yQHoTfSKdHgKpkkiYeMSaIeq7z81GOYYpv/APrwCR7P4pVEjzq/37T\\nAwNL8sMcuNAlT7B8GIdxqdTPr8WiGNIk/+Vfu3vkrA4xKaIG9oaSA0SSTBXkXY9u\\n7uxvDWWZMmxDjLbB0OXHxmE5BiBlppXXG53ft/FhaQ50tocBvsGi1IsNbsP6YyUD\\ndzDAG9qc15MPrIczga0c6CMCAwEAAQ==\\n-----END PUBLIC KEY-----"
    },
    "created_at": {
      "description": "The date and time at which this record was created, in ISO-8601 format.",
      "type": "string",
      "format": "date-time",
      "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
    },
    "updated_at": {
      "description": "The date and time at which this record was updated last, in ISO-8601 format.",
      "type": "string",
      "format": "date-time",
      "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
    }
  },
  "required": [
    "uuid",
    "name",
    "gid_name",
    "logo",
    "description",
    "brand_color",
    "client_id",
    "signing_pbk",
    "encryption_pbk",
    "created_at"
  ]
}

Responses

Status Meaning Description Schema
200 OK An Agency AttestationAgency
403 Forbidden You are not authorised ForbiddenError
404 Not Found Not found Inline

Response Schema

CreateNewAttestationAppForAgency

Code samples

# You can also use wget
curl -X POST https://api.global.id/v1/attestations/agencies/:uuid/apps \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST https://api.global.id/v1/attestations/agencies/:uuid/apps HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestations/agencies/:uuid/apps',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "description": "Agency App create fields",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Name describing this app",
      "example": "Tumblr"
    },
    "app_category_uuid": {
      "type": "string",
      "description": "UUID reference to the app category for this app",
      "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
    },
    "img": {
      "type": "string",
      "description": "URL for this app's image",
      "example": "https://somesite.com/image.jpg"
    },
    "description": {
      "type": "string",
      "description": "Agency description",
      "example": "You can attest the ownership of your Tumblr account."
    },
    "instruction": {
      "type": "string",
      "description": "Agency description",
      "example": "You can attest the ownership of your Tumblr account by following the steps provided to you in the next page."
    },
    "webhook_url": {
      "type": "string",
      "description": "URL for this app's webhook",
      "example": "http://somesite.com/callback/url"
    },
    "form_definition": {
      "type": "string",
      "description": "The form definition to be used for this attestation app",
      "example": "{\"some\":\"json\"}"
    },
    "min_app_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_ios_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_android_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_ios_version_full": {
      "type": "string",
      "description": "The minimum app full version to use this attestation app",
      "example": "1.0"
    },
    "min_android_version_full": {
      "type": "string",
      "description": "The minimum app full version to use this attestation app",
      "example": "1.0"
    },
    "min_localid_version_full": {
      "type": "string",
      "description": "The minimum localid full version to use this attestation app",
      "example": "1.0.0"
    },
    "types": {
      "type": "array",
      "items": {
        "description": "App type fields",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type id or name",
            "example": "twitter_followers"
          },
          "optional": {
            "type": "boolean",
            "description": "If this app type is optional or mandatory",
            "example": false
          },
          "derived_attestation_possible": {
            "type": "boolean",
            "description": "If a derived attestation is possible",
            "example": false
          },
          "max_att_number": {
            "type": "number",
            "description": "Maximum numer of attestations",
            "example": 1
          }
        },
        "required": [
          "derived_attestation_possible",
          "optional",
          "max_att_number",
          "type"
        ]
      }
    }
  },
  "required": [
    "name",
    "app_category_uuid",
    "img",
    "description",
    "instruction",
    "min_app_version",
    "min_ios_version",
    "min_android_version",
    "min_ios_version_full",
    "min_android_version_full",
    "min_localid_version_full",
    "types"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestations/agencies/:uuid/apps',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v1/attestations/agencies/:uuid/apps',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.global.id/v1/attestations/agencies/:uuid/apps', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestations/agencies/:uuid/apps");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v1/attestations/agencies/:uuid/apps", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/attestations/agencies/:uuid/apps

Creates an App belonging to an agency

Creates an Apps belonging to an agency

Body parameter

{
  "description": "Agency App create fields",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Name describing this app",
      "example": "Tumblr"
    },
    "app_category_uuid": {
      "type": "string",
      "description": "UUID reference to the app category for this app",
      "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
    },
    "img": {
      "type": "string",
      "description": "URL for this app's image",
      "example": "https://somesite.com/image.jpg"
    },
    "description": {
      "type": "string",
      "description": "Agency description",
      "example": "You can attest the ownership of your Tumblr account."
    },
    "instruction": {
      "type": "string",
      "description": "Agency description",
      "example": "You can attest the ownership of your Tumblr account by following the steps provided to you in the next page."
    },
    "webhook_url": {
      "type": "string",
      "description": "URL for this app's webhook",
      "example": "http://somesite.com/callback/url"
    },
    "form_definition": {
      "type": "string",
      "description": "The form definition to be used for this attestation app",
      "example": "{\"some\":\"json\"}"
    },
    "min_app_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_ios_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_android_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_ios_version_full": {
      "type": "string",
      "description": "The minimum app full version to use this attestation app",
      "example": "1.0"
    },
    "min_android_version_full": {
      "type": "string",
      "description": "The minimum app full version to use this attestation app",
      "example": "1.0"
    },
    "min_localid_version_full": {
      "type": "string",
      "description": "The minimum localid full version to use this attestation app",
      "example": "1.0.0"
    },
    "types": {
      "type": "array",
      "items": {
        "description": "App type fields",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type id or name",
            "example": "twitter_followers"
          },
          "optional": {
            "type": "boolean",
            "description": "If this app type is optional or mandatory",
            "example": false
          },
          "derived_attestation_possible": {
            "type": "boolean",
            "description": "If a derived attestation is possible",
            "example": false
          },
          "max_att_number": {
            "type": "number",
            "description": "Maximum numer of attestations",
            "example": 1
          }
        },
        "required": [
          "derived_attestation_possible",
          "optional",
          "max_att_number",
          "type"
        ]
      }
    }
  },
  "required": [
    "name",
    "app_category_uuid",
    "img",
    "description",
    "instruction",
    "min_app_version",
    "min_ios_version",
    "min_android_version",
    "min_ios_version_full",
    "min_android_version_full",
    "min_localid_version_full",
    "types"
  ]
}

Parameters

Name In Type Required Description
uuid path uuid true none
body body CreateAgencyAppBody false none

Example responses

201 Response

{
  "description": "Agency App",
  "type": "object",
  "properties": {
    "uuid": {
      "type": "string",
      "description": "Unique key which is a primary key",
      "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
    },
    "name": {
      "type": "string",
      "description": "Name describing this app",
      "example": "Tumblr"
    },
    "app_category_uuid": {
      "type": "string",
      "description": "UUID reference to the app category for this app",
      "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
    },
    "img": {
      "type": "string",
      "description": "URL for this app's image",
      "example": "https://somesite.com/image.jpg"
    },
    "agency_uuid": {
      "type": "string",
      "description": "UUID reference to the agency this app belongs to",
      "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
    },
    "description": {
      "type": "string",
      "description": "Agency description",
      "example": "You can attest the ownership of your Tumblr account."
    },
    "instruction": {
      "type": "string",
      "description": "Agency description",
      "example": "You can attest the ownership of your Tumblr account by following the steps provided to you in the next page."
    },
    "webhook_url": {
      "type": "string",
      "description": "URL for this app's webhook",
      "example": "http://somesite.com/callback/url"
    },
    "form_definition": {
      "type": "string",
      "description": "The form definition to be used for this attestation app",
      "example": "{\"some\":\"json\"}"
    },
    "min_app_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_ios_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_android_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_ios_version_full": {
      "type": "string",
      "description": "The minimum app full version to use this attestation app",
      "example": "1.0"
    },
    "min_android_version_full": {
      "type": "string",
      "description": "The minimum app full version to use this attestation app",
      "example": "1.0"
    },
    "min_localid_version_full": {
      "type": "string",
      "description": "The minimum localid full version to use this attestation app",
      "example": "1.0.0"
    },
    "created_at": {
      "description": "The date and time at which this record was created, in ISO-8601 format.",
      "type": "string",
      "format": "date-time",
      "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
    },
    "updated_at": {
      "description": "The date and time at which this record was updated last, in ISO-8601 format.",
      "type": "string",
      "format": "date-time",
      "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
    }
  },
  "required": [
    "uuid",
    "name",
    "app_category_uuid",
    "img",
    "agency_uuid",
    "description",
    "instruction",
    "webhook_url",
    "min_app_version",
    "min_ios_version",
    "min_android_version",
    "min_ios_version_full",
    "min_android_version_full",
    "min_localid_version_full",
    "created_at"
  ]
}

Responses

Status Meaning Description Schema
201 Created All fields related to created app AgencyApp
400 Bad Request Invalid Inline
401 Unauthorized You are not authorised UnauthorisedError
403 Forbidden You are not authorised ForbiddenError
404 Not Found Not found Inline
500 Internal Server Error UnexpectedError UnexpectedError

Response Schema

AttestationsPutAppsForAgency

Code samples

# You can also use wget
curl -X PUT https://api.global.id/v1/attestations/agencies/:uuid/apps/:app_uuid \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

PUT https://api.global.id/v1/attestations/agencies/:uuid/apps/:app_uuid HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestations/agencies/:uuid/apps/:app_uuid',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "description": "Agency App update fields",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Name describing this app",
      "example": "Tumblr"
    },
    "app_category_uuid": {
      "type": "string",
      "description": "UUID reference to the app category for this app",
      "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
    },
    "img": {
      "type": "string",
      "description": "URL for this app's image",
      "example": "https://somesite.com/image.jpg"
    },
    "description": {
      "type": "string",
      "description": "Agency description",
      "example": "You can attest the ownership of your Tumblr account."
    },
    "instruction": {
      "type": "string",
      "description": "Agency description",
      "example": "You can attest the ownership of your Tumblr account by following the steps provided to you in the next page."
    },
    "webhook_url": {
      "type": "string",
      "description": "URL for this app's webhook",
      "example": "http://somesite.com/callback/url"
    },
    "form_definition": {
      "type": "string",
      "description": "The form definition to be used for this attestation app",
      "example": "{\"some\":\"json\"}"
    },
    "min_app_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_ios_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_android_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_ios_version_full": {
      "type": "string",
      "description": "The minimum app full version to use this attestation app",
      "example": "1.0"
    },
    "min_android_version_full": {
      "type": "string",
      "description": "The minimum app full version to use this attestation app",
      "example": "1.0"
    },
    "min_localid_version_full": {
      "type": "string",
      "description": "The minimum localid full version to use this attestation app",
      "example": "1.0.0"
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestations/agencies/:uuid/apps/:app_uuid',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.put 'https://api.global.id/v1/attestations/agencies/:uuid/apps/:app_uuid',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.put('https://api.global.id/v1/attestations/agencies/:uuid/apps/:app_uuid', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestations/agencies/:uuid/apps/:app_uuid");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.global.id/v1/attestations/agencies/:uuid/apps/:app_uuid", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /v1/attestations/agencies/:uuid/apps/:app_uuid

Updates an App belonging to an agency

Updates an Apps belonging to an agency

Body parameter

{
  "description": "Agency App update fields",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Name describing this app",
      "example": "Tumblr"
    },
    "app_category_uuid": {
      "type": "string",
      "description": "UUID reference to the app category for this app",
      "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
    },
    "img": {
      "type": "string",
      "description": "URL for this app's image",
      "example": "https://somesite.com/image.jpg"
    },
    "description": {
      "type": "string",
      "description": "Agency description",
      "example": "You can attest the ownership of your Tumblr account."
    },
    "instruction": {
      "type": "string",
      "description": "Agency description",
      "example": "You can attest the ownership of your Tumblr account by following the steps provided to you in the next page."
    },
    "webhook_url": {
      "type": "string",
      "description": "URL for this app's webhook",
      "example": "http://somesite.com/callback/url"
    },
    "form_definition": {
      "type": "string",
      "description": "The form definition to be used for this attestation app",
      "example": "{\"some\":\"json\"}"
    },
    "min_app_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_ios_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_android_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_ios_version_full": {
      "type": "string",
      "description": "The minimum app full version to use this attestation app",
      "example": "1.0"
    },
    "min_android_version_full": {
      "type": "string",
      "description": "The minimum app full version to use this attestation app",
      "example": "1.0"
    },
    "min_localid_version_full": {
      "type": "string",
      "description": "The minimum localid full version to use this attestation app",
      "example": "1.0.0"
    }
  }
}

Parameters

Name In Type Required Description
uuid path uuid true none
app_uuid path uuid true none
body body UpdateAgencyAppBody false none

Example responses

200 Response

{
  "description": "Agency App",
  "type": "object",
  "properties": {
    "uuid": {
      "type": "string",
      "description": "Unique key which is a primary key",
      "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
    },
    "name": {
      "type": "string",
      "description": "Name describing this app",
      "example": "Tumblr"
    },
    "app_category_uuid": {
      "type": "string",
      "description": "UUID reference to the app category for this app",
      "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
    },
    "img": {
      "type": "string",
      "description": "URL for this app's image",
      "example": "https://somesite.com/image.jpg"
    },
    "agency_uuid": {
      "type": "string",
      "description": "UUID reference to the agency this app belongs to",
      "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
    },
    "description": {
      "type": "string",
      "description": "Agency description",
      "example": "You can attest the ownership of your Tumblr account."
    },
    "instruction": {
      "type": "string",
      "description": "Agency description",
      "example": "You can attest the ownership of your Tumblr account by following the steps provided to you in the next page."
    },
    "webhook_url": {
      "type": "string",
      "description": "URL for this app's webhook",
      "example": "http://somesite.com/callback/url"
    },
    "form_definition": {
      "type": "string",
      "description": "The form definition to be used for this attestation app",
      "example": "{\"some\":\"json\"}"
    },
    "min_app_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_ios_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_android_version": {
      "type": "string",
      "description": "The minimum app version to use this attestation app",
      "example": "1.0"
    },
    "min_ios_version_full": {
      "type": "string",
      "description": "The minimum app full version to use this attestation app",
      "example": "1.0"
    },
    "min_android_version_full": {
      "type": "string",
      "description": "The minimum app full version to use this attestation app",
      "example": "1.0"
    },
    "min_localid_version_full": {
      "type": "string",
      "description": "The minimum localid full version to use this attestation app",
      "example": "1.0.0"
    },
    "created_at": {
      "description": "The date and time at which this record was created, in ISO-8601 format.",
      "type": "string",
      "format": "date-time",
      "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
    },
    "updated_at": {
      "description": "The date and time at which this record was updated last, in ISO-8601 format.",
      "type": "string",
      "format": "date-time",
      "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
    }
  },
  "required": [
    "uuid",
    "name",
    "app_category_uuid",
    "img",
    "agency_uuid",
    "description",
    "instruction",
    "webhook_url",
    "min_app_version",
    "min_ios_version",
    "min_android_version",
    "min_ios_version_full",
    "min_android_version_full",
    "min_localid_version_full",
    "created_at"
  ]
}

Responses

Status Meaning Description Schema
200 OK Updated Agency App object AgencyApp
401 Unauthorized You are not authorised UnauthorisedError
403 Forbidden You are not authorised ForbiddenError
404 Not Found Not found NotFound
500 Internal Server Error UnexpectedError UnexpectedError

AttestationsPostAppsTypeForAgency

Code samples

# You can also use wget
curl -X POST https://api.global.id/v1/attestations/agencies/:uuid/apps/:app_uuid/types \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST https://api.global.id/v1/attestations/agencies/:uuid/apps/:app_uuid/types HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestations/agencies/:uuid/apps/:app_uuid/types',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "description": "An App Type, that links an app to a type with meta information",
  "type": "object",
  "properties": {
    "type_fk": {
      "type": "string",
      "description": "Reference to the type record",
      "example": "phone_carrier"
    },
    "optional": {
      "type": "boolean",
      "description": "If this app type is optional or mandatory",
      "example": false
    },
    "derived_attestation_possible": {
      "type": "boolean",
      "description": "If a derived attestation is possible",
      "example": false
    },
    "max_att_number": {
      "type": "number",
      "description": "Maximum numer of attestations",
      "example": 1
    }
  },
  "required": [
    "type_fk",
    "derived_attestation_possible",
    "optional",
    "max_att_number"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestations/agencies/:uuid/apps/:app_uuid/types',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v1/attestations/agencies/:uuid/apps/:app_uuid/types',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.global.id/v1/attestations/agencies/:uuid/apps/:app_uuid/types', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestations/agencies/:uuid/apps/:app_uuid/types");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v1/attestations/agencies/:uuid/apps/:app_uuid/types", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/attestations/agencies/:uuid/apps/:app_uuid/types

Create a new agency application type

Create a new agency application type

Body parameter

{
  "description": "An App Type, that links an app to a type with meta information",
  "type": "object",
  "properties": {
    "type_fk": {
      "type": "string",
      "description": "Reference to the type record",
      "example": "phone_carrier"
    },
    "optional": {
      "type": "boolean",
      "description": "If this app type is optional or mandatory",
      "example": false
    },
    "derived_attestation_possible": {
      "type": "boolean",
      "description": "If a derived attestation is possible",
      "example": false
    },
    "max_att_number": {
      "type": "number",
      "description": "Maximum numer of attestations",
      "example": 1
    }
  },
  "required": [
    "type_fk",
    "derived_attestation_possible",
    "optional",
    "max_att_number"
  ]
}

Parameters

Name In Type Required Description
uuid path uuid true none
app_uuid path uuid true none
body body CreateAndUpdateAgencyAppTypePayload false none

Example responses

201 Response

{
  "description": "An App Type, that links an app to a type with meta information",
  "type": "object",
  "properties": {
    "uuid": {
      "type": "string",
      "description": "Unique key which is a primary key",
      "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
    },
    "type_fk": {
      "type": "string",
      "description": "Reference to the type record",
      "example": "phone_carrier"
    },
    "app_uuid": {
      "type": "string",
      "description": "Reference to the app record",
      "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
    },
    "optional": {
      "type": "boolean",
      "description": "If this app type is optional or mandatory",
      "example": false
    },
    "derived_attestation_possible": {
      "type": "boolean",
      "description": "If a derived attestation is possible",
      "example": false
    },
    "max_att_number": {
      "type": "number",
      "description": "Maximum numer of attestations",
      "example": 1
    },
    "created_at": {
      "description": "The date and time at which this record was created, in ISO-8601 format.",
      "type": "string",
      "format": "date-time",
      "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
    },
    "updated_at": {
      "description": "The date and time at which this record was updated last, in ISO-8601 format.",
      "type": "string",
      "format": "date-time",
      "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
    }
  },
  "required": [
    "uuid",
    "type_fk",
    "app_uuid",
    "derived_attestation_possible",
    "optional",
    "max_att_number",
    "created_at"
  ]
}

Responses

Status Meaning Description Schema
201 Created Created AttestationAppTypeRecord
401 Unauthorized You are not authorised UnauthorisedError
403 Forbidden You are not authorised ForbiddenError
404 Not Found Not found Inline
422 Unprocessable Entity Unprocessable Entity ERR_APP_TYPE_ALREADY_CREATED
500 Internal Server Error UnexpectedError UnexpectedError

Response Schema

AttestationAgencyConfigGet

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/attestations/agency/me \
  -H 'Accept: application/json'

GET https://api.global.id/v1/attestations/agency/me HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestations/agency/me',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestations/agency/me',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://api.global.id/v1/attestations/agency/me',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.global.id/v1/attestations/agency/me', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestations/agency/me");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.global.id/v1/attestations/agency/me", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/attestations/agency/me

Returns an agency config

Returns an Agency Config

Example responses

200 Response

{
  "description": "Agency Config",
  "type": "object",
  "properties": {
    "uuid": {
      "type": "string",
      "description": "Unique key which is a primary key",
      "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
    },
    "name": {
      "type": "string",
      "description": "Name describing this agency",
      "example": "Tumblr"
    },
    "gid_name": {
      "type": "string",
      "description": "Global ID Name, from this agency's identity",
      "example": "tumblr"
    },
    "logo": {
      "type": "string",
      "description": "URL for this agency's logo",
      "example": "https://somesite.com/image.jpg"
    },
    "description": {
      "type": "string",
      "description": "Agency description",
      "example": "You can attest the ownership of your Tumblr account."
    },
    "brand_color": {
      "type": "string",
      "description": "The HTML colour to use in relation to the brand",
      "example": null
    },
    "client_id": {
      "type": "string",
      "description": "Client ID for the agency",
      "example": "5747113b-9ce5-45d6-bbd6-a3e0e38e0cd5"
    },
    "signing_pbk": {
      "type": "string",
      "description": "The public signing key for the agency",
      "example": "-----BEGIN PUBLIC KEY-----\\nMIICIjANBgkqhkiG9w0BAQEFAAA$Ag8AMIICCgKCAgEAx8I+mnjtB6IHuMD62pAo\\nKI3aoA19sCarQhjvdGW4npAgAy9eN2wPADjlVjqtHTB8UY7bXBDHDoq+0CZHzXFF\\nNITkWVfq4/EZIsgdaYZoknC2aKuGFDsfrdC1svK9hNewLox5JGtf9AqZ5Bup5V55\\nVdKHb9WWMxxh/GWkK8ZeEucMqk2G+NfarCqSuMH9Z5DdUkcpW8BHtlaxj8Ey+Ysc\\nGQBu+BSPx8xBWwuEXtLSsfZ5Z5wda/iSlP4ivFOfZ88LO/XzCooDPnOuWcNJmNpc\\nTWfBOHBXpzIrab68snR9yFOt2CpulDQe+2e8IEobRJAYBJkMb+rzFzefCosXA5IT\\nrAmf/2v/F2D1w9fBRAXpFfwq9oCTSFFXN6broDEoQoKSCdfpGSHHQ3g97jSA8kVG\\ngu7jB1WBoYtfW5NAV7+Pa1sJl+cddXtVg47p3/YJRJVH035RFlnFrxhgxGxOJDrF\\nc6qEG0lRR1yQHoTfSKdHgKpkkiYeMSaIeq7z81GOYYpv/APrwCR7P4pVEjzq/37T\\nAwNL8sMcuNAlT7B8GIdxqdTPr8WiGNIk/+Vfu3vkrA4xKaIG9oaSA0SSTBXkXY9u\\n7uxvDWWZMmxDjLbB0OXHxmE5BiBlppXXG53ft/FhaQ50tocBvsGi1IsNbsP6YyUD\\ndzDAG9qc15MPrIczga0c6CMCAwEAAQ==\\n-----END PUBLIC KEY-----"
    },
    "encryption_pbk": {
      "type": "string",
      "description": "The public encryption key for the agency",
      "example": "-----BEGIN PUBLIC KEY-----\\nMIICIjANBgkqhkiG9w0BAQEFAAA$Ag8AMIICCgKCAgEAx8I+mnjtB6IHuMD62pAo\\nKI3aoA19sCarQhjvdGW4npAgAy9eN2wPADjlVjqtHTB8UY7bXBDHDoq+0CZHzXFF\\nNITkWVfq4/EZIsgdaYZoknC2aKuGFDsfrdC1svK9hNewLox5JGtf9AqZ5Bup5V55\\nVdKHb9WWMxxh/GWkK8ZeEucMqk2G+NfarCqSuMH9Z5DdUkcpW8BHtlaxj8Ey+Ysc\\nGQBu+BSPx8xBWwuEXtLSsfZ5Z5wda/iSlP4ivFOfZ88LO/XzCooDPnOuWcNJmNpc\\nTWfBOHBXpzIrab68snR9yFOt2CpulDQe+2e8IEobRJAYBJkMb+rzFzefCosXA5IT\\nrAmf/2v/F2D1w9fBRAXpFfwq9oCTSFFXN6broDEoQoKSCdfpGSHHQ3g97jSA8kVG\\ngu7jB1WBoYtfW5NAV7+Pa1sJl+cddXtVg47p3/YJRJVH035RFlnFrxhgxGxOJDrF\\nc6qEG0lRR1yQHoTfSKdHgKpkkiYeMSaIeq7z81GOYYpv/APrwCR7P4pVEjzq/37T\\nAwNL8sMcuNAlT7B8GIdxqdTPr8WiGNIk/+Vfu3vkrA4xKaIG9oaSA0SSTBXkXY9u\\n7uxvDWWZMmxDjLbB0OXHxmE5BiBlppXXG53ft/FhaQ50tocBvsGi1IsNbsP6YyUD\\ndzDAG9qc15MPrIczga0c6CMCAwEAAQ==\\n-----END PUBLIC KEY-----"
    },
    "created_at": {
      "description": "The date and time at which this record was created, in ISO-8601 format.",
      "type": "string",
      "format": "date-time",
      "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
    },
    "updated_at": {
      "description": "The date and time at which this record was updated last, in ISO-8601 format.",
      "type": "string",
      "format": "date-time",
      "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
    },
    "apps": {
      "type": "array",
      "items": {
        "description": "App (belonging to Agency)",
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Unique key which is a primary key",
            "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
          },
          "name": {
            "type": "string",
            "description": "Name describing this app",
            "example": "Tumblr"
          },
          "app_category_uuid": {
            "type": "string",
            "description": "UUID reference to the app category for this app",
            "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
          },
          "img": {
            "type": "string",
            "description": "URL for this app's image",
            "example": "https://somesite.com/image.jpg"
          },
          "agency_uuid": {
            "type": "string",
            "description": "UUID reference to the agency this app belongs to",
            "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
          },
          "description": {
            "type": "string",
            "description": "Agency description",
            "example": "You can attest the ownership of your Tumblr account."
          },
          "instruction": {
            "type": "string",
            "description": "Agency description",
            "example": "You can attest the ownership of your Tumblr account by following the steps provided to you in the next page."
          },
          "webhook_url": {
            "type": "string",
            "description": "URL for this app's webhook",
            "example": "http://somesite.com/callback/url"
          },
          "form_definition": {
            "type": "string",
            "description": "The form definition to be used for this attestation app",
            "example": "{\"some\":\"json\"}"
          },
          "min_app_version": {
            "type": "string",
            "description": "The minimum app version to use this attestation app",
            "example": "1.0"
          },
          "min_ios_version": {
            "type": "string",
            "description": "The minimum app version to use this attestation app",
            "example": "1.0"
          },
          "min_android_version": {
            "type": "string",
            "description": "The minimum app version to use this attestation app",
            "example": "1.0"
          },
          "min_ios_version_full": {
            "type": "string",
            "description": "The minimum app full version to use this attestation app",
            "example": "1.0"
          },
          "min_android_version_full": {
            "type": "string",
            "description": "The minimum app full version to use this attestation app",
            "example": "1.0"
          },
          "min_localid_version_full": {
            "type": "string",
            "description": "The minimum localid full version to use this attestation app",
            "example": "1.0.0"
          },
          "created_at": {
            "description": "The date and time at which this record was created, in ISO-8601 format.",
            "type": "string",
            "format": "date-time",
            "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
          },
          "updated_at": {
            "description": "The date and time at which this record was updated last, in ISO-8601 format.",
            "type": "string",
            "format": "date-time",
            "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
          },
          "app_types": {
            "type": "array",
            "items": {
              "description": "An App Type, that links an app to a type with meta information",
              "type": "object",
              "properties": {
                "uuid": {
                  "type": "string",
                  "description": "Unique key which is a primary key",
                  "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
                },
                "type_fk": {
                  "type": "string",
                  "description": "Reference to the type record",
                  "example": "phone_carrier"
                },
                "app_uuid": {
                  "type": "string",
                  "description": "Reference to the app record",
                  "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
                },
                "optional": {
                  "type": "boolean",
                  "description": "If this app type is optional or mandatory",
                  "example": false
                },
                "derived_attestation_possible": {
                  "type": "boolean",
                  "description": "If a derived attestation is possible",
                  "example": false
                },
                "max_att_number": {
                  "type": "number",
                  "description": "Maximum numer of attestations",
                  "example": 1
                },
                "created_at": {
                  "description": "The date and time at which this record was created, in ISO-8601 format.",
                  "type": "string",
                  "format": "date-time",
                  "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
                },
                "updated_at": {
                  "description": "The date and time at which this record was updated last, in ISO-8601 format.",
                  "type": "string",
                  "format": "date-time",
                  "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
                },
                "type": {
                  "description": "An App Type, that links an app to a type with meta information",
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "Unique primary key of this type",
                      "example": "phone_carrier"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the type",
                      "example": "Phone carrier name"
                    },
                    "icon": {
                      "type": "string",
                      "description": "URL of the icon for this type",
                      "example": "https://somesite.com/image.jpg"
                    },
                    "description": {
                      "type": "string",
                      "description": "Description of this type",
                      "example": "The name of the service provider (carrier) of the phone number"
                    },
                    "created_at": {
                      "description": "The date and time at which this record was created, in ISO-8601 format.",
                      "type": "string",
                      "format": "date-time",
                      "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
                    },
                    "updated_at": {
                      "description": "The date and time at which this record was updated last, in ISO-8601 format.",
                      "type": "string",
                      "format": "date-time",
                      "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
                    }
                  },
                  "required": [
                    "type",
                    "name",
                    "description",
                    "created_at"
                  ]
                }
              },
              "required": [
                "uuid",
                "type_fk",
                "app_uuid",
                "derived_attestation_possible",
                "optional",
                "max_att_number",
                "created_at",
                "type"
              ]
            }
          }
        },
        "required": [
          "uuid",
          "name",
          "app_category_uuid",
          "img",
          "agency_uuid",
          "description",
          "instruction",
          "min_app_version",
          "min_ios_version",
          "min_android_version",
          "min_ios_version_full",
          "min_android_version_full",
          "min_localid_version_full",
          "created_at",
          "updated_at",
          "app_types"
        ]
      }
    }
  },
  "required": [
    "uuid",
    "name",
    "gid_name",
    "logo",
    "description",
    "brand_color",
    "client_id",
    "signing_pbk",
    "encryption_pbk",
    "created_at",
    "apps"
  ]
}

Responses

Status Meaning Description Schema
200 OK An Agency Config AttestationAgencyWithConfig
404 Not Found Not found Inline
500 Internal Server Error UnexpectedError UnexpectedError

Response Schema

Status Code 404

Name Type Required Restrictions Description
» statusCode integer(int32) true none none
» error_id string(uuid) true none none
» error_code string true none none
» message string true none none

DeleteAttestationsPutAppsForAgency

Code samples

# You can also use wget
curl -X DELETE https://api.global.id/v1/attestations/app_types/:uuid \
  -H 'Accept: application/json'

DELETE https://api.global.id/v1/attestations/app_types/:uuid HTTP/1.1
Host: api.global.id
Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestations/app_types/:uuid',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestations/app_types/:uuid',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.delete 'https://api.global.id/v1/attestations/app_types/:uuid',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.delete('https://api.global.id/v1/attestations/app_types/:uuid', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestations/app_types/:uuid");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.global.id/v1/attestations/app_types/:uuid", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /v1/attestations/app_types/:uuid

Delete a type belonging to an agency app

Delete a type belonging to an agency app

Parameters

Name In Type Required Description
uuid path uuid true none

Example responses

401 Response

{
  "description": "Unauthorised error",
  "required": [
    "error_code",
    "error_id",
    "message",
    "statusCode"
  ],
  "properties": {
    "statusCode": {
      "type": "integer",
      "format": "int32",
      "example": 401
    },
    "message": {
      "type": "string",
      "example": "You are not authorized to access this resource"
    },
    "error_code": {
      "type": "string",
      "example": "ERR_UNAUTHORIZED"
    },
    "error_id": {
      "type": "string",
      "format": "uuid",
      "example": "8c8bac3a-bc8c-4d44-bccf-1022b2434971"
    }
  }
}

Responses

Status Meaning Description Schema
204 No Content App Type successfully deleted None
401 Unauthorized You are not authorised UnauthorisedError
403 Forbidden You are not authorised ForbiddenError
404 Not Found Not found Inline
500 Internal Server Error UnexpectedError UnexpectedError

Response Schema

AttestationsPUTAppsTypeForAgency

Code samples

# You can also use wget
curl -X PUT https://api.global.id/v1/attestations/app_types/:uuid \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

PUT https://api.global.id/v1/attestations/app_types/:uuid HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestations/app_types/:uuid',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "description": "An App Type, that links an app to a type with meta information",
  "type": "object",
  "properties": {
    "type_fk": {
      "type": "string",
      "description": "Reference to the type record",
      "example": "phone_carrier"
    },
    "optional": {
      "type": "boolean",
      "description": "If this app type is optional or mandatory",
      "example": false
    },
    "derived_attestation_possible": {
      "type": "boolean",
      "description": "If a derived attestation is possible",
      "example": false
    },
    "max_att_number": {
      "type": "number",
      "description": "Maximum numer of attestations",
      "example": 1
    }
  },
  "required": [
    "type_fk",
    "derived_attestation_possible",
    "optional",
    "max_att_number"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestations/app_types/:uuid',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.put 'https://api.global.id/v1/attestations/app_types/:uuid',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.put('https://api.global.id/v1/attestations/app_types/:uuid', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestations/app_types/:uuid");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.global.id/v1/attestations/app_types/:uuid", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /v1/attestations/app_types/:uuid

Update an agency application type

Update an agency application type

Body parameter

{
  "description": "An App Type, that links an app to a type with meta information",
  "type": "object",
  "properties": {
    "type_fk": {
      "type": "string",
      "description": "Reference to the type record",
      "example": "phone_carrier"
    },
    "optional": {
      "type": "boolean",
      "description": "If this app type is optional or mandatory",
      "example": false
    },
    "derived_attestation_possible": {
      "type": "boolean",
      "description": "If a derived attestation is possible",
      "example": false
    },
    "max_att_number": {
      "type": "number",
      "description": "Maximum numer of attestations",
      "example": 1
    }
  },
  "required": [
    "type_fk",
    "derived_attestation_possible",
    "optional",
    "max_att_number"
  ]
}

Parameters

Name In Type Required Description
uuid path uuid true none
body body CreateAndUpdateAgencyAppTypePayload false none

Example responses

200 Response

{
  "description": "An App Type, that links an app to a type with meta information",
  "type": "object",
  "properties": {
    "uuid": {
      "type": "string",
      "description": "Unique key which is a primary key",
      "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
    },
    "type_fk": {
      "type": "string",
      "description": "Reference to the type record",
      "example": "phone_carrier"
    },
    "app_uuid": {
      "type": "string",
      "description": "Reference to the app record",
      "example": "06689350-b90f-436b-ac1a-e7e0901efcde"
    },
    "optional": {
      "type": "boolean",
      "description": "If this app type is optional or mandatory",
      "example": false
    },
    "derived_attestation_possible": {
      "type": "boolean",
      "description": "If a derived attestation is possible",
      "example": false
    },
    "max_att_number": {
      "type": "number",
      "description": "Maximum numer of attestations",
      "example": 1
    },
    "created_at": {
      "description": "The date and time at which this record was created, in ISO-8601 format.",
      "type": "string",
      "format": "date-time",
      "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
    },
    "updated_at": {
      "description": "The date and time at which this record was updated last, in ISO-8601 format.",
      "type": "string",
      "format": "date-time",
      "example": "yyyy-mm-ddThh:mm:ss.mmmZ"
    }
  },
  "required": [
    "uuid",
    "type_fk",
    "app_uuid",
    "derived_attestation_possible",
    "optional",
    "max_att_number",
    "created_at"
  ]
}

Responses

Status Meaning Description Schema
200 OK Updated AttestationAppTypeRecord
401 Unauthorized You are not authorised UnauthorisedError
403 Forbidden You are not authorised ForbiddenError
404 Not Found Not found Inline
500 Internal Server Error UnexpectedError UnexpectedError

Response Schema

AttestationsAppsUUIDOngoigStatus

Code samples

# You can also use wget
curl -X POST https://api.global.id/v1/attestations/apps/:app_uuid/ongoing_status \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST https://api.global.id/v1/attestations/apps/:app_uuid/ongoing_status HTTP/1.1
Host: api.global.id
Content-Type: application/json
Accept: application/json

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

$.ajax({
  url: 'https://api.global.id/v1/attestations/apps/:app_uuid/ongoing_status',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "description": "Submit to check app attestations",
  "type": "object",
  "properties": {
    "checked": {
      "type": "number",
      "description": "number of items"
    },
    "revoke": {
      "type": "array",
      "description": "array of revoaction objects",
      "items": {
        "type": "object",
        "properties": {
          "attestation_request_uuid": {
            "type": "string",
            "description": "uuid of attestation request"
          },
          "reason": {
            "type": "string",
            "description": "Identity's explanation why request was revoked"
          },
          "revocation_signature": {
            "type": "string",
            "description": "Revocation signature"
          }
        }
      }
    },
    "tracking_id": {
      "type": "string",
      "description": "ID reference to the attestation request record",
      "example": "d3b5c9c1-93bc-49ed-b2bf-748a3d0d2920"
    }
  },
  "required": [
    "checked",
    "revoke",
    "tracking_id"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('https://api.global.id/v1/attestations/apps/:app_uuid/ongoing_status',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json'
}

result = RestClient.post 'https://api.global.id/v1/attestations/apps/:app_uuid/ongoing_status',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('https://api.global.id/v1/attestations/apps/:app_uuid/ongoing_status', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.global.id/v1/attestations/apps/:app_uuid/ongoing_status");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.global.id/v1/attestations/apps/:app_uuid/ongoing_status", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/attestations/apps/:app_uuid/ongoing_status

Submit to update app attestation periodically

Submit to update app attestation periodically

Body parameter

{
  "description": "Submit to check app attestations",
  "type": "object",
  "properties": {
    "checked": {
      "type": "number",
      "description": "number of items"
    },
    "revoke": {
      "type": "array",
      "description": "array of revoaction objects",
      "items": {
        "type": "object",
        "properties": {
          "attestation_request_uuid": {
            "type": "string",
            "description": "uuid of attestation request"
          },
          "reason": {
            "type": "string",
            "description": "Identity's explanation why request was revoked"
          },
          "revocation_signature": {
            "type": "string",
            "description": "Revocation signature"
          }
        }
      }
    },
    "tracking_id": {
      "type": "string",
      "description": "ID reference to the attestation request record",
      "example": "d3b5c9c1-93bc-49ed-b2bf-748a3d0d2920"
    }
  },
  "required": [
    "checked",
    "revoke",
    "tracking_id"
  ]
}

Parameters

Name In Type Required Description
app_uuid path uuid true none
body body UpdateAttestationAppOngoingStatus false none

Example responses

400 Response

{
  "oneOf": [
    {
      "properties": {
        "statusCode": {
          "type": "integer",
          "format": "int32",
          "example": 400
        },
        "error_id": {
          "type": "string",
          "format": "uuid",
          "example": "7c9e6a03-ac89-485e-885c-0fdd2c39739e"
        },
        "error_code": {
          "type": "string",
          "example": "ERR_IS_NOT_ONGOING_APP"
        },
        "message": {
          "type": "string",
          "example": "The app does not have ongoing type"
        }
      },
      "required": [
        "error_id",
        "error_code",
        "statusCode",
        "message"
      ]
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success None
400 Bad Request Bad Request Inline
401 Unauthorized You are not authorised UnauthorisedError
403 Forbidden You are not authorised ForbiddenError
404 Not Found Not found Inline
422 Unprocessable Entity Unprocessable Entity ERR_APP_TYPE_ALREADY_CREATED
500 Internal Server Error UnexpectedError UnexpectedError

Response Schema

Status Code 400

Name Type Required Restrictions Description
» statusCode integer(int32) true none none
» error_id string(uuid) true none none
» error_code string true none none
» message string true none none

AttestationsGetPII

Code samples

# You can also use wget
curl -X GET https://api.global.id/v1/attestations/pii \
  -H 'Accept: application/j