Gencove REST API docs

Summary

Resource Operation Description
apps POST /apps Create app
  GET /apps Fetch my apps
  PUT /apps/(int:app_id) Update app
  GET /apps/(int:app_id) Get app
  GET /apps/(int:app_id)/stats App stats
  POST /apps/(int:app_id)/image/v2 Image upload
  GET /apps/(int:app_id)/members Get members
  GET /apps/(int:app_id)/members/(int:member_id) Get single member
  POST /apps/(int:app_id)/raw-data Get app raw data
  POST /apps/jwt Generate JWT
  GET /apps/verified/(string:app_jwt) Get app via JWT (verified)
  GET /apps/public/(int:app_id) Get discoverable app via id
  GET /apps/(int:app_id)/members/(int:member_id)/order Get member order status
members POST /members Join app
  GET /members/apps Get apps for member
  POST /members/apps/(int:app_id) Rejoin app
  DELETE /members/apps/(int:app_id) Leave app
  GET /members/apps/(int:app_id) Get app info as member
misc GET / Basic no-auth functionality
  GET /health Backend health
  GET /welcome-api-key API key functionality

API Conventions

HTTP responses

A standard response from the Gencove backend will have Content-Type: application/json. It will also typically have a message field with straightforward feedback intended for the user and a message_details field with more detailed information. Unless explicitly modified, this convention can be assumed for all classes of HTTP responses (2xx, 4xx, 5xx, etc.)

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "message": "Message intended for user",
    "message_details": "More detailed message"
}

In order to avoid denoting specific responses for these two fields, the documentation will display them as follows:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "message": "...",
    "message_details": "..."
}

Date and other

In some cases, an API response contains a date field. This is an example of a date field:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "created": {
        "year": 2017,
        "month": 2,
        "month_name": "February",
        "day": 6,
        "hour": 19,
        "minute": 30,
        "second": 36,
        "datetime_string": "February 06, 2017 at 7:30 PM",
        "date_string": "February 06, 2017",
        "time_string": "7:30 PM",
        "iso8601": "2017-02-06T19:30:36"
    }
}

In order to declutter the documentation, date fields (and other irrelevant fields) will be shown as follows in order to maintain valid JSON formatting:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "created": {
        "...": "..."
    }
}

Endpoints

GET /

Endpoint for testing basic unauthenticated access.

Example request:

GET / HTTP/1.1
Host: rest.gencove.com

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "message": "...",
  "message_details": "..."
}
GET /health

Endpoint for checking backend health.

Example request:

GET /health HTTP/1.1
Host: rest.gencove.com

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "message": "...",
  "message_details": "..."
}
GET /welcome-api-key

Endpoint for testing API key functionality.

Request Headers:
 

Example request:

GET /welcome-api-key HTTP/1.1
Host: rest.gencove.com
Authorization: GENCOVE-API-KEY my-api-key

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "message": "...",
  "message_details": "..."
}
POST /apps

Create app.

Request JSON Object:
 
  • name (string) – name [required]
  • author (string) – app author [required]
  • href (string) – link to app information [required]
  • description (string) – app description (max 200 chars) [required]
  • enabled (bool) – initial app state
  • discoverable (bool) – initial app discoverability
  • webhook_url (string) – URL for member status update webhook
  • member_url (string) – URL to send users once they become app members. May contain”{external_id}”, which will be replaced with the external_idprovided in JWT when user joined app.
  • direct_url (string) – URL for direct-to-app access. Newly generated member id and link to select raw data files may be optionally interpolated.
  • urlencode_interpolations (bool) – URL encode interpolations setting
Response JSON Object:
 
  • app (dict) – new app data
Request Headers:
 

Example request:

POST /apps HTTP/1.1
Host: rest.gencove.com
Content-Type: application/json
Authorization: JWT my-tmp-access-token

{
  "name": "Test App",
  "author": "Gencove",
  "href": "http://research.gencove.com",
  "description": "This is a test app for demonstration purposes",
  "enabled": true,
  "discoverable": true
}

Example response:

HTTP/1.1 200 OK
Content-type: application/json

{
  "app": {
    "id": 4,
    "user_id": 3,
    "name": "Test App",
    "author": "Gencove",
    "description": "This is a test app for demonstration purposes",
    "href": "http://research.gencove.com",
    "discoverable": true,
    "enabled": true,
    "featured": true,
    "approved": true,
    "subsidy_enabled": false,
    "note": null,
    "signing_key": "my_signing_key_4",
    "webhook_url": null,
    "member_url": null,
    "direct_url": null,
    "urlencode_interpolations": true,
    "file": {
      "url_s3": "...",
      "...": "..."
    },
    "created": {
      "...": "..."
    },
    "modified": {
      "...": "..."
    }
  },
  "message": "...",
  "message_details": "..."
}
GET /apps

Fetch my apps.

Fetch all apps created/owned by user.

Response JSON Object:
 
  • apps (list[dict]) – list of apps
Request Headers:
 

Example request:

GET /apps HTTP/1.1
Host: rest.gencove.com
Authorization: JWT my-tmp-access-token

Example response:

HTTP/1.1 200 OK
Content-type: application/json

{
  "apps": [
    {
      "id": 2,
      "user_id": 3,
      "name": "Test app 1",
      "author": "Gencove",
      "description": "Description",
      "href": "https://www.test.com",
      "discoverable": false,
      "featured": true,
      "approved": true,
      "enabled": true,
      "subsidy_enabled": false,
      "note": null,
      "signing_key": "my_signing_key_2",
      "webhook_url": null,
      "member_url": null,
      "direct_url": null,
      "urlencode_interpolations": true,
      "file": {
        "url_s3": "...",
        "...": "..."
      },
      "created": {
        "...": "..."
      },
      "modified": {
        "...": "..."
      }
    },
    {
      "id": 4,
      "user_id": 3,
      "name": "Test App",
      "description": "This is a test app for demonstration purposes",
      "href": "http://research.gencove.com",
      "discoverable": true,
      "enabled": true,
      "featured": true,
      "approved": true,
      "subsidy_enabled": false,
      "note": null,
      "signing_key": "my_signing_key_4",
      "webhook_url": null,
      "member_url": null,
      "direct_url": null,
      "urlencode_interpolations": true,
      "file": {
        "url_s3": "...",
        "...": "..."
      },
      "created": {
        "...": "..."
      },
      "modified": {
        "...": "..."
      }
    }
  ],
  "message": "...",
  "message_details": "..."
}
PUT /apps/(int: app_id)

Update app.

Request JSON Object:
 
  • name (string) – name
  • author (string) – author
  • href (string) – link to app information
  • description (string) – app description (max 200 chars)
  • subsidy_enabled (bool) – subsidy state
  • enabled (bool) – app state
  • discoverable (bool) – app discoverability
  • webhook_url (string) – URL for member status update webhook
  • member_url (string) – URL to send users once they become app members. May contain”{external_id}”, which will be replaced with the external_idprovided in JWT when user joined app.
  • direct_url (string) – URL for direct-to-app access. Newly generated member id and link to select raw data files may be optionally interpolated.
  • urlencode_interpolations (bool) – URL encode interpolations setting
Response JSON Object:
 
  • app (dict) – updated app
Query Parameters:
 
  • app_id (int) – app id
Request Headers:
 

Example request:

PUT /apps/4 HTTP/1.1
Host: rest.gencove.com
Content-Type: application/json
Authorization: JWT my-tmp-access-token

{
  "name": "Test App Edit",
}

Example response:

HTTP/1.1 200 OK
Content-type: application/json

{
  "app": {
    "id": 4,
    "user_id": 3,
    "name": "Test App Edit",
    "author": "Gencove",
    "description": "This is a test app for demonstration purposes",
    "href": "http://research.gencove.com",
    "discoverable": true,
    "enabled": true,
    "subsidy_enabled": false,
    "note": null,
    "signing_key": "my_signing_key_4",
    "webhook_url": null,
    "member_url": null,
    "direct_url": null,
    "urlencode_interpolations": true,
    "file": {
      "url_s3": "...",
      "...": "..."
    },
    "created": {
      "...": "..."
    },
    "modified": {
      "...": "..."
    }
  },
  "message": "...",
  "message_details": "..."
}
GET /apps/(int: app_id)

Get app info.

Response JSON Object:
 
  • app (dict) – app data
Query Parameters:
 
  • app_id (int) – app id
Request Headers:
 

Example request:

GET /apps/4 HTTP/1.1
Host: rest.gencove.com
Authorization: JWT my-tmp-access-token

Example response:

HTTP/1.1 200 OK
Content-type: application/json

{
  "app": {
    "id": 4,
    "user_id": 3,
    "name": "Test App",
    "author": "Gencove",
    "description": "This is a test app for demonstration purposes",
    "href": "http://research.gencove.com",
    "discoverable": true,
    "enabled": true,
    "subsidy_enabled": false,
    "note": null,
    "signing_key": "my_signing_key_4",
    "webhook_url": null,
    "member_url": null,
    "direct_url": null,
    "urlencode_interpolations": true,
    "file": {
      "url_s3": "...",
      "...": "..."
    },
    "created": {
      "...": "..."
    },
    "modified": {
      "...": "..."
    }
  },
  "message": "...",
  "message_details": "..."
}
GET /apps/(int: app_id)/stats

App stats.

Response JSON Object:
 
  • subsidies_offered (int) – total amount of subsidies offered
  • subsidies_used (int) – total amount of subsidies used
  • subsidies_offered_unused (int) – total amount of subsidies offered, but unused
  • signups_total (int) – total users signed up
  • signups_participating (int) – total users signed up and participating
  • signups_not_participating (int) – total users signed up and not participating
  • signups_participating_kit_ordered (int) – total users signed up, participating, and have ordered a kit
  • signups_participating_kit_returned (int) – total users signed up, participating, and have returned their kit
  • signups_participating_results_ready (int) – total users signed up, participating, and have results ready
Query Parameters:
 
  • app_id (int) – app id
Request Headers:
 

Example request:

GET /apps/4/stats HTTP/1.1
Host: rest.gencove.com
Authorization: JWT my-tmp-access-token

Example response:

HTTP/1.1 200 OK
Content-type: application/json

{
  "subsidies_offered": 25000,
  "subsidies_used": 8000,
  "subsidies_offered_unused": 15000,
  "signups_total": 10,
  "signups_participating": 8,
  "signups_not_participating": 2,
  "signups_participating_kit_ordered": 6,
  "signups_participating_kit_returned": 4,
  "signups_participating_results_ready": 0,
  "message": "...",
  "message_details": "..."
}
POST /apps/(int: app_id)/image/v2

Upload app image

Query Parameters:
 
  • app_id (string) – app id
Request Headers:
 

Example request:

POST /apps/4/image HTTP/1.1
Host: rest.gencove.com
Authorization: JWT my-tmp-access-token
Content-Length: 1022
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryePkpFF7tjBAqx29L

------WebKitFormBoundaryePkpFF7tjBAqx29L
Content-Disposition: form-data; name="uploadedfile"; filename="image.jpg"
Content-Type: application/x-object

... contents of file goes here ...
------WebKitFormBoundaryePkpFF7tjBAqx29L--

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "message": "...",
  "message_details": "..."
}
GET /apps/(int: app_id)/members

Get members of app

If a user has opted out of participating in an app, their info will not be provided here.

Response JSON Object:
 
  • members (list[dict]) – list of members
Query Parameters:
 
  • app_id (int) – app id
Request Headers:
 

Example request:

GET /apps/4/members HTTP/1.1
Host: rest.gencove.com
Authorization: JWT my-tmp-access-token

Example response:

HTTP/1.1 200 OK
Content-type: application/json

{
  "members": [
    {
      "id": 3,
      "app_id": 4,
      "external_id": "user-1",
      "participating": true,
      "subsidy_in_cents": 0,
      "subsidy_used_date": null,
      "subsidy_used_in_cents": null,
      "jwt_log": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdHVkeV9pZCI6NCwic3Vic2lkeV9pbl9jZW50cyI6MCwiZXh0ZXJuYWxfaWQiOiJ1c2VyLTEifQ.2R2f4jn6a1X_E9qsaZbRIw2gkxtOcoSacG3ddA1csWE",
      "created": {
        "...": "..."
      },
      "modified": {
        "...": "..."
      }
    },
    {
      "id": 4,
      "app_id": 4,
      "external_id": "user-2",
      "participating": true,
      "subsidy_in_cents": 0,
      "subsidy_used_date": null,
      "subsidy_used_in_cents": null,
      "jwt_log": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdHVkeV9pZCI6NCwic3Vic2lkeV9pbl9jZW50cyI6MCwiZXh0ZXJuYWxfaWQiOiJ1c2VyLTIifQ.NLpRVWvTQWSry6oaMjQ9Gtw5vVTF-i5JnXcc151QHSk",
      "created": {
        "...": "..."
      },
      "modified": {
        "...": "..."
      }
    },
  ],
  "message": "...",
  "message_details": "..."
}
GET /apps/(int: app_id)/members/(int: member_id)

Get single member in app

If a user has opted out of participating in an app, their info will not be provided here.

Response JSON Object:
 
  • member (dict) – member
Query Parameters:
 
  • app_id (int) – app id
  • member_id (int) – member id
Request Headers:
 

Example request:

GET /apps/4/members/3 HTTP/1.1
Host: rest.gencove.com
Authorization: JWT my-tmp-access-token

Example response:

HTTP/1.1 200 OK
Content-type: application/json

{
  "member": {
    "id": 3,
    "app_id": 4,
    "external_id": "user-1",
    "participating": true,
    "subsidy_in_cents": 0,
    "subsidy_used_date": null,
    "subsidy_used_in_cents": null,
    "jwt_log": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdHVkeV9pZCI6NCwic3Vic2lkeV9pbl9jZW50cyI6MCwiZXh0ZXJuYWxfaWQiOiJ1c2VyLTEifQ.2R2f4jn6a1X_E9qsaZbRIw2gkxtOcoSacG3ddA1csWE",
    "created": {
      "...": "..."
    },
    "modified": {
      "...": "..."
    }
  },
  "message": "...",
  "message_details": "..."
}
POST /apps/(int: app_id)/raw-data

Get app raw data.

Request JSON Object:
 
  • member_ids (list) – list of member ids (not external ids). Id is silently skipped if it is not found or data is not available. Omit this argument to get raw data for all members. [required]
Response JSON Object:
 
  • raw_data (list[dict]) – list of raw data dictionaries
Query Parameters:
 
  • app_id (int) – app id
Request Headers:
 

Example request:

POST /apps/4/raw-data HTTP/1.1
Host: rest.gencove.com
Content-Type: application/json
Authorization: JWT my-tmp-access-token

{
  "member_ids": [3, 4]
}

Example response:

HTTP/1.1 200 OK
Content-type: application/json

{
  "raw_data": [
    {
      "member_id": 4,
      "external_id": "dummy-id",
      "app_id": 4,
      "url_s3": "https://s3.amazonaws.com/production.bam/2016-10-17-123456789012.bam?AWSAccessKeyId=123&Expires=1486593291&Signature=321",
      "bam_url_s3": "https://s3.amazonaws.com/production.bam/2016-10-17-123456789012.bam?AWSAccessKeyId=123&Expires=1486593291&Signature=321",
      "bai_url_s3": "https://s3.amazonaws.com/production.bai/2016-10-17-123456789012.bam.bai?AWSAccessKeyId=123&Expires=1486593291&Signature=321",
      "fastq_nongrch37_url_s3": null,
      "ancestry_url_s3": null,
      "microbiome_url_s3": null,
      "vcf_url_s3": null,
      "tbi_url_s3": null,
      "csi_url_s3": null,
      "snp_url_s3": null
    }
  ],
  "message": "...",
  "message_details": "..."
}
POST /apps/jwt

Generate a valid JWT and link with JWT for a list of objects

Each object describes an app member. Mandatory keys are: app_id, external_id Optional keys are: subsidy_in_cents

Request JSON Object:
 
  • jwt_data (list) – list of objects with data for generating JWTs [required]
Response JSON Object:
 
  • jwt_data (list) – same as input list, with 2 additional fields: jwt, href
Request Headers:
 

Example request:

POST /apps/jwt HTTP/1.1
Host: rest.gencove.com

[
  {
    "app_id": 1,
    "external_id": "external_id_1"
  },
  {
    "app_id": 1,
    "external_id": "external_id_2",
    "subsidy_in_cents": 5000
  }
]

Example response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "jwt_data": [
    {
      "app_id": 1,
      "external_id": "external_id_1",
      "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdHVkeV9pZCI6MSwiZXh0ZXJuYWxfaWQiOiJleHRlcm5hbF9pZF8xIn0.6Xr1QFFEhso4L-HcbHHcpg839gADt48hbYI6k-4dw9Q"
      "href": "https://dl.gencove.com/connect/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdHVkeV9pZCI6MSwiZXh0ZXJuYWxfaWQiOiJleHRlcm5hbF9pZF8xIn0.6Xr1QFFEhso4L-HcbHHcpg839gADt48hbYI6k-4dw9Q"
    },
    {
      "app_id": 1,
      "external_id": "external_id_2",
      "subsidy_in_cents": 5000,
      "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdHVkeV9pZCI6MSwic3Vic2lkeV9pbl9jZW50cyI6NTAwMCwiZXh0ZXJuYWxfaWQiOiJleHRlcm5hbF9pZF8yIn0.qA_vD_bNKZoIcFj9NfIKGj2Xe3p7xdZNGlsSsNhXn5Y",
      "href": "https://dl.gencove.com/connect/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdHVkeV9pZCI6MSwic3Vic2lkeV9pbl9jZW50cyI6NTAwMCwiZXh0ZXJuYWxfaWQiOiJleHRlcm5hbF9pZF8yIn0.qA_vD_bNKZoIcFj9NfIKGj2Xe3p7xdZNGlsSsNhXn5Y"
    }
  ],
  "message": "...",
  "message_details": "..."
}
GET /apps/verified/(string: app_jwt)

Get app (not necessarily owned by me) info via JWT

Retreive app information for an app that may not be discoverable, but a valid JWT is provided.

Example use-case: pharma company is doing a super-secret app and does not want any app info to be scraped from the website.

Response JSON Object:
 
  • app (dict) – app info
Query Parameters:
 
  • app_jwt (string) – valid signed JWT

Example request:

GET /apps/verified/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdHVkeV9pZCI6NCwic3Vic2lkeV9pbl9jZW50cyI6NTAwMCwiZXh0ZXJuYWxfaWQiOiJ1c2VyLTEifQ.PDFFadtJ4DH14Ogf0-8e79z4KhDQpAwj-DTO7-A4TmM HTTP/1.1
Host: rest.gencove.com

Example response:

HTTP/1.1 200 OK
Content-type: application/json

{
  "app": {
    "id": 4,
    "name": "Test App",
    "author": "Gencove",
    "description": "This is a test app for demonstration purposes",
    "href": "http://research.gencove.com",
    "discoverable": true,
    "enabled": true,
    "subsidy_enabled": false,
    "file": {
      "url_s3": "...",
      "...": "..."
    },
    "created": {
      "...": "..."
    },
    "modified": {
      "...": "..."
    }
  },
  "message": "...",
  "message_details": "..."
}
GET /apps/public/(int: app_id)

Get discoverable app (not necessarily owned by me) info via app id

Retreive app information for a discoverable app by providing a valid app id.

Response JSON Object:
 
  • app (dict) – app info
Query Parameters:
 
  • app_id (int) – app id

Example request:

GET /apps/public/4 HTTP/1.1
Host: rest.gencove.com

Example response:

HTTP/1.1 200 OK
Content-type: application/json

{
  "app": {
    "id": 4,
    "name": "Test App",
    "author": "Gencove",
    "description": "This is a test app for demonstration purposes",
    "href": "http://research.gencove.com",
    "discoverable": true,
    "enabled": true,
    "subsidy_enabled": false,
    "file": {
      "url_s3": "...",
      "...": "..."
    },
    "created": {
      "...": "..."
    },
    "modified": {
      "...": "..."
    }
  },
  "message": "...",
  "message_details": "..."
}
GET /apps/(int: app_id)/members/(int: member_id)/order

Get single member’s order status

If a user has opted out of participating in an app, their info will not be provided here.

Response JSON Object:
 
  • order (dict) – order
Query Parameters:
 
  • app_id (int) – app id
  • member_id (int) – member id
Request Headers:
 

Example request:

GET /apps/4/members/3/order HTTP/1.1
Host: rest.gencove.com
Authorization: JWT my-tmp-access-token

Example response:

HTTP/1.1 200 OK
Content-type: application/json

{
  "order": {
    "...": "..."
  },
  "message": "...",
  "message_details": "..."
}
POST /members

Join app as a member.

Request JSON Object:
 
  • jwt (string) – JWT provided by app [required]
Request Headers:
 

Example request:

POST /members HTTP/1.1
Host: rest.gencove.com
Content-Type: application/json
Authorization: JWT my-tmp-access-token

{
  "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdHVkeV9pZCI6NCwic3Vic2lkeV9pbl9jZW50cyI6MCwiZXh0ZXJuYWxfaWQiOiJ1c2VyLTIifQ.NLpRVWvTQWSry6oaMjQ9Gtw5vVTF-i5JnXcc151QHSk"
}

Example response:

HTTP/1.1 200 OK
Content-type: application/json

{
  "message": "...",
  "message_details": "..."
}
GET /members/apps

Get apps user is participating in or has participated in the past.

Response JSON Object:
 
  • member_apps (list[dict]) – apps currently participating in
  • member_apps_log (list[dict]) – apps not participating in anymore
Request Headers:
 

Example request:

GET /members/apps HTTP/1.1
Host: rest.gencove.com
Authorization: JWT my-tmp-access-token

Example response:

HTTP/1.1 200 OK
Content-type: application/json

{
  "member_apps": [
    {
      "member": {
        "id": 3,
        "user_id": 3,
        "app_id": 4,
        "participating": true,
        "subsidy_in_cents": 0,
        "subsidy_used_date": null,
        "subsidy_used_in_cents": null,
        "created": {
          "...": "..."
        },
        "modified": {
          "...": "..."
        }
      },
      "app": {
        "id": 4,
        "name": "Test app",
        "author": "Gencove",
        "description": "This is a test app for demonstration purposes",
        "href": "http://research.gencove.com",
        "discoverable": true,
        "featured": true,
        "approved": true,
        "enabled": true,
        "subsidy_enabled": false,
        "created": {
          "...": "..."
        },
        "modified": {
          "...": "..."
        }
      }
    }
  ],
  "member_apps_log": [
  ],
  "message": "...",
  "message_details": "..."
}
POST /members/apps/(int: app_id)

Rejoin app.

Query Parameters:
 
  • app_id (int) – app id
Request Headers:
 

Example request:

POST /members/apps/4 HTTP/1.1
Host: rest.gencove.com
Authorization: JWT my-tmp-access-token

Example response:

HTTP/1.1 200 OK
Content-type: application/json

{
  "message": "...",
  "message_details": "..."
}
DELETE /members/apps/(int: app_id)

Leave app.

Query Parameters:
 
  • app_id (int) – app id
Request Headers:
 

Example request:

DELETE /members/apps/4 HTTP/1.1
Host: rest.gencove.com
Authorization: JWT my-tmp-access-token

Example response:

HTTP/1.1 200 OK
Content-type: application/json

{
  "message": "...",
  "message_details": "..."
}
GET /members/apps/(int: app_id)

Get app info as member.

Response JSON Object:
 
  • app (dict) – app data
Query Parameters:
 
  • app_id (int) – app id
Request Headers:
 

Example request:

GET /members/apps/4 HTTP/1.1
Host: rest.gencove.com
Authorization: JWT my-tmp-access-token

Example response:

HTTP/1.1 200 OK
Content-type: application/json

{
  "app": {
    "id": 4,
    "user_id": 3,
    "name": "Test App",
    "author": "Gencove",
    "description": "This is a test app for demonstration purposes",
    "href": "http://research.gencove.com",
    "discoverable": true,
    "featured": true,
    "approved": true,
    "enabled": true,
    "subsidy_enabled": false,
    "note": null,
    "file": {
      "url_s3": "...",
      "...": "..."
    },
    "created": {
      "...": "..."
    },
    "modified": {
      "...": "..."
    }
  },
  "message": "...",
  "message_details": "..."
}