openapi: 3.0.3 info: title: Admin Account / Address Addresses API contact: name: Spree Commerce url: https://spreecommerce.org email: hello@spreecommerce.org description: "Spree Admin API v3 - Administrative API for managing products, orders, and store settings.\n\n## Authentication\n\nThe Admin API requires a secret API key passed in the `x-spree-api-key` header.\nSecret API keys can be generated in the Spree admin dashboard.\n\n## Response Format\n\nAll responses are JSON. List endpoints return paginated responses with `data` and `meta` keys.\nSingle resource endpoints return a flat JSON object.\n\n## Resource IDs\n\nEvery resource is identified by an opaque string ID (e.g. `prod_86Rf07xd4z`,\n`variant_k5nR8xLq`, `or_UkLWZg9DAJ`). Use these IDs everywhere — URL paths,\nrequest bodies, and Ransack filters all accept them directly.\n\n## Error Handling\n\nErrors return a consistent format:\n```json\n{\n \"error\": {\n \"code\": \"validation_error\",\n \"message\": \"Validation failed\",\n \"details\": { \"name\": [\"can't be blank\"] }\n }\n}\n```\n" version: v3 servers: - url: http://{defaultHost} variables: defaultHost: default: localhost:3000 tags: - name: Addresses paths: /api/v2/platform/addresses: get: summary: Return a list of Addresses tags: - Addresses security: - bearer_auth: [] description: Returns a list of Addresses operationId: addresses-list parameters: - name: page in: query example: 1 schema: type: integer - name: per_page in: query example: 50 schema: type: integer - name: include in: query description: 'Select which associated resources you would like to fetch, see: https://jsonapi.org/format/#fetching-includes' example: user,country,state schema: type: string - name: filter[user_id_eq] in: query description: '' example: '1' schema: type: string - name: filter[firstname_cont] in: query description: '' example: John schema: type: string responses: '200': description: Records returned content: application/vnd.api+json: examples: Example: value: data: - id: '1' type: address attributes: firstname: John lastname: Doe address1: 1 Lovely Street address2: Northwest city: Herndon zipcode: '35005' phone: 555-555-0199 state_name: null alternative_phone: 555-555-0199 company: Company created_at: '2022-11-08T19:33:50.821Z' updated_at: '2022-11-08T19:33:50.821Z' deleted_at: null label: null public_metadata: {} private_metadata: {} relationships: country: data: id: '1' type: country state: data: id: '1' type: state user: data: null - id: '2' type: address attributes: firstname: John lastname: Doe address1: 2 Lovely Street address2: Northwest city: Herndon zipcode: '35005' phone: 555-555-0199 state_name: null alternative_phone: 555-555-0199 company: Company created_at: '2022-11-08T19:33:50.825Z' updated_at: '2022-11-08T19:33:50.825Z' deleted_at: null label: null public_metadata: {} private_metadata: {} relationships: country: data: id: '1' type: country state: data: id: '2' type: state user: data: null meta: count: 2 total_count: 2 total_pages: 1 links: self: http://www.example.com/api/v2/platform/addresses?page=1&per_page=&include=&filter[user_id_eq]=&filter[firstname_cont]= next: http://www.example.com/api/v2/platform/addresses?filter%5Bfirstname_cont%5D=&filter%5Buser_id_eq%5D=&include=&page=1&per_page= prev: http://www.example.com/api/v2/platform/addresses?filter%5Bfirstname_cont%5D=&filter%5Buser_id_eq%5D=&include=&page=1&per_page= last: http://www.example.com/api/v2/platform/addresses?filter%5Bfirstname_cont%5D=&filter%5Buser_id_eq%5D=&include=&page=1&per_page= first: http://www.example.com/api/v2/platform/addresses?filter%5Bfirstname_cont%5D=&filter%5Buser_id_eq%5D=&include=&page=1&per_page= schema: $ref: '#/components/schemas/resources_list' '401': description: Authentication Failed content: application/vnd.api+json: examples: Example: value: error: The access token is invalid schema: $ref: '#/components/schemas/error' post: summary: Create an Address tags: - Addresses security: - bearer_auth: [] description: Creates an Address operationId: create-address parameters: - name: include in: query description: 'Select which associated resources you would like to fetch, see: https://jsonapi.org/format/#fetching-includes' example: user,country,state schema: type: string responses: '201': description: Record created content: application/vnd.api+json: examples: Example: value: data: id: '5' type: address attributes: firstname: John lastname: Doe address1: 5 Lovely Street address2: Northwest city: Herndon zipcode: '35005' phone: 555-555-0199 state_name: null alternative_phone: 555-555-0199 company: Company created_at: '2022-11-08T19:33:51.471Z' updated_at: '2022-11-08T19:33:51.471Z' deleted_at: null label: null public_metadata: {} private_metadata: {} relationships: country: data: id: '4' type: country state: data: id: '5' type: state user: data: id: '1' type: user schema: $ref: '#/components/schemas/resource' '422': description: Invalid request content: application/vnd.api+json: examples: Example: value: error: First Name can't be blank, Last Name can't be blank, Address can't be blank, City can't be blank, Country can't be blank, Zip Code can't be blank, and Phone can't be blank errors: firstname: - can't be blank lastname: - can't be blank address1: - can't be blank city: - can't be blank country: - can't be blank zipcode: - can't be blank phone: - can't be blank schema: $ref: '#/components/schemas/validation_errors' requestBody: content: application/json: schema: $ref: '#/components/schemas/create_address_params' /api/v2/platform/addresses/{id}: get: summary: Return an Address tags: - Addresses security: - bearer_auth: [] description: Returns an Address operationId: show-address parameters: - name: id in: path required: true schema: type: string - name: include in: query description: 'Select which associated resources you would like to fetch, see: https://jsonapi.org/format/#fetching-includes' example: user,country,state schema: type: string responses: '200': description: Record found content: application/vnd.api+json: examples: Example: value: data: id: '6' type: address attributes: firstname: John lastname: Doe address1: 6 Lovely Street address2: Northwest city: Herndon zipcode: '35005' phone: 555-555-0199 state_name: null alternative_phone: 555-555-0199 company: Company created_at: '2022-11-08T19:33:51.740Z' updated_at: '2022-11-08T19:33:51.740Z' deleted_at: null label: null public_metadata: {} private_metadata: {} relationships: country: data: id: '6' type: country state: data: id: '6' type: state user: data: null schema: $ref: '#/components/schemas/resource' '404': description: Record not found content: application/vnd.api+json: examples: Example: value: error: The resource you were looking for could not be found. schema: $ref: '#/components/schemas/error' '401': description: Authentication Failed content: application/vnd.api+json: examples: Example: value: error: The access token is invalid schema: $ref: '#/components/schemas/error' patch: summary: Update an Address tags: - Addresses security: - bearer_auth: [] description: Updates an Address operationId: update-address parameters: - name: id in: path required: true schema: type: string - name: include in: query description: 'Select which associated resources you would like to fetch, see: https://jsonapi.org/format/#fetching-includes' example: user,country,state schema: type: string responses: '200': description: Record updated content: application/vnd.api+json: examples: Example: value: data: id: '8' type: address attributes: firstname: Jack lastname: Doe address1: 8 Lovely Street address2: Northwest city: Herndon zipcode: '35005' phone: 555-555-0199 state_name: null alternative_phone: 555-555-0199 company: Company created_at: '2022-11-08T19:33:52.269Z' updated_at: '2022-11-08T19:33:52.501Z' deleted_at: null label: null public_metadata: {} private_metadata: {} relationships: country: data: id: '9' type: country state: data: id: '8' type: state user: data: null schema: $ref: '#/components/schemas/resource' '422': description: Invalid request content: application/vnd.api+json: examples: Example: value: error: First Name can't be blank and Last Name can't be blank errors: firstname: - can't be blank lastname: - can't be blank schema: $ref: '#/components/schemas/validation_errors' '404': description: Record not found content: application/vnd.api+json: examples: Example: value: error: The resource you were looking for could not be found. schema: $ref: '#/components/schemas/error' '401': description: Authentication Failed content: application/vnd.api+json: examples: Example: value: error: The access token is invalid schema: $ref: '#/components/schemas/error' requestBody: content: application/json: schema: $ref: '#/components/schemas/update_address_params' delete: summary: Delete an Address tags: - Addresses security: - bearer_auth: [] description: Deletes an Address operationId: delete-address parameters: - name: id in: path required: true schema: type: string responses: '204': description: Record deleted '404': description: Record not found content: application/vnd.api+json: examples: Example: value: error: The resource you were looking for could not be found. schema: $ref: '#/components/schemas/error' '401': description: Authentication Failed content: application/vnd.api+json: examples: Example: value: error: The access token is invalid schema: $ref: '#/components/schemas/error' components: schemas: resource_properties: type: object properties: id: type: string type: type: string attributes: type: object relationships: type: object required: - id - type - attributes x-internal: false error: type: object properties: error: type: string required: - error x-internal: false resources_list: type: object properties: data: type: array items: allOf: - $ref: '#/components/schemas/resource_properties' meta: type: object properties: count: type: integer total_count: type: integer total_pages: type: integer required: - count - total_count - total_pages links: type: object properties: self: type: string next: type: string prev: type: string last: type: string first: type: string required: - self - next - prev - last - first required: - data - meta - links x-internal: false validation_errors: type: object properties: error: type: string errors: type: object required: - error - errors x-internal: false create_address_params: type: object properties: address: type: object required: - country_id - address1 - city - zipcode - phone - firstname - lastname properties: country_id: type: string example: '224' state_id: type: string example: '516' state_name: type: string example: New York address1: type: string example: 5th ave address2: type: string example: 1st suite city: type: string example: NY zipcode: type: string example: '10001' phone: type: string example: +1 123 456 789 alternative_phone: type: string firstname: type: string example: John lastname: type: string example: Snow label: type: string example: My home address company: type: string example: Vendo Connect Inc user_id: type: string public_metadata: type: object example: distance_from_nearest_city_in_km: 10 location_type: building private_metadata: type: object example: close_to_shop: true required: - address x-internal: false resource: type: object properties: data: $ref: '#/components/schemas/resource_properties' required: - data x-internal: false update_address_params: type: object properties: address: type: object properties: country_id: type: string example: '224' state_id: type: string example: '516' state_name: type: string example: New York address1: type: string example: 5th ave address2: type: string example: 1st suite city: type: string example: NY zipcode: type: string example: '10001' phone: type: string example: +1 123 456 789 alternative_phone: type: string firstname: type: string example: John lastname: type: string example: Snow label: type: string example: My home address company: type: string example: Vendo Connect Inc user_id: type: string public_metadata: type: object example: distance_from_city_in_km: 10 location_type: building private_metadata: type: object example: close_to_shop: true required: - address x-internal: false securitySchemes: api_key: type: apiKey name: x-spree-api-key in: header description: Secret API key for admin access bearer_auth: type: http scheme: bearer bearerFormat: JWT description: JWT token for admin user authentication x-tagGroups: - name: Authentication tags: - Authentication - name: Products & Catalog tags: - Products - Variants - Option Types - Custom Fields - Channels - name: Pricing tags: - Pricing - Markets - name: Orders & Fulfillment tags: - Orders - Payments - Fulfillments - Refunds - name: Customers tags: - Customers - Customer Groups - name: Promotions & Gift Cards tags: - Promotions - Gift Cards - name: Data tags: - Exports - name: Configuration tags: - Settings - Stock Locations - Payment Methods - Staff - API Keys - Allowed Origins - Webhooks