Skip to content

Raw API Requests

Mr. Bubbles edited this page Feb 20, 2024 · 11 revisions

A collection of API requests that were recorded between the Bring App and the REST API. These are used or may be used in the future in the Bring API library.

Refresh Auth Token

POST https://api.getbring.com/rest/v2/bringauth/token HTTP/2.0
accept: application/json
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480392
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.57.0 (ch.publisheria.bring; versionCode:303480392; build:196; android 33) okhttp/4.9.1
x-bring-user-uuid: {user_uuid}
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
x-bring-country: DE
accept-language: de-DE
content-type: application/x-www-form-urlencoded
content-length: 520
accept-encoding: gzip

grant_type=refresh_token&refresh_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

HTTP/2.0 200
date: 
content-type: application/json
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=x-xxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx;
content-length: 1040

{
  "access_token":"xxxxx",
  "token_type":"Bearer",
  "expires_in":604799
}

Batch update of items on a shopping List

This is the method used by the Android App to manipulate items on the lists

PUT https://api.getbring.com/rest/v2/bringlists/{list_uuid}/items HTTP/2.0
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-uuid: {user_uuid}
x-bring-country: DE
accept-language: de-DE
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
authorization: Bearer 
content-type: application/json; charset=UTF-8
content-length: 708
accept-encoding: gzip

{
  "changes": [
    {
      "accuracy": "0.0",
      "altitude": "0.0",
      "itemId": "Käse",
      "latitude": "0.0",
      "longitude": "0.0",
      "operation": "TO_PURCHASE",
      "spec": "Emmentaler",
      "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"
    },
    {
      "accuracy": "0.0",
      "altitude": "0.0",
      "itemId": "Käse",
      "latitude": "0.0",
      "longitude": "0.0",
      "operation": "TO_PURCHASE",
      "spec": "Blauschimmel",
      "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"
    },
    {
      "accuracy": "0.0",
      "altitude": "0.0",
      "itemId": "Mehl",
      "latitude": "0.0",
      "longitude": "0.0",
      "operation": "REMOVE",
      "spec": "Dinkel",
      "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"
    },
    {
      "accuracy": "0.0",
      "altitude": "0.0",
      "itemId": "Mehl",
      "latitude": "0.0",
      "longitude": "0.0",
      "operation": "REMOVE",
      "spec": "Weizen",
      "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"
    }
  ],
  "sender": ""
}

Load all Lists

GET https://api.getbring.com/rest/bringusers/{list_uuid}/lists HTTP/2.0
accept: application/json
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-uuid: {user_uuid}
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-country: DE
accept-language: de-DE
authorization: Bearer 
accept-encoding: gzip
content-length: 0



HTTP/2.0 200 
date: 
content-type: application/json
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xxx;
etag: 
cache-control: no-transform
content-length: 468

{
  "lists": [
    {
      "listUuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
      "name": "Einkaufsliste",
      "theme": "ch.publisheria.bring.theme.home"
    },
    {
      "listUuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
      "name": "IKEA",
      "theme": "ch.publisheria.bring.theme.office"
    },
    {
      "listUuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
      "name": "Baumarkt",
      "theme": "ch.publisheria.bring.theme.hardware"
    }
  ]
}

Users of a shared list

Get Details of all users of a shared list

GET https://api.getbring.com/rest/v2/bringlists/{list_uuid}/users HTTP/2.0
accept: application/json
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-uuid: {user_uuid}
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-country: DE
accept-language: de-DE
authorization: Bearer
accept-encoding: gzip
content-length: 0



HTTP/2.0 200 
date: 
content-type: application/json
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xxx;
etag: 
cache-control: no-transform
strict-transport-security: max-age=31536000 ; includeSubDomains
x-xss-protection: 1; mode=block
x-frame-options: DENY
x-content-type-options: nosniff
content-length: 747


  "users": [
    {
      "publicUuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
      "name": "xxxx",
      "email": "xxxx",
      "photoPath": "bring/user/portrait/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
      "pushEnabled": true,
      "plusTryOut": false,
      "country": "DE",
      "language": "de"
    },
    {
      "publicUuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
      "name": "xxx",
      "email": "xxx",
      "photoPath": "bring/user/portrait/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
      "pushEnabled": true,
      "plusTryOut": false,
      "country": "DE",
      "language": "de"
    },
    {
      "publicUuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
      "name": "xxx",
      "email": "xxx",
      "photoPath": "bring/user/portrait/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
      "pushEnabled": true,
      "plusTryOut": false,
      "country": "DE",
      "language": "de"
    }
  ]
}

Load User Settings

Mainly useful to get the users language settings for each shopping list and the default shopping list

GET https://api.getbring.com/rest/bringusersettings/{user_uuid} HTTP/2.0
accept: application/json
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-uuid: {user_uuid}
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-country: DE
accept-language: de-DE
authorization: Bearer
accept-encoding: gzip
content-length: 0



HTTP/2.0 200 
date: 
content-type: application/json
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xxx;
etag:
cache-control: no-transform
content-length: 2796

{
    "usersettings": [
      { "key": "autoPush", "value": "ON" },
      { "key": "purchaseStyle", "value": "grouped" },
      { "key": "premiumHideSponsoredCategories", "value": "OFF" },
      { "key": "premiumHideInspirationsBadge", "value": "OFF" },
      { "key": "premiumHideOffersBadge", "value": "OFF" },
      { "key": "premiumHideOffersOnMain", "value": "OFF" },
      {
        "key": "defaultListUUID",
        "value": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"
      },
      { "key": "discountActivatorOnMainEnabled", "value": "OFF" },
      { "key": "onboardClient", "value": "android" }
    ],
    "userlistsettings": [
      {
        "listUuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
        "usersettings": [
          {
            "key": "listSectionOrder",
            "value": "[\"Früchte & Gemüse\",\"Brot & Gebäck\",\"Milch & Käse\",\"Fleisch & Fisch\",\"Zutaten & Gewürze\",\"Fertig- & Tiefkühlprodukte\",\"Getreideprodukte\",\"Snacks & Süsswaren\",\"Getränke & Tabak\",\"Haushalt & Gesundheit\",\"Pflege & Gesundheit\",\"Tierbedarf\",\"Baumarkt & Garten\",\"Eigene Artikel\"]"
          },
          { "key": "listArticleLanguage", "value": "de-DE" }
        ]
      },
      {
        "listUuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
        "usersettings": [
          { "key": "listArticleLanguage", "value": "de-DE" },
          {
            "key": "listSectionOrder",
            "value": "[\"Früchte & Gemüse\",\"Brot & Gebäck\",\"Milch & Käse\",\"Fleisch & Fisch\",\"Zutaten & Gewürze\",\"Fertig- & Tiefkühlprodukte\",\"Getreideprodukte\",\"Snacks & Süsswaren\",\"Getränke & Tabak\",\"Haushalt & Gesundheit\",\"Pflege & Gesundheit\",\"Tierbedarf\",\"Baumarkt & Garten\",\"Eigene Artikel\"]"
          }
        ]
      }
    ]
  }
  
  

Check if user exists

Checks if user exists. This Endpoint is used by the android app

Returns Status 200 OK if user exists, Status 404 Not found if user does not exist and 400 Bad Request if the mail is malformed/invalid (this endpoint is not usable under /rest/v2/)

This Endpoint is similar to Endpoint used in the WebApp https://api.getbring.com/rest/v2/bringauth/checkemail which returns the Answers as JSON instead of HTTP status codes.

GET https://api.getbring.com/rest/bringusers?email={mail} HTTP/2.0
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-country: DE
accept-language: de-DE
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
accept-encoding: gzip
content-length: 0



HTTP/2.0 200 
date: 
content-type: application/json
content-length: 0
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xxx;

Create a new list

Returns the list uuid of the newly created list

POST https://api.getbring.com/rest/bringusers/{user_uuid}/lists HTTP/2.0
accept: application/json
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-user-uuid: {user_uuid}
x-bring-country: DE
accept-language: de-DE
authorization: Bearer
content-type: application/x-www-form-urlencoded
content-length: 50
accept-encoding: gzip

name=list name
theme=ch.publisheria.bring.theme.grocery

HTTP/2.0 200 
date: 
content-type: application/json
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xx;
content-length: 56

{"bringListUUID":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"}

Change name and theme of a list

POST https://api.getbring.com/rest/bringlists/{list_uuid} HTTP/2.0
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-user-uuid: {user_uuid}
x-bring-country: DE
accept-language: de-DE
authorization: Bearer
content-type: application/x-www-form-urlencoded
content-length: 47
accept-encoding: gzip

name=test
theme=ch.publisheria.bring.theme.home

HTTP/2.0 200 
date: 
content-type: application/json
content-length: 0
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xxx;

Set or change list article language

This sets the locale of a list.

POST https://api.getbring.com/rest/bringusersettings/{user_uuid}/{list_uuid}/listArticleLanguage HTTP/2.0
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-user-uuid: {user_uuid}
x-bring-country: DE
accept-language: de-DE
authorization: Bearer 
content-type: application/x-www-form-urlencoded
content-length: 11
accept-encoding: gzip

value=de-DE

HTTP/2.0 200 
date: 
content-type: application/json
content-length: 0
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xxx;


Set or change list section order

POST https://api.getbring.com/rest/bringusersettings/{user_uuid}/{list_uuid}/listSectionOrder HTTP/2.0
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-user-uuid: {user_uuid}
x-bring-country: DE
accept-language: de-DE
authorization: Bearer
content-type: application/x-www-form-urlencoded
content-length: 473
accept-encoding: gzip

value: ["Früchte & Gemüse","Brot & Gebäck","Milch & Käse","Fleisch & Fisch","Zutaten & Gewürze","Fertig- & Tiefkühlprodukte","Getreideprodukte","Snacks & Süsswaren","Getränke & Tabak","Haushalt & Gesundheit","Pflege & Gesundheit","Tierbedarf","Baumarkt & Garten","Eigene Artikel"]

HTTP/2.0 200 
date: 
content-type: application/json
content-length: 0
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xxx;

Delete or leave a list

Deletes a list or if it is a shared list, leaves the list. Other users will then still have access to the list.

Returns the list uuid of the default list as the Android client then jumps to that list

DELETE https://api.getbring.com/rest/bringlists/{list_uuid}/users/{user_uuid} HTTP/2.0
accept: application/json
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-user-uuid: {user_uuid}
x-bring-country: DE
accept-language: de-DE
authorization: Bearer
accept-encoding: gzip
content-length: 0



HTTP/2.0 200 
date: 
content-type: application/json
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xxx;
content-length: 56

{"bringListUUID":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"}

User Profile pictures

URL of a users profile picture. Can be accessed with their public uuid. Can be accessed without authentication or any special headers set.

GET https://api.getbring.com/rest/v2/bringusers/profilepictures/{public_uuid} HTTP/2.0

Send invitations by mail

POST https://api.getbring.com/rest/invitations HTTP/2.0
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-user-uuid: {user_uuid}
x-bring-country: DE
accept-language: de-DE
authorization: Bearer
content-type: application/x-www-form-urlencoded
content-length: 130
accept-encoding: gzip

bringListUUID={list_uuid}
fromEmail={sender_mail}
toEmail={recipient_mail}
source=LIST_MEMBERS

HTTP/2.0 201 
date: Tue, 13 Feb 2024 19:41:11 GMT
content-length: 0
location: https://api.getbring.com/rest/invitations/4b7be6ee-e384-48df-98de-f8b79faa1b11
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xxx;

Show pending or accepted invitations for a list

GET https://api.getbring.com/rest/bringlists/{list_uuid}/invitations HTTP/2.0
accept: application/json
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-user-uuid: {user_uuid}
x-bring-country: DE
accept-language: de-DE
authorization: Bearer
accept-encoding: gzip
content-length: 0



HTTP/2.0 200 
date: 
content-type: application/json
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xxx;
content-length: 264

{
    "invitations": [
        {
            "bringListUuid": "{list_uuid}",
            "fromEmail": "{sender_mail}",
            "listName": "{list_name}",
            "listTheme": "ch.publisheria.bring.theme.home",
            "state": "PENDING",
            "toEmail": "{recipient_mail}",
            "uuid": "{invitation_uuid}"
        },
        {
            "bringListUuid": "{list_uuid}",
            "fromEmail": "{sender_mail}",
            "listName": "{list_name}",
            "listTheme": "ch.publisheria.bring.theme.office",
            "state": "ACCEPTED",
            "toEmail": "{recipient_mail}",
            "uuid": "{invitation_uuid}"
        }
    ]
}

Check for pending invitations from other users

The Bring client constantly checks this endpoint for received invitations (besides also getting an e-mail) and displays then a message with accept and decline buttons.

GET https://api.getbring.com/rest/invitations?email={user_mail} HTTP/2.0
accept: application/json
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-user-uuid: {user_uuid}
x-bring-country: DE
accept-language: de-DE
authorization: Bearer
accept-encoding: gzip
content-length: 0



HTTP/2.0 200 
date: 
content-type: application/json
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xxx;
content-length: 246

{
    "bringListUuid": "{list_uuid}",
    "fromEmail": "{sender_mail}",
    "listName": "{list_name}",
    "listTheme": "ch.publisheria.bring.theme.home",
    "state": "PENDING",
    "toEmail": "{recipient_mail}",
    "uuid": "{invitation_uuid}"
}

Accept or decline invitations to a list

PUT https://api.getbring.com/rest/invitations/{invitation_uuid} HTTP/2.0
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-user-uuid: {user_uuid}
x-bring-country: DE
accept-language: de-DE
authorization: Bearer
content-type: application/x-www-form-urlencoded
content-length: 14
accept-encoding: gzip

state=DECLINED

accepting an invitation requires sending the mail of the accepting user and returns as JSON the listUuid of the list which the user is now a member of

PUT https://api.getbring.com/rest/invitations/{invitation_uuid} HTTP/2.0
accept: application/json
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-user-uuid: {user_uuid}
x-bring-country: DE
accept-language: de-DE
authorization: Bearer
content-type: application/x-www-form-urlencoded
content-length: 45
accept-encoding: gzip

state=ACCEPTED
email={recipient_mail}

HTTP/2.0 200 
date: 
content-type: application/json
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xxx;
content-length: 56

{"bringListUUID":"{list_uuid}"}

Change password

POST https://api.getbring.com/rest/v2/bringusers/{user_uuid}/password HTTP/2.0
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-user-uuid: {user_uuid}
x-bring-country: DE
accept-language: de-DE
authorization: Bearer
content-type: application/x-www-form-urlencoded
content-length: 19
accept-encoding: gzip

password=**********

Password forgotten

Sends an e-mail to set a new password

POST https://api.getbring.com/rest/bringusers/passwords HTTP/2.0
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-country: DE
accept-language: de-DE
content-type: application/x-www-form-urlencoded
content-length: 27
accept-encoding: gzip

email={user_mail}

Delete Bring Account

Warning: this is permanent and there is no confirmation before deletion (the confirmation happens only in the app)

DELETE https://api.getbring.com/rest/v2/bringusers/{user_uuid} HTTP/2.0
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-user-uuid: {user_uuid}
x-bring-country: DE
accept-language: de-DE
authorization: Bearer
accept-encoding: gzip
content-length: 0

Signup

Create a Bring account

POST https://api.getbring.com/rest/v2/bringauth/signup HTTP/2.0
accept: application/json
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-country: DE
accept-language: de-DE
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
content-type: application/x-www-form-urlencoded
content-length: 27
accept-encoding: gzip

email={user_mail}

HTTP/2.0 201 
date: Tue, 13 Feb 2024 23:07:52 GMT
content-type: application/json
location: https://api.getbring.com/rest/v2/bringusers/{user_uuid}
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xxxx;
set-cookie: refresh_token=xxxxxxxxxxxxxxxx;Version=1;Comment="auth refresh http only";Domain=;Path=/;Max-Age=1576799999;HttpOnly
content-length: 1158

{
  "uuid": "{user_uuid}",
  "publicUuid": "{public_uuid}",
  "email": "{user_mail}",
  "access_token": "xxxxxxxxxxxxxxxx",
  "refresh_token": "xxxxxxxxxxxxxxxx",
  "token_type": "Bearer",
  "expires_in": 604799
}

Signup with an anonymous account

In the Bring app you can start with an anonymous account, no e-mail or password is required but a lot of features like sharing are deactivated. Also only one list can be created (the app creates it automatically)

POST https://api.getbring.com/rest/v2/bringauth/signupanonym HTTP/2.0
accept: application/json
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-country: DE
accept-language: de-DE
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
content-length: 0
accept-encoding: gzip



HTTP/2.0 201 
date: 
content-type: application/json
location: https://api.getbring.com/rest/v2/bringusers/{user_uuid}
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xxx;
set-cookie: refresh_token=xxxxxxxxxxxxxxxxxxx;Version=1;Comment="auth refresh http only";Domain=;Path=/;Max-Age=1576799999;HttpOnly
content-length: 1056

{
  "uuid": "{user_uuid}",
  "publicUuid": "{public_uuid}",
  "access_token": "xxxxxxxxxxxxxxxxxxxxxxx",
  "refresh_token": "xxxxxxxxxxxxxxxxxxxxxx",
  "token_type": "Bearer",
  "expires_in": 604799
}

Change User details

change or in case of using an anonymous accounts sets the mail for the account Set or change the display name Upload a profile picture

Only include the parameters that should be changed

PUT https://api.getbring.com/rest/v2/bringusers/{user_uuid} HTTP/2.0
accept: application/json
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-user-uuid: {user_uuid}
x-bring-country: DE
accept-language: de-DE
authorization: Bearer
content-type: application/x-www-form-urlencoded
content-length: 27
accept-encoding: gzip

email={user_mail}
name={display_name}
photo={binary encoded image 400 x 400 px}

HTTP/2.0 200 
date: 
content-type: application/json
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xxx;
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
strict-transport-security: max-age=31536000 ; includeSubDomains
x-xss-protection: 1; mode=block
x-frame-options: DENY
x-content-type-options: nosniff
set-cookie: refresh_token=xxxxxxxxxxxxxxxxxx;Version=1;Comment="auth refresh http only";Domain=;Path=/;Max-Age=1576799999;HttpOnly
content-length: 1158

{
  "uuid": "{user_uuid}",
  "publicUuid": "{public_uuid}",
  "email": "{user_mail}",
  "access_token": "xxxxxxxxxxxxxxxxxxxxxxx",
  "refresh_token": "xxxxxxxxxxxxxxxxxxxxxx",
  "token_type": "Bearer",
  "expires_in": 604799
}

Request a verification mail

Sends an e-mail with a link to confirm the e-mail address

POST https://api.getbring.com/rest/v2/bringusers/{user_uuid}/verificationmail HTTP/2.0
accept: application/json
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480400
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.3 (ch.publisheria.bring; versionCode:303480400; build:200; android 33) okhttp/4.9.1
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-user-uuid: {user_uuid}
x-bring-country: DE
accept-language: de-DE
authorization: Bearer
content-length: 0
accept-encoding: gzip

User Account

GET https://api.getbring.com/rest/v2/bringusers/{user_uuid}3 HTTP/2.0
accept: application/json
x-bring-api-key: cof4Nc6D8saplXjE3h3HXqHH8m7VU2i1Gs0g85Sp
x-bring-version: 303480402
x-bring-client: android
x-bring-application: bring
x-bring-client-instance-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-client-timezone: Europe/Berlin
user-agent: Bring!/4.58.4 (ch.publisheria.bring; versionCode:303480402; build:201; android 33) okhttp/4.9.1
x-bring-user-uuid: {user_uuid}
x-bring-user-ad-tracking-enabled: true
x-bring-user-ad-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
x-bring-country: DE
accept-language: de-DE
authorization: Bearer
accept-encoding: gzip
content-length: 0



HTTP/2.0 200 
date: 
content-type: application/json
server: Apache/2.4.58 () OpenSSL/1.0.2k-fips
vary: Origin,Accept-Encoding
x-amzn-trace-id: Root=xxx;
etag: "xxx"
cache-control: no-transform
strict-transport-security: max-age=31536000 ; includeSubDomains
x-xss-protection: 1; mode=block
x-frame-options: DENY
x-content-type-options: nosniff
content-length: 489

{
  "userUuid": "{user_uuid}",
  "publicUserUuid": "{public_uuid}",
  "email": "{email}",
  "emailVerified": true,
  "name": "{user_name}",
  "photoPath": "bring/user/portrait/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
  "userLocale": { "language": "de", "country": "DE" },
  "premiumConfiguration": {
    "hasPremium": false,
    "hideSponsoredProducts": false,
    "hideSponsoredTemplates": false,
    "hideSponsoredPosts": false,
    "hideSponsoredCategories": false,
    "hideOffersOnMain": false
  }
}