Skip to content

Commit 8fe2341

Browse files
author
Andreas Sandberg
committed
Initial draft
1 parent e1c287e commit 8fe2341

13 files changed

+2770
-47
lines changed

CONTRIBUTING.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Contributing to Agentic Product Protocol (APP)
2+
3+
Thank you for your interest in contributing! We welcome improvements, bug fixes, and new ideas. Please read these guidelines to help maintain a high-quality, consistent, and collaborative project.
4+
5+
---
6+
7+
## Branching Model
8+
9+
- **main**: The stable, released branch. All production-ready code lives here.
10+
- **feature branches**: For new features, bug fixes, or documentation updates, create a branch from `main`:
11+
- Name your branch descriptively, e.g., `feature/add-filtering-support` or `fix/typo-in-rfc`.
12+
- **Pull Requests (PRs)**: All changes must be submitted via PR. Never commit directly to `main`.
13+
14+
## Pull Request Guidelines
15+
16+
- **Scope**: Keep PRs focused and minimal. Separate unrelated changes.
17+
- **Description**: Clearly describe the problem, solution, and any context.
18+
- **Tests**: If applicable, include or update tests/examples.
19+
- **Review**: At least one maintainer must review and approve before merging.
20+
- **Status Checks**: Ensure all CI checks pass before requesting review.
21+
- **Linked Issues**: Reference any related issues or RFCs in the PR description.
22+
23+
## Spec Versioning & Review Process
24+
25+
- **Versioning**: All breaking changes or new features to the protocol/specs must increment the version (e.g., `2025-10-06``2025-10-15`).
26+
- **Compatibility**: Maintain backward compatibility where possible. Document any breaking changes clearly in the changelog.
27+
- **Review**: Major changes (especially to RFCs, OpenAPI, or JSON Schemas) require:
28+
- Discussion in a PR or issue
29+
- Approval from at least one lead maintainer (see `MAINTAINERS.md`)
30+
31+
## Required Updates for All Changes
32+
33+
Every PR **must** include, as appropriate:
34+
35+
- **OpenAPI / JSON Schema**: Update or add to `spec/openapi/` and `spec/json-schema/` as needed.
36+
- **Examples**: Add or update sample requests/responses in `examples/`.
37+
- **Changelog**: Add an entry to `changelog/unreleased.md` describing your change.
38+
- **Documentation**: Update `README.md` or relevant RFCs if behavior or usage changes.
39+
40+
## Code of Conduct
41+
42+
- Be respectful and constructive in all communications.
43+
- Assume good intent and work collaboratively.
44+
- Report unacceptable behavior to the maintainers listed in `MAINTAINERS.md`.
45+
46+
## Getting Help
47+
48+
- For questions, open a GitHub Discussion or Issue.
49+
- For urgent matters, contact a lead maintainer (see `MAINTAINERS.md`).
50+
51+
---
52+
53+
Thank you for helping make APP better!

LICENSE

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
Apache License
32
Version 2.0, January 2004
43
http://www.apache.org/licenses/
@@ -187,7 +186,7 @@
187186
same "printed page" as the copyright notice for easier
188187
identification within third-party archives.
189188

190-
Copyright [yyyy] [name of copyright owner]
189+
Copyright 2025 Klarna Bank AB
191190

192191
Licensed under the Apache License, Version 2.0 (the "License");
193192
you may not use this file except in compliance with the License.
@@ -199,4 +198,4 @@
199198
distributed under the License is distributed on an "AS IS" BASIS,
200199
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201200
See the License for the specific language governing permissions and
202-
limitations under the License.
201+
limitations under the License.

MAINTAINERS.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Maintainers
2+
3+
Below are the current maintainers of the Agentic Product Protocol.
4+
5+
## Lead maintainers
6+
7+
- Community-driven (open for initial maintainers)
8+
9+
## How to Become a Maintainer
10+
11+
We welcome new maintainers who demonstrate:
12+
13+
- Consistent contributions to the specification
14+
- Understanding of e-commerce and product data APIs
15+
- Commitment to the open standard and community governance
16+
17+
Please open an issue expressing interest in becoming a maintainer.

README.md

Lines changed: 101 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,124 @@
1-
# Project Name
2-
> Short blurb about what your project does.
1+
# Agentic Product Protocol (APP)
2+
3+
The **Agentic Product Protocol (APP)** is an interaction model and open standard for connecting AI agents and product data providers to enable seamless product discovery and comparison.
4+
5+
The specification is maintained by the community and is currently in `draft`.
6+
7+
- **For retailers & marketplaces** - Make your product catalog discoverable and searchable by AI agents while maintaining control of your inventory and pricing data.
8+
- **For AI agents** - Enable product discovery and comparison in your application, providing users with comprehensive product information and merchant offers.
9+
- **For comparison platforms** - Expose your aggregated product data through a standardized interface that AI agents can consume.
10+
11+
Learn more at the [Agentic Product Protocol documentation](#).
12+
13+
---
14+
15+
## 📦 Repo Structure
16+
17+
```plaintext
18+
<repo-root>/
19+
├── rfcs/
20+
│ └── rfc.*.md
21+
22+
├── spec/
23+
│ ├── openapi/
24+
│ │ └── openapi.*.yaml
25+
│ │
26+
│ └── json-schema/
27+
│ └── schema.*.json
28+
29+
├── examples/
30+
│ └── examples.*.json
31+
32+
├── changelog/
33+
│ └── *.md
34+
35+
├── MAINTAINERS.md
36+
├── CONTRIBUTING.md
37+
├── LICENSE
38+
└── README.md
39+
```
340

4-
[![Build Status][ci-image]][ci-url]
5-
[![License][license-image]][license-url]
6-
[![Developed at Klarna][klarna-image]][klarna-url]
41+
---
742

43+
## 🔗 Quick Links
844

9-
One to two paragraph statement about your project and what it does.
45+
| Spec Type | Latest Version | Description |
46+
| ------------------ | -------------------------------------- | ------------------------------------------------------------------ |
47+
| **RFC (Markdown)** | [rfcs/](rfcs/) | Human-readable design doc with rationale, flows, and rollout plan. |
48+
| **OpenAPI (YAML)** | [spec/openapi/](spec/openapi/) | Machine-readable HTTP API spec for integrating product endpoints. |
49+
| **JSON Schema** | [spec/json-schema/](spec/json-schema/) | Data models for products, offers, and search results. |
50+
| **Examples** | [examples/](examples/) | Sample requests, responses. |
51+
| **Changelog** | [changelog/](changelog/) | API version history and breaking changes. |
1052

11-
## First steps
53+
---
1254

13-
<details>
14-
<summary>Installation (for Admins)</summary>
15-
16-
Currently, new repositories can be created only by a Klarna Open Source community lead. Please reach out to us if you need assistance.
17-
18-
1. Create a new repository by clicking ‘Use this template’ button.
19-
20-
2. Make sure your newly created repository is private.
21-
22-
3. Enable Dependabot alerts in your candidate repo settings under Security & analysis. You need to enable ‘Allow GitHub to perform read-only analysis of this repository’ first.
23-
</details>
55+
## 🛠 Getting Started
2456

25-
1. Update `README.md` and `CHANGELOG.md`.
57+
The Agentic Product Protocol provides standardized endpoints for:
2658

27-
2. Optionally, clone [the default contributing guide](https://github.com/klarna-incubator/.github/blob/main/CONTRIBUTING.md) into `.github/CONTRIBUTING.md`.
59+
1. **Product Search** - Search and filter products with rich query capabilities
60+
2. **Product Listing** - Retrieve detailed product information with merchant offers
61+
3. **Category Discovery** - Browse product hierarchies and categories
2862

29-
3. Do *not* edit `LICENSE`.
63+
To start building with APP:
3064

31-
## Usage example
65+
1. Review this repo's [OpenAPI specs](spec/openapi/) and [JSON Schemas](spec/json-schema/).
66+
2. Implement the required endpoints on your product data platform.
67+
3. Test using the [examples](examples/) provided in this repo.
68+
4. Register your implementation with AI agent platforms.
3269

33-
A few motivating and useful examples of how your project can be used. Spice this up with code blocks and potentially more screenshots.
70+
---
3471

35-
_For more examples and usage, please refer to the [Docs](TODO)._
72+
## 📚 Documentation
3673

37-
## Development setup
74+
| Area | Resource |
75+
| -------------------- | -------------------------------------------------------------------------------------- |
76+
| Product Search Spec | [spec/openapi/openapi.product_search.yaml](spec/openapi/openapi.product_search.yaml) |
77+
| Product Listing Spec | [spec/openapi/openapi.product_listing.yaml](spec/openapi/openapi.product_listing.yaml) |
3878

39-
Describe how to install all development dependencies and how to run an automated test-suite of some kind. Potentially do this for multiple platforms.
79+
---
4080

41-
```sh
42-
make install
43-
npm test
44-
```
81+
## 📝 Contributing
82+
83+
We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for:
84+
85+
- Branching model
86+
- Pull request guidelines
87+
- Spec versioning and review process
88+
89+
All changes must include:
90+
91+
- Updated OpenAPI / JSON Schemas
92+
- New or updated examples
93+
- Changelog entry in `changelog/unreleased.md`
94+
95+
---
96+
97+
## 🎯 Use Cases
98+
99+
### Product Discovery
100+
101+
AI agents can search across your entire product catalog using natural language queries, with support for filtering by price, category, brand, availability, and more.
102+
103+
### Price Comparison
45104

46-
## How to contribute
105+
Provide comprehensive merchant offers with pricing, shipping costs, stock status, and delivery times, enabling AI agents to help users find the best deals.
47106

48-
See our guide on [contributing](.github/CONTRIBUTING.md).
107+
### Product Information
49108

50-
## Release History
109+
Expose detailed product attributes including descriptions, images, ratings, reviews, and technical specifications in a standardized format.
51110

52-
See our [changelog](CHANGELOG.md).
111+
---
53112

54-
## License
113+
## 🔒 Security & Privacy
55114

56-
Copyright © 2022 Klarna Bank AB
115+
- **Authentication** - All endpoints require Bearer token authentication
116+
- **Rate Limiting** - Implement appropriate rate limits to prevent abuse
117+
- **Data Privacy** - Follow applicable data protection regulations (GDPR, CCPA, etc.)
118+
- **PII Handling** - Minimize collection of personally identifiable information
57119

58-
For license details, see the [LICENSE](LICENSE) file in the root of this project.
120+
---
59121

122+
## 📜 License
60123

61-
<!-- Markdown link & img dfn's -->
62-
[ci-image]: https://img.shields.io/badge/build-passing-brightgreen?style=flat-square
63-
[ci-url]: https://github.com/klarna-incubator/TODO
64-
[license-image]: https://img.shields.io/badge/license-Apache%202-blue?style=flat-square
65-
[license-url]: http://www.apache.org/licenses/LICENSE-2.0
66-
[klarna-image]: https://img.shields.io/badge/%20-Developed%20at%20Klarna-black?style=flat-square&labelColor=ffb3c7&logo=klarna&logoColor=black
67-
[klarna-url]: https://klarna.github.io
124+
Licensed under the [Apache 2.0 License](LICENSE).

changelog/2025-10-06.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Changelog
2+
3+
## 2025-10-06
4+
5+
- Initial release of the Agentic Product Protocol specification.
6+
- Published the first version of:
7+
- Product Search API specification and OpenAPI schema
8+
- Product Listing API specification and OpenAPI schema
9+
- Added example JSON files for both product search and product listing flows.
10+
- Documentation and RFCs for both APIs included.
11+
- Defined standardized data models for products, offers, merchants, and pricing.
12+
- Established authentication and versioning requirements.

changelog/unreleased.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Unreleased Changes
2+
3+
This file tracks changes that have been made but not yet released.
4+
5+
## Pending Features
6+
7+
- JSON Schema validation files
8+
- Additional filtering options for advanced search
9+
- Category discovery API
10+
- Product review endpoints
11+
12+
## Pending Improvements
13+
14+
- Performance optimization guidelines
15+
- Caching strategy recommendations
16+
- Batch operation limits refinement
17+
18+
## Breaking Changes
19+
20+
None at this time.
21+
22+
---
23+
24+
When adding new entries:
25+
26+
1. Categorize under appropriate heading (Features, Improvements, Fixes, Breaking Changes)
27+
2. Use bullet points with clear descriptions
28+
3. Reference PR numbers when applicable
29+
4. Move to dated changelog file upon release

0 commit comments

Comments
 (0)