San Antonio, TX · Military City, USA UEI L58JZMKRCLM5  ·  CAGE 203C1  ·  NAICS 541511  ·  SAM.gov Active

Reported offences by ZIP code

SAPD NIBRS Group A offences, 2025-08 to 2026-07 (trailing 12 months). 132,262 offences across 62 ZIP codes.

ZIP codes ranked by the selected measure. A per-1,000 rate is withheld where fewer than 5,000 people live in the ZIP code, and a percentage change is withheld where the prior period held fewer than 50 offences: in both cases the denominator is too small for the number to mean anything.

ZIPOffencesPer 1,000Per sq mivs prior yr43-month trend
782077,174 132.5 950 +8.1%
782166,077 144.5 432 -15.0%
782235,570 97.2 130 +4.1%
782284,606 83.0 408 -6.9%
782274,554 103.3 328 -4.1%
782493,970 64.3 269 -9.8%
782293,932 111.7 692 -10.2%
782013,927 90.4 549 -6.7%
782373,891 105.4 554 -9.8%
782513,878 62.9 267 -8.6%
782403,646 63.9 324 -2.6%
782303,615 85.9 348 -17.3%
782453,575 39.1 107 -14.1%
782103,574 102.9 470 +2.8%
782213,536 85.0 108 +1.2%
782183,528 92.1 323 -10.0%
782123,346 125.5 475 +1.6%
782053,326 n/a 3,394 -2.7%
782243,311 160.2 217 -5.9%
782173,235 95.3 326 -1.6%
782383,023 115.2 324 -9.5%
782092,706 62.4 270 -3.8%
782322,674 73.7 224 -9.6%
782112,656 86.8 265 -2.6%
782132,642 63.5 339 -10.9%
782142,599 118.8 194 -7.3%
782202,525 136.5 224 -0.9%
782472,356 45.3 180 -5.6%
782332,254 47.3 163 -8.9%
782422,185 60.7 279 -3.4%
782582,122 41.1 125 -10.2%
782502,036 35.2 211 -8.7%
782021,848 185.7 748 -1.7%
782221,779 71.1 107 +3.9%
782571,704 164.0 29.6 -17.2%
782041,556 130.3 560 -12.7%
782191,514 89.3 108 -4.2%
782151,385 n/a 1,319 -12.2%
782561,237 103.0 148 -18.3%
782541,140 14.5 43.0 -14.5%
782591,132 42.0 65.4 -6.1%
78225896 67.9 469 +2.4%
78226801 116.0 208 +14.6%
78203727 n/a 551 +12.5%
78244709 18.7 90.9 0.0%
78208635 n/a 629 +12.8%
78253590 8.7 11.0 +1.2%
78231476 47.8 105 -9.5%
78235435 n/a 205 -15.0%
78248422 29.9 106 +4.5%
78252398 21.8 13.1 -25.7%
78239290 9.7 43.2 +1.4%
78255160 8.8 8.9 -25.9%
78260147 3.9 6.1 -21.0%
7826495 8.1 1.3 +28.4%
7826662 8.5 1.6 -33.3%
7823432 5.1 6.1 n/a
7823626 3.4 2.0 n/a
7826110 0.4 0.4 n/a
782433 n/a 8.6 n/a
782062 n/a 200 n/a
782632 n/a 0.0 n/a

The safest and most dangerous ZIP codes in San Antonio

The most-searched question about this data, and the one most sites get wrong. Rank by raw count and you just find the biggest ZIP code; rank by a naive per-capita rate and downtown crowns itself on the strength of the Riverwalk. Here it is done the fair way, by reported offences per 1,000 residents over the trailing year, with the catches that ranking pointed out.

Lowest crime per resident

  1. 78261 Far North Side0/1k
  2. 78260 Far North Side4/1k
  3. 78264 Far South Side8/1k
  4. 78266 Far Northeast Side9/1k
  5. 78253 Far West Side9/1k

Highest crime per resident

  1. 78202 Central San Antonio186/1k
  2. 78257 La Cantera & The Rim retail164/1k
  3. 78224 South Side160/1k
  4. 78216 North Central / Airport retail145/1k
  5. 78220 East Side137/1k

Two catches, and they are the whole point. The "safest" list excludes the military bases (JBSA Lackland, Fort Sam Houston): their reported crime is low only because SAPD is not their police force, a jurisdiction quirk, not safety. And some "most dangerous" ZIP codes are retail corridors: the rate divides real offences by the few thousand who live there, while the crime is driven by the tens of thousands who shop there. A ZIP code is a mail boundary, not a neighbourhood, and this is reported crime, not risk. Read it as a starting point, then look up the specific ZIP above.

San Antonio crime: the questions people ask

Is San Antonio safe?
It depends what you measure, and this map is built to let you. By the FBI's numbers San Antonio's violent-crime rate runs above the national average, and its property-crime rate is the highest of the five biggest Texas cities. But reported crime is heavily concentrated (half of it falls in about 16 of 62 ZIP codes) and heavily late-night, so a citywide label hides more than it tells. Look up your own ZIP rather than trust one number.
What is the safest ZIP code in San Antonio?
By reported offences per resident over the trailing year, 78261 is the lowest, at about 0 per 1,000 residents. Military-base ZIP codes read even lower, but that is because SAPD does not police them, not because they are safer. A ZIP is a coarse mail boundary, so treat this as a starting point.
What is the most dangerous ZIP code or neighbourhood in San Antonio?
By offences per resident, 78202 ranks highest (about 186 per 1,000). By sheer number of offences, 78207 has the most. Watch the trap: a couple of high-rate ZIP codes are retail corridors (the airport and the big malls), where the crime is driven by shoppers, not the few thousand residents the rate divides by.
What time of day does crime happen in San Antonio?
Violent-crime 911 calls (assaults, shootings, robberies, logged when they happen) climb through the evening and peak around 10 pm, heaviest on Sunday and the weekend. About 37% of them come in during the five hours from 9pm to 2am. Early morning is the quietest stretch.
What is the most common crime in San Antonio?
The most-reported NIBRS Group A offence is Simple Assault, followed by property damage and theft from motor vehicles. Most of what SAPD records is property and lower-level offences, not violent crime.
How does San Antonio crime compare to Austin, Houston, or Dallas?
On the FBI's violent-crime rate, San Antonio (about 564 per 100,000) sits below Houston and Dallas and above Austin. On property crime, San Antonio is the highest of the five biggest Texas cities. See the full comparison further down the page.

What actually changed in 2026-07

1 ZIP code is outside the range we would expect from their own recent history, after adjusting for the season and the length of the month. The rest of the city moved, but not by more than it usually moves.

Ranked by how far each ZIP code departed from its own expected count, not by percentage change. Expected is that ZIP's own 24-month baseline, adjusted for the seasonal pattern and for how many days the month has. The comparison is quasi-Poisson: offence counts cluster, so their variance genuinely exceeds their mean, and a plain Poisson test would call several ZIP codes "unusual" every single month just by misjudging the noise. A ZIP is only called unusual beyond 3.0 standard deviations, because testing 51 ZIP codes at once at the conventional 95% threshold would flag about 3 of them by chance alone. Withheld below 30 expected offences.

ZIPObservedExpectedChangeStd devsVerdict
782311246 n/a-4.2 Genuinely unusual
78211197243 -17%-3.0 Within normal range
78240284333 -7%-2.2 Within normal range
78217254294 -12%-2.0 Within normal range
78209210248 -12%-1.8 Within normal range
7825985105 -25%-1.8 Within normal range
78213204255 -17%-1.7 Within normal range
782268366 +34%+1.6 Within normal range

Read the third and fifth columns together. That is the entire point of this panel: a ZIP code can move by half and still be doing nothing unusual, because a small denominator moves easily. Percentage change is the number every other crime map leads with, and it is the number most likely to mislead you.

Every offence runs on its own week

This is the single most misread thing in any crime map, and you can see it here. The City publishes the day an offence was reported, not the day it happened, and different offences give that away in different ways. Each pair of charts is one offence type against an average day and an average month (the dashed line is 100). Sorted into what their weekly rhythm is really telling you.

Reported the Monday after

These peak on Monday. That is almost certainly not when the crime happens, but when the weekend's break-ins and stolen cars are discovered and reported at the start of the week.

Destruction/Damage/Vandalism of Property
MTWTFSS
peaks Mon · 29% on weekends
JFMAMJJASOND
busiest in August
Destruction/Damage/Vandalism of Property by day of week, index where 100 is an average day
Mon110
Tue98
Wed95
Thu93
Fri98
Sat102
Sun104
Motor Vehicle Theft
MTWTFSS
peaks Mon · 29% on weekends
JFMAMJJASOND
busiest in October
Motor Vehicle Theft by day of week, index where 100 is an average day
Mon107
Tue99
Wed96
Thu96
Fri95
Sat103
Sun104
Breaking & Entering
MTWTFSS
peaks Mon · 23% on weekends
JFMAMJJASOND
busiest in October
Breaking & Entering by day of week, index where 100 is an average day
Mon129
Tue109
Wed102
Thu100
Fri97
Sat86
Sun77

Reported as it happens

These peak on the weekend. They tend to be reported close to when they happen, not days later: an assault the day it occurs, a weekend drug or weapon stop as it is made. So this shape is closer to the real timing, the mirror image of the Monday group above.

Assault Offenses
MTWTFSS
peaks Sun · 33% on weekends
JFMAMJJASOND
busiest in May
Assault Offenses by day of week, index where 100 is an average day
Mon101
Tue91
Wed89
Thu93
Fri97
Sat109
Sun119
Drug/Narcotics Offenses
MTWTFSS
peaks Sat · 28% on weekends
JFMAMJJASOND
busiest in March
Drug/Narcotics Offenses by day of week, index where 100 is an average day
Mon101
Tue98
Wed96
Thu102
Fri104
Sat104
Sun94
Weapon Law Violations
MTWTFSS
peaks Sat · 31% on weekends
JFMAMJJASOND
busiest in April
Weapon Law Violations by day of week, index where 100 is an average day
Mon99
Tue86
Wed92
Thu95
Fri107
Sat110
Sun110
Robbery
MTWTFSS
peaks Sat · 31% on weekends
JFMAMJJASOND
busiest in April
Robbery by day of week, index where 100 is an average day
Mon100
Tue101
Wed97
Thu89
Fri96
Sat109
Sun109

A weekday, business rhythm

These peak midweek with little weekend share at all. A store reports a shoplifter on a workday; you catch a fraudulent charge when you check a statement on Tuesday, not Sunday.

Larceny/Theft Offenses
MTWTFSS
peaks Tue · 26% on weekends
JFMAMJJASOND
busiest in July
Larceny/Theft Offenses by day of week, index where 100 is an average day
Mon106
Tue106
Wed102
Thu100
Fri101
Sat95
Sun89
Fraud Offenses
MTWTFSS
peaks Tue · 17% on weekends
JFMAMJJASOND
busiest in August
Fraud Offenses by day of week, index where 100 is an average day
Mon118
Tue121
Wed116
Thu112
Fri110
Sat68
Sun53
Counterfeiting/Forgery
MTWTFSS
peaks Tue · 16% on weekends
JFMAMJJASOND
busiest in February
Counterfeiting/Forgery by day of week, index where 100 is an average day
Mon112
Tue124
Wed123
Thu119
Fri111
Sat67
Sun45

We publish the weekday and month-of-year shapes because they are real and they are in the data. We are careful to tell you what they do and do not mean, because the obvious reading, that Monday is a dangerous day, is the wrong one. What the pattern actually measures is how and when each kind of crime reaches a police report. That is a genuinely useful thing to know, and almost nobody says it out loud.

When violent crime actually happens

The map's offence dates cannot tell you when a crime happened, only when it was reported. So this comes from a different place: 911 calls. A call about an assault, a shooting or a robbery is logged the moment it comes in, which is as close to the real time as this data gets. Each square is one hour of one weekday over three and a half years; the darker it is, the more violent-crime calls came in then.

Fewer callsMore
10 pmbusiest hour
Sunbusiest day
37%of calls fall in the five hours from 9pm to 2am
36%on the weekend (an even split would be 29%)

So the honest version of "the most dangerous time" is late on a weekend night: violent-crime calls climb all evening, peak around 10 pm, and run heaviest Friday through Sunday. The quietest stretch is the early morning commute.

Read this as calls, not convictions. It counts 252,041 911 calls reporting assaults, shootings and robberies, by the hour they were made. A call is a report of a possible crime, which is a different thing from the confirmed offences on the map above, and it comes from a different City dataset (Calls for Service). We use it only for timing, because it is the only place the timing honestly exists.

Arrests, for comparison: not the same thing as offences

A second public dataset: 196,012 SAPD arrests across the same ZIP codes over the full 2023-01 to 2026-07 record. The table below shows the trailing 12 months (2025-08 to 2026-07), the same window as the map above. Do not divide arrests by offences. They count different things. Arrests are mostly misdemeanors that are not in the Group A offence set at all, and an arrest can be made this month for a crime committed years ago, so an "arrests per offence" figure would be meaningless. We show arrests on their own, as their own measure.

Felony 22% Misdemeanor 78% 61,870 arrests, trailing 12 months

ZIP codes ranked by arrests in the trailing 12 months. Felony share is the percentage of that ZIP's arrests that were felonies, not misdemeanors. A per-1,000 rate is withheld below 5,000 residents, the same rule the offences table uses.

ZIPArrestsPer 1,000Felony share43-month trend
782075,539 102.3 26%
782053,456 n/a 15%
782372,856 77.3 26%
782272,807 63.7 21%
782282,618 47.2 22%
782162,460 58.5 18%
782232,354 41.1 24%
782102,349 67.6 24%
782012,178 50.2 21%
782122,070 77.6 21%
782291,990 56.5 23%
782181,961 51.2 20%

Arrest location is where the arrest was made, which we checked tracks the offence map closely, so it is honest to read this geographically. What it is not is a measure of how many crimes get solved. That number is not in the public data, and anyone who quotes you one from a source like this is guessing.

How San Antonio compares

The map above only knows San Antonio. This is the question it cannot answer: is the city actually worse than its neighbours? These are rates per 100,000 residents from the FBI's national crime program (2025), so San Antonio and every city it is set against are measured the same way. San Antonio is marked in gold.

Violent crime per 100k

Houston 930
Dallas 590
San Antonio 564
Austin 435
Fort Worth 409
Texas 349
United States 329

Property crime per 100k

San Antonio 4,159
Houston 4,018
Austin 3,201
Dallas 3,147
Fort Worth 2,429
Texas 1,811
United States 1,550

A different dataset with different rules, shown honestly. To compare cities fairly we use the latest complete calendar year, so this benchmark sits a little behind the monthly map above, and the two will not add up: they count on different definitions and windows. The city rates are FBI offence counts divided by Census city population; Texas and the national figures are the FBI's own published rates. Reporting completeness also varies between departments, and several large agencies had gaps during the move to the newer national reporting standard. Read this as a fair, like-for-like ranking, not a precise score.

Take the data

Everything above is built from open data you can download here. The offences CSV is one row per ZIP code, per month, per offence type, the shape you want for a spreadsheet or a notebook, and arrests come as their own CSV. No signup, no email, no attribution required to us. Prefer to pull it programmatically? There is a versioned public API with JSON, CSV, and an OpenAPI spec.

Download CSV JSON (indexed cube) JSON (ZIP geometry) Arrests CSV

The underlying records are published by the City of San Antonio under CC-BY (City of San Antonio). The City is the source and deserves the credit. If our processing of it is useful to you, a link back to this page is welcome but not required. Cite it as: BrandShyp, “San Antonio reported offences by ZIP code”, derived from City of San Antonio open data (SAPD Offenses), built 2026-08-06.

Source: City of San Antonio open data, SAPD Offences (CC-BY (City of San Antonio)). NIBRS Group A offenses only. Population: U.S. Census ACS 5-year (2023), table B01003. We count offences, not incidents: the 527,768 published offences arise from 482,786 distinct police reports, because one report can carry several offences. A dashboard that counts reports will show a smaller number than this one and both will be correct. Data through 2026-07; the City publishes monthly, so the most recent weeks are not yet included. 5,347 of 527,768 records (1.01%) carry no usable ZIP code and are not mapped. Built 2026-08-06.

Know your ZIP. Share the map.

Send it to a neighbour, post it to your feed, or pass it to your group. Free, no signup, no email wall.

Facebook LinkedIn X WhatsApp Email

Read this before you read the map

A crime map that does not explain itself is closer to a rumour than a record. Here is exactly what this one is.

It shows reports, not convictions, and not all crime

Every number here is an offence reported to SAPD. Some reports are later unfounded. Nobody on this map has been convicted of anything, and no individual is named, because the City’s data contains no names, no addresses, and no coordinates. That is a feature, not a gap.

It also is not all crime. The published dataset covers NIBRS Group A offences only, which excludes DUI, disorderly conduct, and trespass, among others. Crimes that are never reported appear nowhere in it, and for some categories that is most of them.

ZIP code is as precise as the data goes

You may have seen crime maps that drop a pin on a block. They are working from a private police records feed. The City’s public dataset has no street address and no latitude or longitude: the finest geography it publishes is the ZIP code. So this map stops at the ZIP code, rather than inventing a precision it does not have.

A ZIP code is also not a neighbourhood. It is a mail-delivery boundary that can span a wealthy subdivision, an industrial park, and a highway interchange at once. Treat a ZIP-level figure as a coarse signal, never as a verdict on a street.

The part most crime maps get wrong

Dividing by residents is how you produce a lie

Rank ZIP codes by offences per resident and downtown 78205 reads as roughly 2,000 per 1,000 residents, more offences than the ZIP has people. That is not danger, it is the Riverwalk: about 1,650 people live there while millions pass through. So we withhold the per-resident rate below 5,000 residents and default to absolute counts. The same distortion hits retail corridors like 78216 (airport and North Star Mall), where the rate still counts people who do not live there.

We also give you offences per square mile, a second denominator with its own bias (it flatters anything large and empty). Where the two disagree about a ZIP, that disagreement is the finding.

The most trustworthy number is change over time, because comparing a ZIP against its own past needs no denominator at all. Its own trap is small numbers: two offences to four is “+100%”. So no change is shown below 50 prior offences, and the colour scale is set by the 90th percentile of movement, not the single wildest ZIP.

The trap that is hiding in your calendar

February is not safer. February is shorter.

A mistake almost every crime dashboard makes. Compare February to July on raw counts and February looks about 16% lower. Print that with a downward arrow and you have told the city crime falls in February. It does not. February has 28 days and July has 31, nearly a 10% gap in the time available for anything to happen. Most of that “drop” is the calendar.

So every period comparison here is computed per-day first. Strip out the calendar and a real but small season remains: San Antonio runs a few percent busier in high summer. It is the same mistake as the other two denominators wearing different clothes. Residents, area, days: pick the wrong divisor and the map lies confidently.

Why we will not tell you crime is “up 50%”

Percentage change is what every crime map leads with, and it is the most misleading number, because it is really a ranking of small denominators: a modest ZIP swings by half on an ordinary month.

So the What actually changed panel ranks by a harder question: given what this ZIP normally does at this time of year, is this month actually surprising? Each ZIP is measured against its own baseline, adjusted for the season and the length of the month. The percentage change sits right next to it so you can watch the two disagree. That gap is the whole reason this exists.

Two things most analysis skips. Crime counts are overdispersed: they cluster, so a plain Poisson test invents “significant” spikes every month that are nothing at all. We fit each ZIP’s own dispersion instead. And we test dozens of ZIPs at once: at the reflexive 95% threshold, roughly three would flag by chance alone every month, forever, so we only call a ZIP unusual beyond three standard deviations.

The honest consequence: most months, nothing is unusual. That is not a broken feature, it is the answer, and almost nobody publishes it.

How this was built

Reproducible end to end. Every input is public, and you can check any figure here against the source.

The pipeline

Offence records come from the City of San Antonio’s open data portal (SAPD Offenses, CC BY licence) through its CKAN SQL API. They are aggregated to one cell per ZIP code, per month, per offence type, and joined to the City’s own ZIP boundary layer, which is projected to flat SVG geometry at build time. No map library, no tiles, and no third-party tracker loads on this page.

The build asserts its own totals. It re-counts the source table independently and refuses to publish if the aggregate does not reconcile to the row count, because the City’s datastore truncates large responses silently and a partial extract would look perfectly normal.

What we throw away, and why we tell you

Of 527,768 published records, 5,347 (1.01%) carry a blank or unmappable ZIP code. They are excluded, because there is nowhere honest to put them. The alternative, quietly assigning them somewhere, is how a map starts lying.

We count offences, not incidents. Those 527,768 offences come from 482,786 distinct police reports, because a single report can carry more than one offence. A dashboard that counts reports will show you a smaller number than this one, and neither of us is wrong. Ask which is being counted before you compare two crime figures.

The City republishes monthly, so the most recent few weeks are never present. If you need what happened last night, this is the wrong tool, and we would rather say so than imply a freshness we do not have.

Every figure in this section is read live from the same data file the map is drawn from, so it cannot drift out of step with the map above it. Data built 2026-08-06. Population: U.S. Census ACS 5-year (2023), table B01003.

Two datasets that look comparable and are not

Further down the page is a second measure: arrests. It is tempting to divide arrests by offences and call it a “solve rate.” That would be fiction. They count different events: the offences here are NIBRS Group A, but arrests are mostly misdemeanors that are not Group A at all, so many arrests have no matching offence and never will.

And they do not line up in time: an arrest this month can be for a crime years ago. So we show arrests as their own measure and never divide the two. The data supports “how many arrests, where, and how many were felonies.” It does not support “how many crimes get solved,” and we will not invent that.

Why an IT contractor built a crime map

Because this is the work. A government agency hands you a messy public dataset with a silent truncation bug, no coordinates, a broken denominator, and a 1% slice that fits nowhere. The job is to find the traps before they end up in a published figure someone makes a decision on: reconcile against the source, refuse to ship what does not add up, and state the limits on the face of the artifact, not in a footnote nobody reads.

We are a San Antonio software and data firm working across federal and local government. If your team has a dataset that needs to become something people can use, and defensible when someone challenges a number in it, that is the conversation to have. The code, the reconciliation checks, and the methodology are available on request.

Show me how you would handle my dataset

We'll send a copy and, if you want, help you take the next step. No spam.

Related free tools

Auditable AI Data Analysis

Ask a question of your own data and get an answer with the full trace showing how it was derived.

STIG to NIST 800-53 Mapper

Paste a STIG rule, a CCI, or a whole checklist and get the Rev 5 controls it maps to, with the trace.

Accessibility Checker

Scan a page against WCAG 2.1 AA and Section 508 and get the specific failures, not a score.

Priority Scheduling

Schedule Your Technical Briefing

Skip the email queue. Book a direct 30-minute discovery session on our technical calendar.

Pick a date

Available times

All times shown in Central (Chicago)
Pick a date from the calendar to see available time slots.
Your meeting

You're booked.

A confirmation email is on its way from [email protected].

If you need to reschedule, reply to the confirmation email and we’ll handle it.