# Index name rules that reject your create call
## The rules
1. **Characters:** UTF-8 lowercase alphanumeric Latin characters and dashes only. No uppercase, no dots, no underscores, no emoji, no non-Latin scripts.
2. **No dots, ever.** Dots separate hosts and subnets in DNS, which Pinecone uses for routing. `my.index` is invalid.
3. **Length:** your index name plus your project ID (normally seven alphanumeric characters) plus one separating dash must not exceed 52 characters. The project ID counts, so a long name that fits alone can still fail.
## The failure
Create rejects invalid names client-side or with a 400. The confusing variant is the length cap: the name looks fine, but name plus project ID overflows.
## Rules for agents
1. Generate index names programmatically: lowercase, dashes, short prefix plus a suffix (`docs-v2`, `tenant-embeddings`).
2. Validate before calling: `re.fullmatch(r"[a-z0-9-]+", name)` and `len(name) + 8 <= 52`.
3. Never derive an index name from a tenant name, email, or free-text field without sanitizing. That is how dots and uppercase sneak in.