{"openapi":"3.1.0","info":{"title":"Bring (BYOK) API","version":"0.1.0","description":"Bring (BYOK) lets an AI assistant read your own Bring data through the Bring API with a key you supply (Mybring API key). Read-only: 8 tools (get_pickup_point, find_pickup_points_near, find_pickup_points_by_postal_code, get_default_pickup_point, search_postal_codes, suggest_postal_codes, get_postal_code, get_mailbox_delivery_dates). The BYOK key travels with each request, is used for that one...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-bring.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-bring/docs"},"termsOfService":"https://connectorbay.com/byok-bring/terms"},"servers":[{"url":"https://byok-bring.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-bring/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_pickup_point":{"post":{"operationId":"get_pickup_point","summary":"Get one pickup point or parcel locker by its id: address, coordinates, type, opening hours and capabilities. Use for \"Wh","description":"Get one pickup point or parcel locker by its id: address, coordinates, type, opening hours and capabilities. Use for \"What are the opening hours of Bring pickup point 12345 in Norway\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country_code":{"description":"Country of the pickup point: NO, DK, SE or FI.","enum":["NO","DK","SE","FI"],"title":"Country Code","type":"string"},"id":{"description":"Pickup point id, for example 12345.","maxLength":30,"title":"Id","type":"string"},"request_country_code":{"anyOf":[{"maxLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Country code of the requester; only used for Norwegian pickup points.","title":"Request Country Code"}},"required":["country_code","id"],"title":"get_pickup_pointArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/find_pickup_points_near":{"post":{"operationId":"find_pickup_points_near","summary":"Find pickup points and parcel lockers nearest to a latitude and longitude, sorted by distance, with optional day, time a","description":"Find pickup points and parcel lockers nearest to a latitude and longitude, sorted by distance, with optional day, time and type filters. Use for \"Which Bring pickup points are near 59.9139, 10.7522 and open after 18:00\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country_code":{"description":"Country of the pickup point: NO, DK, SE or FI.","enum":["NO","DK","SE","FI"],"title":"Country Code","type":"string"},"latitude":{"description":"Latitude in decimal degrees, for example 59.9139.","maxLength":12,"title":"Latitude","type":"string"},"longitude":{"description":"Longitude in decimal degrees, for example 10.7522.","maxLength":12,"title":"Longitude","type":"string"},"street":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Street name for a more accurate nearest-point search.","title":"Street"},"street_number":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Street number for a more accurate search.","title":"Street Number"},"search_text":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Free text matched against name, address, city, municipality, county or location description.","title":"Search Text"},"pickup_point_type":{"anyOf":[{"enum":["manned","locker"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this type: manned or locker (both when empty).","title":"Pickup Point Type"},"opening_day":{"anyOf":[{"enum":["ALL_WEEKDAYS","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"],"type":"string"},{"type":"null"}],"default":null,"description":"Only points open on this day: ALL_WEEKDAYS (default), MONDAY ... SUNDAY.","title":"Opening Day"},"open_on_or_before":{"anyOf":[{"maxLength":4,"type":"string"},{"type":"null"}],"default":null,"description":"Only points open on or before this time, format HHmm such as 1700.","title":"Open On Or Before"},"open_on_or_after":{"anyOf":[{"maxLength":4,"type":"string"},{"type":"null"}],"default":null,"description":"Only points open on or after this time, format HHmm such as 0800.","title":"Open On Or After"},"max_results":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many pickup points to return (provider default 10).","title":"Max Results"},"request_country_code":{"anyOf":[{"maxLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Country code of the requester; only used for Norwegian pickup points.","title":"Request Country Code"}},"required":["country_code","latitude","longitude"],"title":"find_pickup_points_nearArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/find_pickup_points_by_postal_code":{"post":{"operationId":"find_pickup_points_by_postal_code","summary":"Find pickup points and parcel lockers closest to a postal code (add street and number for better accuracy), sorted by dr","description":"Find pickup points and parcel lockers closest to a postal code (add street and number for better accuracy), sorted by drive time. Use for \"Where is the nearest Bring parcel locker to postal code 0120 in Norway\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country_code":{"description":"Country of the pickup point: NO, DK, SE or FI.","enum":["NO","DK","SE","FI"],"title":"Country Code","type":"string"},"postal_code":{"description":"Postal code, for example 0120.","maxLength":10,"title":"Postal Code","type":"string"},"street":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Street name for a more accurate nearest-point search.","title":"Street"},"street_number":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Street number for a more accurate search.","title":"Street Number"},"search_text":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Free text matched against name, address, city, municipality, county or location description.","title":"Search Text"},"pickup_point_type":{"anyOf":[{"enum":["manned","locker"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this type: manned or locker (both when empty).","title":"Pickup Point Type"},"opening_day":{"anyOf":[{"enum":["ALL_WEEKDAYS","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"],"type":"string"},{"type":"null"}],"default":null,"description":"Only points open on this day: ALL_WEEKDAYS (default), MONDAY ... SUNDAY.","title":"Opening Day"},"open_on_or_before":{"anyOf":[{"maxLength":4,"type":"string"},{"type":"null"}],"default":null,"description":"Only points open on or before this time, format HHmm such as 1700.","title":"Open On Or Before"},"open_on_or_after":{"anyOf":[{"maxLength":4,"type":"string"},{"type":"null"}],"default":null,"description":"Only points open on or after this time, format HHmm such as 0800.","title":"Open On Or After"},"max_results":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many pickup points to return (provider default 10).","title":"Max Results"},"request_country_code":{"anyOf":[{"maxLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Country code of the requester; only used for Norwegian pickup points.","title":"Request Country Code"}},"required":["country_code","postal_code"],"title":"find_pickup_points_by_postal_codeArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_default_pickup_point":{"post":{"operationId":"get_default_pickup_point","summary":"Get the default pickup point for a Norwegian postal code. Use for \"What is the default Bring pickup point for postal cod","description":"Get the default pickup point for a Norwegian postal code. Use for \"What is the default Bring pickup point for postal code 0120\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country_code":{"description":"Country of the pickup point: NO, DK, SE or FI.","enum":["NO","DK","SE","FI"],"title":"Country Code","type":"string"},"postal_code":{"description":"Norwegian postal code, for example 0120.","maxLength":10,"title":"Postal Code","type":"string"},"request_country_code":{"anyOf":[{"maxLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Country code of the requester; only used for Norwegian pickup points.","title":"Request Country Code"}},"required":["country_code","postal_code"],"title":"get_default_pickup_pointArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_postal_codes":{"post":{"operationId":"search_postal_codes","summary":"Search postal codes of a country (NO, DK, FI, SJ supported for full lists) by code, city, county, municipality or type, ","description":"Search postal codes of a country (NO, DK, FI, SJ supported for full lists) by code, city, county, municipality or type, with coordinates. Use for \"Which postal codes are in the municipality of Vestby\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country_code":{"description":"Two-letter country code in lower case, for example 'no'.","maxLength":2,"title":"Country Code","type":"string"},"postal_code":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Exact postal code, for example 1555.","title":"Postal Code"},"city":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"City name.","title":"City"},"county":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"County name.","title":"County"},"municipality":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Municipality name.","title":"Municipality"},"postal_code_type":{"anyOf":[{"enum":["PO_BOX","STREET_ADDRESSES","COMBINED","SPECIAL_SERVICE"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this type.","title":"Postal Code Type"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Results per page.","title":"Limit"}},"required":["country_code"],"title":"search_postal_codesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/suggest_postal_codes":{"post":{"operationId":"suggest_postal_codes","summary":"Get postal code suggestions for a typed postal code or place name. Use for \"Suggest postal codes for 'Oslo'\".","description":"Get postal code suggestions for a typed postal code or place name. Use for \"Suggest postal codes for 'Oslo'\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country_code":{"description":"Two-letter country code in lower case, for example 'no'.","maxLength":2,"title":"Country Code","type":"string"},"q":{"description":"Postal code or name to look up, for example 'Oslo'.","maxLength":60,"title":"Q","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"limit":{"anyOf":[{"maximum":10,"minimum":1,"type":"integer"},{"type":"null"}],"default":5,"description":"Results per page (provider default 5).","title":"Limit"}},"required":["country_code","q"],"title":"suggest_postal_codesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_postal_code":{"post":{"operationId":"get_postal_code","summary":"Get the details of one postal code: city, county, municipality, type and coordinates (a code may map to several cities).","description":"Get the details of one postal code: city, county, municipality, type and coordinates (a code may map to several cities). Use for \"What place does postal code 1555 belong to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country_code":{"description":"Two-letter country code in lower case, for example 'no'.","maxLength":2,"title":"Country Code","type":"string"},"postal_code":{"description":"Postal code, for example 1555.","maxLength":10,"title":"Postal Code","type":"string"}},"required":["country_code","postal_code"],"title":"get_postal_codeArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_mailbox_delivery_dates":{"post":{"operationId":"get_mailbox_delivery_dates","summary":"List the coming dates on which the mail carrier visits a Norwegian postal code (up to 14 days ahead). Use for \"When is m","description":"List the coming dates on which the mail carrier visits a Norwegian postal code (up to 14 days ahead). Use for \"When is mail delivered in postal code 0150 over the next two weeks\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country_code":{"const":"NO","description":"Country code; only NO is supported.","title":"Country Code","type":"string"},"postal_code":{"description":"Norwegian postal code, for example 0150.","maxLength":10,"title":"Postal Code","type":"string"},"from_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Start date for the schedule, YYYY-MM-DD (today when empty).","title":"From Date"},"look_ahead_days":{"anyOf":[{"maximum":14,"minimum":1,"type":"integer"},{"type":"null"}],"default":14,"description":"How many days ahead to cover (maximum 14, default 14).","title":"Look Ahead Days"}},"required":["country_code","postal_code"],"title":"get_mailbox_delivery_datesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}